Html 特定于页面的css规则-放在哪里?
通常,当我在设计一个网站时,我需要一个特定的样式来应用于页面上的特定元素,并且我绝对确定它只会应用于该页面上的该元素(例如绝对定位的按钮或其他东西)。我不想求助于内联样式,因为我倾向于同意将样式与标记分开的理念,所以我发现自己在内部争论将样式定义放在哪里Html 特定于页面的css规则-放在哪里?,html,css,Html,Css,通常,当我在设计一个网站时,我需要一个特定的样式来应用于页面上的特定元素,并且我绝对确定它只会应用于该页面上的该元素(例如绝对定位的按钮或其他东西)。我不想求助于内联样式,因为我倾向于同意将样式与标记分开的理念,所以我发现自己在内部争论将样式定义放在哪里 我讨厌为一次性使用场景在我的基础css文件中定义特定的类或ID,我也害怕创建特定于页面的.css文件。对于我正在处理的当前站点,我正在考虑将样式定义放在head元素的页面顶部。你会怎么做?我会将它们放在页面顶部的标签中。对于这种情况,我认为将页
我讨厌为一次性使用场景在我的基础css文件中定义特定的类或ID,我也害怕创建特定于页面的.css文件。对于我正在处理的当前站点,我正在考虑将样式定义放在head元素的页面顶部。你会怎么做?我会将它们放在页面顶部的
标签中。对于这种情况,我认为将页面特定的样式信息放在标题中可能是最好的解决方案。您的站点范围的样式表似乎是错误的,我同意您对内联样式的看法。在这种情况下,我通常将其放在页面顶部。我有一个PHP页面定义框架,我使用它为每个页面携带局部变量,其中一个是特定于页面的CSS样式。看看是否有一个类的组合可以提供您想要的结果。您可能还想考虑将一个元素的CSS分解为几个可以在其他元素上重用的类。这将有助于将整个站点所需的CSS降至最低
我会尽量避免将特定于页面的CSS放在HTML文件的顶部,因为这样会使您的CSS在您想要更改网站外观时变得支离破碎
对于真正、真实、永远不会用于其他任何东西的CSS,我仍然会在站点范围的CSS中加入#id
规则
由于CSS是从一个不同的文件链接进来的,它允许浏览器缓存该文件,这会略微减少服务器带宽,以备将来加载。如果您想知道样式的定义位置,请将其放置在您想要查看的位置
对我来说,这与我将使用2次、5次或170次的样式放在同一个位置-我认为没有理由根据使用次数将样式从主样式表中排除。我认为您肯定应该扩展思考过程,包括对“页面特定css”的一些疑问。这应该是一件非常罕见的事情。我想说的是,无论如何都要使用全局样式表,但要重构css/html,使页面不必具有超特定的样式。如果最终在全局css中有几行特定于页面的标记,谁在乎呢。无论如何,最好将它放在一个一致的位置。不值得为一个或两个特定规则加载特定于页面的CSS文件。我会把它放在文档头部的标签中。我通常做的是使用我的站点范围的CSS文件,然后使用注释,根据页面进行分区,并在那里应用特定的规则。在消费页面中定义样式或将样式内联是同一个硬币的两面-在这两种情况下,您都是使用页面带宽来获得样式。我不认为一个一定比另一个好
我主张在站点范围的主样式表中为它创建一个#选择器。污染是最小的,如果你真的有那么多真正独特的案例,你可能会想重新考虑你标记网站的方式 正如您所知,样式表文件是静态文件,缓存在客户端。它们也可以通过web服务器进行压缩。因此,将它们放入外部文件是我的选择。我会为如下页面设置一个id
<body id="specific-page"> or <html id="specific-page">
或
并在站点范围的css文件中使用css覆盖机制。有四种基本情况:
- 元素位于页面顶部。这比style=稍微好一点,因为它保持了标记的干净,但是它浪费了带宽,使CSS的全面更改变得更加困难,因为您无法查看样式表并知道存在哪些规则
- 页面特定css:这允许您拥有干净的HTML和干净的主css文件。然而,这意味着您的客户端必须下载大量的小CSS文件,这会增加带宽和页面加载延迟。然而,它很容易维护
- 一个大的站点范围的CSS:一个大文件的主要优点是它只有一件东西可以下载。这在带宽和延迟方面效率更高
#userInfoPage .titlebox h1 { color : red; }
不要到处应用类,因为类当前具有您想要的特定外观。您应该将高级概念放入页面中,用带有类的HTML表示,然后设置这些概念的样式,而不是相反的样式。我希望我能给出所有人的答案,但您的答案最为详细,所以您可以理解。最后,我设计了一个足够通用的类,可以放在主css文件中,而不会造成混乱。感谢您对缓存和页面大小的考虑