问题描述
|
我对CSS级联的方式感到困惑,我想如果您做了类似的事情,
<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">
<html>
<head>
<Meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">
<style type=\"text/css\">
.small p {
color: red;
font-size: 10px;
}
.big p {
color: green;
font-size: 50px;
}
.blue p {
color: blue;
}
</style>
<title>Insert title here</title>
</head>
<body>
<div class=\"small\">
<p>Small</p>
<div class=\"big\">
<p>Big</p>
<div class=\"small\">
<div class=\"blue\">
<p>Blue inside Small</p>
</div>
</div>
</div>
</div>
</body>
</html>
我的问题是\“小里面的蓝色”,我认为这将是小文本,因为它具有带有“小”类的上层阶级。我该如何实现。
请不要告诉我进行任何更改,因为我正在构建一个复杂的模板系统,您可以在容器(divs)中包含容器(divs),并且我希望采用自下而上的样式!
解决方法
您在CSS中的“ 2”规则之后指定了“ 1”规则,因此字体大小将为50像素,而不是10像素,因为两个选择器的特异性相同。
CSS从上至下(针对CSS规则和DOM)层叠其同等选择器。除非您执行以下任何一项操作,否则您无法更改此设置:
使一个或多个选择器更具体
使用
!important
修改您的HTML
我知道您说过不建议任何更改,但我还是会为他人谋取利益。要实现您想要的最简单的方法就是在第二个选择器中使用子组合器>
(如现在删除的答案):
.big > p {
color: green;
font-size: 50px;
}