【问题标题】:Selectively apply stylesheets to div有选择地将样式表应用于 div
【发布时间】:2014-08-07 17:39:47
【问题描述】:

我正在尝试使用多个 div 进行简单的网页设计。每个 div 应应用列表中的 1 个或多个外部样式表。

我的问题是,从我目前阅读的示例来看,我不确定如何优雅地做到这一点。似乎外部样式表应用于整个 html 文件。那么我应该考虑将我的 div 模块化成单独的文件吗?或者像 iFrame 这样的解决方案会是一个更简洁的解决方案吗?

当前解决方案:
外部 CSS:

div.test1 {
    color: purple;
    background-color: #d8da3d
}

.test2 {
    color: red;
    background-color: #d8da3d
}

#test3{
    color: green;
    background-color: #d8da3d
}

HTML 正文代码:

<div class="test1">
    <p> Style1
</div>

<div class="test2">
    <p> Style2
</div>

<div id="test3">
    <p> Style3
</div>

我的参考资料:
Div with external stylesheet?
http://www.htmlhelp.com/reference/css/style-html.html

【问题讨论】:

  • 你不能让每个 div 标签有一个或多个 CSS 类来获得你想要的结果吗?

标签: css html


【解决方案1】:

- 1

看看这个: https://stackoverflow.com/a/17668004/1552518

- 2

或者只是为每个 div 添加一个类:

<div id="container">
    <div class='div1'>
        style1
    </div>
    <div class='div2'>
        Style2
    </div>
</div>

在你的外部 css 中:

.div1 {
    // Style applied only to the first div
}


.div2 {
    // Style applied only to the second div
}

- 3

或者,如果您无法向 div 添加类,请在 css 中使用:

#container > div:first-child {
    // Style applied only to the first div
}


#container > div:last-child {
    // Style applied only to the second div
}

【讨论】:

  • 出于好奇,在什么情况下您不能向 div 添加类?
  • 如果您无法编辑html代码,但您只能访问css
  • 使用 .testing 代替 div.testing 有风险吗?
  • 不,如果您使用 .testing,所有带有 class="testing" 的元素都会受到该代码的影响。如果你使用 div.testing 只有带有 class="testing" 的 div 元素会受到影响。这只是一个灵活性问题。
【解决方案2】:

您只是想以不同的方式设置 div 的样式吗?您是否考虑过为每个 div 使用一个类?

来自您提供的第二个链接:http://www.htmlhelp.com/reference/css/style-html.html#class

【讨论】:

  • 我认为这是在正确的轨道上,但我在应用它时遇到了麻烦。示例代码已更新
【解决方案3】:

当你使用 css 样式时:

body{
 color:purple;
 background-color: #d8da3d
}

你是说你想用你设置的样式来设置整个文档的样式。

为了定位特定元素,您应该为这些元素指定 idclass

例如:

<div id="test1"></div>
<div class="testing"></div>
<div class="testing"></div>

请注意,当使用and id时,你必须确保给元素一个唯一的id。然而,许多元素可以共享同一个。因此,对于上面的示例,样式:

#test1{
  color:blue;
  background-color:black;
}
.testing{
  color:red;
  background-color:white;
}

将第一个样式(test1)应用于具有相同id的div,第二个样式(testing)应用于具有相同类的两个div。

【讨论】:

  • 使用类而不是 id 会更好吗?或者都在使用中
  • 一般来说,我发现类是实现 css 样式的好方法,因为您可以选择将样式应用于任意数量的元素。所以你可以做一些事情,比如有一个名为'pull-left'的类并给它样式:'float:left'。然后对于所有你想向左浮动的元素,你只需给它类'pull-left'。
  • Ids 适用于以特定方式对一个元素进行样式设置,如果它与您正在设置样式的所有其他元素不同。 Ids 在 css 之外也有好处——例如在 javascript 中引用一个元素,但这超出了这个问题的范围。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-17
  • 2020-04-17
  • 2014-02-02
  • 2020-05-19
相关资源
最近更新 更多