内联<style>标签与内联CSS属性


80

设置CSS属性的首选方法是什么?

内联样式属性:

<div style="width:20px;height:20px;background-color:#ffcc00;"></div>

<style>...</style>标签中的样式属性:

<style>.gold{width:20px;height:20px;background-color:#ffcc00;}</style><div class="gold"></div>

5
样式标签的另一个优点(对于外部样式表更是如此)是可重用性。现在这是一门课程,您可以将其应用于多个元素!
TheZ 2012年

Answers:


94

可以使用以下方式附加样式规则:

  • 外部档案
  • 页内样式标签
  • 内联样式属性

通常,我更喜欢使用链接的样式表,因为它们:

  • 可以被浏览器缓存以提高性能;和
  • 从开发角度来看,维护起来容易得多。

但是,您的问题是专门询问style标签和内联样式。style在这种情况下,最好使用标签,因为它:

  • 提供标记与样式的清晰区分;
  • 产生更干净的HTML标记;和
  • 使用选择器将规则应用于页面上的多个元素,效率更高,从而改善了管理并缩小了页面大小。

内联元素仅影响它们各自的元素。

style标签和内联属性之间的重要区别是特异性。特异性决定一种样式何时替代另一种样式。通常,内联样式具有更高的特异性。

阅读CSS:Specificity Wars,以有趣的方式看待该主题。

希望对您有所帮助!


1
关于无法级联内联样式的那行使我想到,这在技术上不是级联的吗?<div style="border:1px solid #707070; border-left:0">
TheZ 2012年

@TheZ确实,我可能对“级联”一词的使用不佳。我一直将其视为一条规则,通常是从其他元素流到另一条规则。基本上是继承。我必须重新阅读定义,以确保使用正确的术语。我的意思是说,内联样式只会影响它们所在的元素,而不会影响其他元素。
jmbertucci 2012年

页面样式块的一个加号是它简化了样式向外部CSS页面的移动。
游泳池

@jmbertucci:我不会改变问题的话题。你怎么可以将规则应用于像@import@font-face从样式属性?我之所以这样说,是因为我可以使用html属性,style=""但不能使用<style></style>标签。
user2284570

作为附录(因为我刚刚从Google搜索中找到了它)-使用HTML5,现在有一个scoped属性(尽管尚未得到广泛支持),允许您<style> ... </style>内联使用块-例如developer.mozilla.org/en-US/docs/ Web / HTML / Element / style
CD001

20

这是一个可以控制差异的方面:

如果在JavaScript中更改元素的样式,则会影响嵌入式样式。如果那里已经有样式,则将其永久覆盖。但是,如果样式是在外部工作表或<style>标签中定义的,则设置内联""样式以从该源恢复样式。


10

这取决于。

要点是避免重复代码。

如果同一代码需要重复使用2次或更多次,并且在更改时应该同步,请使用外部样式表。

如果只使用一次,我认为内联就可以。


8

要回答您的直接问题:都不是首选方法。使用单独的文件。

内联样式只能用作最后的选择,或者由Javascript代码设置。内联样式具有最高的特异性,因此请覆盖实际的样式表。这会使它们难以控制(!important出于同样的原因,您也应避免使用)。

<style>不建议使用嵌入式块,因为这样会使浏览器无法跨站点上的多个页面缓存样式表。

简而言之,只要有可能,就应该将样式放入单独的CSS文件中。


4

从可维护性的角度来看,管理一个文件中的一项要比管理可能多个文件中的多个项要简单得多。

分开样式可以使您的生活更加轻松,尤其是当工作职责分配给不同的人时。可重用性和可移植性将为您节省大量时间。

使用内联样式时,它将覆盖设置的所有外部属性。


3

我同意大多数观点,即外部样式表是首选方法。

但是,这里有一些实际例外:

  • 动态背景图片。CSS样式表是静态文件,因此您需要使用内联样式来添加动态(从数据库,CMS等开始)background-image样式。

  • 如果在页面加载时需要隐藏元素,则使用外部样式表是不切实际的,因为在处理样式表之前总会有一些延迟,并且直到发生这种情况,该元素才可见。style="display: none;"是实现此目标的最佳方法。

  • 如果应用程序要让用户更好地控制特定的CSS值,例如文本颜色,则可能有必要将其添加到内联style元素或页内<style></style>块中。例如style="color:#{{ page.color }}",或<style> p.themed { color: #{{ page.color }}; }</style>


0

只要有可能,最好使用类.myclass{}和标识符#myclass{},因此在html中使用专用的CSS文件或标记。内联样式很好用JavaScript动态更改css选项。<style></style>


0

选择一种方式而不是另一种方式可能有不同的原因。

  • 如果需要为以编程方式生成的元素指定css(例如,为不同大小的图像修改css),则使用内联css可以更容易维护。
  • 如果某些css仅对当前页面有效,则应使用script标记而不是单独的.css文件。如果浏览器不必执行太多http请求,那将是一个很好的选择。

否则,如上所述,最好使用单独的css文件。


0

您可以使用以下三种不同的方式设置CSS:

1.External style sheet
2.Internal style sheet
3.Inline style

设置css样式的首选/理想方法是将样式应用于多个页面时用作外部样式表。使用外部样式表,您可以通过更改一个文件来更改整个网站的外观。

样本用法可以是:

<head>
    <link rel="stylesheet" type="text/css" href="your_css_file_name.css">
</head>

如果要将唯一样式应用于单个文档,则可以使用“内部样式表”。

不要使用内联样式表,因为它会将内容与演示结合在一起,并失去许多优势。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.