2014-07-15 45 views
2

有时在xhtml中,我们编写假设<table border="1">,然后在css中再次写入table{ border:2px solid black}。我很困惑什么时候写哪个。何时使用属性以及何时使用CSS。有时他们会感到困惑。什么时候应该使用属性vs CSS样式?

+2

关于'border'属性:'不要使用这个属性,因为它已被弃用:在

元素应该用样式CSS.' https://developer.mozilla.org/en-US/ docs/Web/HTML/Element/table#attr-border – showdev

+0

那么这只是一个例子。另一个是细胞间隔和细胞移植。有时它被声明为一个属性,有时在css中声明。它变得混乱。 – raiyan106

+2

'cellpadding'和'cellspacing'也是如此:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/table#Attributes – showdev

回答

2

尽管边框属性is not deprecatedthe align attribute is(为了说明HTML4建议中属性的状态),但通常建议不要将这些属性放置在标记中。

我在找XHTML table documentation时找不到这些属性的引用,所以我会假设这些在那里是不可接受的。

代替所讨论的属性,使用CSS可以消除混合内容和样式。XHTML似乎完全专注于内容而不是样式,所以我不得不说,虽然它是可以接受的,但它不是在外部样式表中使用属性代替CSS的最佳途径。

我可以看到使用属性而不是css的一种情况是设计一个html电子邮件,因为大多数电子邮件客户端剥离css,除非它使用style属性声明为内联。在这种情况下,使用单个属性比将所有规则填充到style属性更清晰。


UPDATE

由于来自其他用户的评论提供的信息,我看到XHTML规格我一直在寻找的是过时的。 Modern XHTML不承认和支持边界等属性。提供的链接是对html和xhtml之间差异的解释,作为对该主题的介绍。好东西。 我引用的评论如下:

当你讨论的XHTML文档,你的意思是中止XHTML 2规范。现代XHTML是XHTML5,它具有与常规HTML5相同的属性和内容模型规则,只是一种不同的语法。 XHTML 2的作者着手删除多年来在HTML上构建的所有问题,因此采取了非常纯粹的方法。 HTML5的作者采取了更加务实的态度,认识到像边界=“1”这样的奇特特征实际上是有用的,并且允许它们适用于那些狭窄的情况。

+0

当您讨论XHTML文档时,您的意思是中止的XHTML 2规范。现代XHTML是[XHTML5](http://www.w3.org/html/wg/drafts/html/CR/introduction.html#html-vs-xhtml),它具有与常规HTML5相同的属性和内容模型规则,只是一种不同的语法。 XHTML 2的作者着手删除多年来在HTML上构建的所有问题,因此采取了非常纯粹的方法。 HTML5作者采取了更加务实的态度,认识到某些奇怪的特征,如“border =”1“,实际上是有用的,并允许它们适用于那些狭窄的情况。 – Alohci

+0

@Alohci - 伟大的信息!我不知道这些,谢谢你分享! –

1

你应该更喜欢样式属性,在这种特殊情况下,你应该总是使用的样式,因为,根据W3C index of attributes,在<table>border=属性已被弃用。 Cellspacing和cellpadding没有正式弃用,但不鼓励使用它们,它们在HTML5中被列为"obsolete features"

尽你所能,将所有风格/演示文稿保留在文档之外 - 文档应该是内容和结构 - 然后使用XSLT或CSS设置风格。

+0

它已在评论中指出,此声明(“

上的border =属性已被弃用,cellspacing和cellpadding也被弃用。”)是无效的。如果你能提供这样的文档,可以直接从W3C覆盖文档,我将删除我的downvote –

+0

@Brett当然,谢谢,我会引用来源......但是当我撰写这篇文章时没有评论,至少在我点击'发布'之前 –

+0

这没有问题。我只是试图保持这个问题的准确性,因为在很久以前我就有同样的问题。直到我看到这个,我仍然对此感到困惑。但我同意不应该使用该属性。 –

4

如果您不确定使用哪种工具,请考虑他们的实际情况。

HTML是标记语言。它用于描述您的网页上的内容,以便任何浏览您的网站都能理解它。它定义段落,报价,重要内容,导航等。

CSS是造型语言。它描述了你的内容是如何呈现的。使用它来使元素看起来像你希望他们看起来的样子,使您的网站变得有吸引力。

边框是内容的视觉样式的一部分。您已将内容放在表格中,因为它很有意义,但如果您想在表格中添加边框,请添加CSS规则以使其看起来像您想要的样子。

您经常会发现,较早的HTML代码使用了更多用于设置内容样式的属性,以及<font><center>标签以及其他将内容与演示文稿混合的内容。你也可能发现你的网站的一些可视化部分在纯CSS中是不可能的,并且需要额外的标记才能使它工作。这些是您作为Web开发人员进行的折衷。

0

表属性已弃用。你应该总是使用CSS来设计你的表格。你创建一个单独的样式表或者将它嵌入到你的html文件中。

任何html元素都可以使用css风格。

编辑:http://www.w3.org/TR/html4/index/attributes.html

好运:约废弃的属性在这里

更多信息!

+0

在评论中已经指出这个陈述(“表格属性已被弃用”)是无效的。如果你可以提供这样的文档,可以直接从W3C覆盖文档,我将删除我的downvote –

+0

@Brett Weber检查编辑! – rob

+0

这是一个属性链接。与表相关的定义边界的行不显示该属性已被弃用。应该表示的空白是空的,不包含图例中定义的字符“D”,以表示已弃用的属性。此建议不针对HTML4建议弃用此属性,也不针对HTML5.1草案。除此之外,它也没有显示出预计将逐步淘汰。对不起,这只会巩固对问题的评论 –

相关问题