我正在尝试自学CSS并拥有以下标记:
<style type="text/css">
#content { display: block; width: 250px; height: 50px; background-color: #330000; }
/* pink */
#one { height: 25px; width: 25px; background-color: #FFCCCC; float: left; margin: 10px; }
/* hot pink */
#two { height: 25px; width: 25px; background-color: #FF0099; float: left; margin: 10px; }
/* tan */
#three { height: 25px; width: 25px; background-color: #CC9900; float: left; margin: 10px; }
/* aqua blue */
#four { height: 25px; width: 25px; background-color: #33FFFF; float: left; margin: 10px; }
/* yellow */
#five { height: 25px; width: 25px; background-color: #FFFF00; float: right; margin: 10px; }
</style>
</head>
<body>
<div id="content">
<div id="one"></div>
<div id="two"></div>
<div id="three"></div>
<div id="four"></div>
<div id="five"></div>
</div>
页面工作正常,但我有兴趣删除CSS本身的重复代码。即将所有高度,宽度,浮动全部放在一个定义中,然后覆盖每个#id值
的背景颜色当我尝试时:
#content { height: 25px; width: 25px; float: left; margin: 10px }
然后把:
#one { background-color: #FFCCCC; }
#five { background-color: #FFFF00; float: right; }
没有用。
基本上我正在尝试删除重复标记的数量。
我错过了什么?
答案 0 :(得分:4)
您必须在#content
之后指定节点:
#content div { SAME RULES }
#one { INDIVIDUAL }
#five { INDIVIDUAL }
或者你可以这样做:
#one, #two, #five { SAME RULES }
#one { INDIVIDUAL }
您还可以为每个div提供一个类名并执行
.divs { SAME RULES }
#one { INDIVIDUAL }
答案 1 :(得分:3)
答案 2 :(得分:1)
你可以使用课程。定义包含公共属性的基类:
/* Generic class for all four elements */
div.button { height: 25px; width: 25px; float: left; margin: 10px; }
然后定义1-4(我也在这里使用类,因为在许多情况下它是最佳实践,但如果你愿意,你可以继续使用ID):
div.one { background-color: #FFCCCC; ... }
div.two { background-color: #FF0099; ... }
然后分配基类和特定类:
<div id="one" class="button one"></div>
“按钮一”部分将允许两个类的属性应用于元素。
答案 3 :(得分:0)
您的问题实际上有三种替代解决方案
第一个非常接近你自己写的内容,除了它应该为DIV
下面的任何id="content"
定义CSS:
#content div { height: 25px; width: 25px; float: left; margin: 10px }
我应该指出,这个可能更常见并且提供更大的灵活性,特别是如果你想让subDIV没有普通的类(在你的情况下调整大小)。这个会稍微改变你的标记,因为你可以在一个HTML元素上定义多个CSS类:
<div>
<div class="content one"></div>
<div class="content two"></div>
<div class="content three"></div>
<div class="content four"></div>
<div class="content five"></div>
</div>
这样你的CSS类就会有所改变。您必须将#
替换为.
(点):
.content { height: 25px; width: 25px; float: left; margin: 10px }
.one { background-color: #FFCCCC; }
...
.five { background-color: #FFFF00; float: right; }
这个与第二个非常相似,只不过它保留了子DIV的ID:
<div>
<div id="one" class="content"></div>
<div id="two" class="content"></div>
<div id="three" class="content"></div>
<div id="four" class="content"></div>
<div id="five" class="content"></div>
</div>
和CSS:
.content { height: 25px; width: 25px; float: left; margin: 10px }
#one { background-color: #FFCCCC; }
...
#five { background-color: #FFFF00; float: right; }
答案 4 :(得分:0)
在这里,#content div
就是你想要的。如果需要,你可以更深入,即#content div span a
将引用一个锚点,嵌套在一个嵌套在div中的span中,该div嵌套在ID为#content的内容中。
#content { display: block; width: 250px; height: 50px; background-color: #330000; }
#content div { height: 25px; width: 25px; float: left; margin: 10px; }
/* pink */
#one { background-color: #FFCCCC; }
/* hot pink */
#two { background-color: #FF0099; }
/* tan */
#three {background-color: #CC9900; }
/* aqua blue */
#four { background-color: #33FFFF; }
/* yellow */
#five { background-color: #FFFF00; }
答案 5 :(得分:0)
这是您可以使用课程的地方。当您拥有页面特有的特定元素时,ID非常适合。但是,类,您可以定义一组属性(甚至设置一个比另一个更重要的属性)。更确切地说,一个元素可以有多个不能ID的类
所以我要做的就是这个
#pink { background-color: #FFCCCC; }
#hotpink { background-color: #FF0099; }
#tan{ background-color: #CC9900; }
#aquablue { background-color: #33FFFF; }
#yellow { background-color: #FFFF00; }
.box {
height: 25px;
width: 25px;
float: left;
margin: 10px;
}
并在您的HTML中指定它们
<div id='pink' class='box'></div>
我最喜欢这个版本,因为如果您需要在DOM中明确选择此元素,它看起来像
#pink.box {
height: a different height;
}
答案 6 :(得分:0)
你有两个选择,第一个是使用父容器(在本例中为div #content)为每个嵌套div设置默认属性,为此你可以使用这样的代码:
#content div {
repeat-attributes-here;
}
这将为#content中的每个div设置属性。
第二个选项是使用类来定义公共属性。这样做的好处是你仍然可以使用其他具有不同样式选项的div(如果你在不需要重复功能的地方添加新内容。
为此,您可以这样做:
#one {
unique-functionality-here
}
.layout-block {
repeat functionality here
}
然后在CSS中定义div:
<div id="one" class="layout-block"></div>
希望有所帮助!