1. 常用选择器
-
ID选择器:id表示身份,在页面中元素的id值不允许重复,因此id选择器只能选择单个元素。在style标签里面的格式为:
#id名称{样式内容}
如:
#navigation { height: 80px; line-height: 80px; text-align: center; background-color: white; }
也可以针对单个元素里面的某个元素生效,比如针对某个div元素里面的图片生效,防止影响到其他元素的图片:#banner img { width: 100%; }
-
标签选择器:根据标签名称选择对应的所有标签。在style标签里面的格式为:
标签名称{样式内容}
如:
html {
background: #ddd;
}
body {
margin: 0;
}
- 类别选择器:选择拥有该类别的多个元素,通过class来引用。在style标签中的定义格式:
.类别名称{样式内容}
,在标签中的使用格式:class="类别名称"
如:
.nav {
text-decoration: none; color: black; margin: 0 15px;
}
- 属性选择器:
- 伪类选择器:
顺便附上一个网页的代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
html {
background: #ddd;
}
body {
margin: 0;
}
#navigation {
height: 80px; line-height: 80px; text-align: center; background-color: white;
}
#bottom {
height: 40px; line-height: 40px; text-align: center; font-size: 15px; color: gray;
}
.nav {
text-decoration: none; color: black; margin: 0 15px;
}
#banner img {
width: 100%;
}
</style>
</head>
<body>
<!-- banner: 横幅 navigation: 导航 bottom: 底部
div容器的特点:一个空的div,默认宽度为100%,高度为0
-->
<div id="banner">
<img src="./imgs/1.jpg" class="ban">
</div>
<div id="navigation">
<a href="" class="nav">首页</a>
<a href="" class="nav">关于王力</a>
<a href="" class="nav">产品世界</a>
<a href="" class="nav">新闻中心</a>
<a href="" class="nav">网络事件</a>
<a href="" class="nav">联系我们</a>
<a href="" class="nav">网络新闻</a>
</div>
<div id="bottom">
版权所有:浙江王力
</div>
</body>
</html>
实现效果:
2. 样式表的层叠
作用于同一个元素上的多个样式产生冲突的情况经常不可避免的发生,当多个样式发生重叠时,优先级别高的样式会生效。
- CSS 优先规则1: 最近的祖先样式比其他祖先样式优先级高。
例如:
<!-- 类名为 son 的 div 的 color 为 blue -->
<div style="color: red">
<div style="color: blue">
<div class="son"></div>
</div>
</div>
- CSS 优先规则2:"直接样式"比"祖先样式"优先级高。
例如:
<!-- 类名为 son 的 div 的 color 为 blue -->
<div style="color: red">
<div class="son" style="color: blue"></div>
</div>
- CSS 优先规则3:优先级关系:内联样式 > ID 选择器 > 类选择器 = 属性选择器 = 伪类选择器 > 标签选择器 = 伪元素选择器。
例如:
// HTML
<div class="content-class" id="content-id" style="color: black"></div>
// CSS
#content-id {
color: red;
}
.content-class {
color: blue;
}
div {
color: grey;
}
最终的 color 为 black,因为内联样式比其他选择器的优先级高。
- CSS 优先规则4:计算选择符中 ID 选择器的个数(a),计算选择符中类选择器、属性选择器以及伪类选择器的个数之和(b),计算选择符中标签选择器和伪元素选择器的个数之和(c)。按 a、b、c 的顺序依次比较大小,大的则优先级高,相等则比较下一个。若最后两个的选择符中 a、b、c 都相等,则按照"就近原则"来判断。
例如:
// HTML
<div id="con-id">
<span class="con-span"></span>
</div>
// CSS
#con-id span {
color: red;
}
div .con-span {
color: blue;
}
由规则 4 可见,<span>
的 color 为 red。
- CSS 优先规则5:属性后插有 !important 的属性拥有最高优先级。若同时插有 !important,则再利用规则 3、4 判断优先级。
例如:
// HTML
<div class="father">
<p class="son"></p>
</div>
// CSS
p {
background: red !important;
}
.father .son {
background: blue;
}
虽然 .father .son 拥有更高的权值,但选择器 p 中的 background 属性被插入了 !important, 所以在这 <p>
的 background 为 red。