相关定义
- 通配符选择器:*,表示 选取页面中所有元素(标签),如html、body、li、a等元素
- 不需要调用,自动给所有元素使用样式
- 常用场景:清除所有元素标签的内外边距
* {
margin: 0;
padding: 0;
}
- 标签选择器body:仅作用于body层,仅影响body下所有元素的相应属性为继承性质的值
- 继承属性:
(1)常用的css不可继承的属性(参考链接:css属性继承有哪些?css中可继承的属性和不可继承属性的总结)
display:规定元素应该生成的框的类型
text-decoration:规定添加到文本的装饰
text-shadow:文本阴影效果
white-space:空白符的处理
盒子模型的属性:width、height、margin 、border、padding
背景属性:background
定位属性:float、clear、position、top、right、bottom、left、min-width、min-height、max-width、max-height、overflow、clip、z-index
(2) a标签的文字颜色和下划线是不能被继承的
h标签的文字大小是不能被继承的
相关问题
问题
- 用li包含链接的方式设置导航栏时,发现ul标签的内容无法在父级div中垂直居中显示:
引起原因
- 误以为通配符选择器(*)与标签选择器(body)的作用一样
- 忽略了标签选择器的子级对父级的继承性及部分属性是不可继承的
相关html代码
<body>
<div class="header">
<div class="nav">
<ul>
<li><a href="#">首页</a></li>
<li><a href="#">课程</a></li>
<li><a href="#">职业规划</a></li>
</ul>
</div>
</div>
</body>
问题页面css相关代码
body{
margin: 0;
padding: 0;
}
li{
list-style: none;
}
a{
text-decoration: none;
}
.header{
height: 42px;
background-color: pink;
margin: 30px auto;
}
.nav {
float: left;
}
.nav ul li {
float: left;
}
.nav ul li a {
display: block;
height: 42px;
padding: 0 10px;
line-height: 42px;
font-size: 18px;
}
解决方法
- 将body选择器改为通配符选择器*
* {
margin: 0;
padding: 0;
}
- 增加对ul标签内外边距的设置
.nav ul {
margin: 0;
padding: 0;
}