【发布时间】:2016-05-23 03:11:33
【问题描述】:
以下是我正在努力了解 CSS 中这两个规则之间差异的 html 文件。
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>specificity</title>
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<style>
aside,
article,
section,
header,
footer,
nav {
display: block;
}
body {
font-family: Georgia;
font-size: 120%;
}
/*add styles here*/
#mainContent p {
color: red;
}
p {
color: blue;
}
.green {
color: green;
}
/**/
</style>
</head>
<body>
<section id="mainContent">
<p>I am a paragraph nested inside a section. I also have a <strong class="green">strong tag</strong> nested inside of me.</p>
</section>
</body>
</html>
以下是我不太清楚的陈述:
在涉及继承之前,特异性工作得很好。如果一个孩子 元素的样式与父样式不同或冲突, 孩子的风格总是赢。所以对于上面的
strong元素,我们看到的是继承而不是特异性。
但是,如果我将 green 类应用于 <p> 元素,我会观察到特异性,因为绿色样式被忽略并且带有 id 的样式应用于段落。
我的问题是,既然<p> 是<section> 的孩子,难道不应该根据上面的陈述在这里观察到继承,就像用<strong> 元素观察到的一样?
【问题讨论】:
-
在您的示例中,
<strong>元素的颜色不是来自继承。这句话出自哪里? -
它来自我在 Lynda 上的一门课程。
-
在涉及继承之前,特异性工作得很好。 - 这句话似乎是错误的@Kiran。如果我的英语水平不错,应该是相反的:P
-
我认为这是正确的说法。由于 元素的颜色更改为绿色,因为它是部分的子元素,并且子规则在继承中获胜。此处的特异性不适用于此元素。
-
特异性是应用于您的
strong元素的一种。它是绿色的,因为您已将绿色类分配给strong元素(特别是该元素)。如果它继承了父级的样式,它的颜色应该是红色而不是绿色。
标签: html css inheritance