CSS正在添加一个id

时间:2017-02-27 22:35:06

标签: html css head

我正在处理有100页网页的响应式网站。它是使用CMS实现的。问题是,我需要在主页上应用一些样式。

在CMS中为一个页面添加类或ID有点麻烦,因为它使用模板来呈现页面。

我在头部添加了css。我不想添加外部文件的原因是因为在其他页面上可能会使用相同的ID。

在这种情况下,在头部添加CSS是一种不好的做法。

<head>
    <style>
        //my css
    </style>
</head>
<body>


</body>

谢谢

3 个答案:

答案 0 :(得分:1)

内联CSS完全没问题。是否应该使用内联CSS或只是为页面设置唯一ID取决于您使用的CMS的复杂性和灵活性。使用内联CMS只意味着您必须从每个单独的页面更新CSS,而不是从所有单独页面的单个源更新。

关于你的第二点,在<style>标签中将CSS添加到头部并不是一种不好的做法。事实上,<style> 必需<head>的孩子才能正确验证。根据{{​​3}},<style>可以是任何元素的子元素,只要它scoped,尽管在当前日期,Firefox the HTML 5.2 specification可以使用scoped 1}}属性。

除此之外,由于页面加载的方式,使用<style>中的<body>标记可能会导致the only browser。因此,如果您使用内联CSS,请始终这样做以正确验证并改善用户体验:)

希望这有帮助!

答案 1 :(得分:0)

总之是的。出于可维护性的原因。您最好使用css的级联特性来定位特定于特定页面的样式,而不是使用大量内联样式。

例如,考虑:

<body class="my-page">
<h1 id="myId">Title</h1>


<body>
<h1 id="myId">Title</h1>

h1#myId{ font-size:12px; }
body.my-page h1#myId{ font-size:14px; }

后一种风格将具有优先权。 h1 #myId将是全局的,但在特定页面上,您可以覆盖此样式。有没有办法弄清楚正在使用什么模板,并调整身体类?

答案 2 :(得分:0)

如果您的CMS使用说PHP ...
您可以检测到您是否在主页而不是调用自定义外部样式表,例如:

<?php
$page = $_SERVER["REQUEST_URI"];
$isHomePage = $page==="/" || $page==="/index.php" || $page==="";

if( $isHomePage ) {
   echo '<link href="homepage.css" rel="stylesheet" type="text/css" />';
} else {
   echo '<link href="style.css" rel="stylesheet" type="text/css" />';
}
?>

</head>