HTML:
<body class="pageStyle">
<h1>The Amazing World of CSS</h1>
<p><strong>Sed ut perspiciatis</strong> unde omnis iste natus error sit <em>voluptatem accusantium</em> doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo <strong>inventore veritatis et quasi architecto beatae</strong> vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia eos qui ratione voluptatem sequi nesciunt. Learn more about CSS at the <a href="http://www.w3.org/Style/CSS/">W3C CSS Home Page</a>.</p>
</body>
CSS:
.pageStyle {
font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;
font-size: 18px;
}
结果:https://jsfiddle.net/2tqxadpn/
为什么<h1>
代码不是18px?
答案 0 :(得分:2)
由于h1
有一些默认样式,其中一个是font-size
,默认情况下为2em
,因此您需要在font-size
<中设置h1
/ p>
.pageStyle {
font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;
font-size: 18px;
}
h1 {
font-size: inherit /* or 18px */
}
<body class="pageStyle">
<h1>The Amazing World of CSS</h1>
<p><strong>Sed ut perspiciatis</strong> unde omnis iste natus error sit <em>voluptatem accusantium</em> doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo <strong>inventore veritatis et quasi architecto beatae</strong> vitae dicta sunt explicabo.
Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia eos qui ratione voluptatem sequi nesciunt. Learn more about CSS at the <a href="http://www.w3.org/Style/CSS/">W3C CSS Home Page</a>.</p>
</body>
OP评论:
好的,但是这种风格不应该覆盖吗?
不会因为body
是父母而不会覆盖。并且h1
默认样式正在直接应用于h1
,因此关于特异性它更具体
进一步阅读:
答案 1 :(得分:1)
这与CSS特异性有关。来自Mozilla's docs:
以下选择器类型列表是通过提高特异性来实现的:
- 类型选择器(例如,h1)和伪元素(例如,之前)。
- 类选择器(例如.example),属性选择器(例如[type =&#34; radio&#34;])和伪类(例如:hover)。
- ID选择器(例如
#example
)。
另请注意!important
例外:
在样式声明中使用重要规则时,此声明 覆盖任何其他声明......
在您的情况下,由于浏览器具有所有元素的默认样式,并且这些样式是在元素的名称(h1
,a
等...)上定义的,因此优先于在父元素上定义的规则或通过CSS选择器,因此不应用您的样式。请参阅此屏幕截图,其中显示了h1
的浏览器默认样式:
尝试将您的样式更改为定位h2
或将pageStyle
类添加到h2
以查看。