介绍
CSS 层叠样式表,为了让网页元素的样式更加丰富,也为了让网页的内容和样式能拆分开,html只负责文档的结构和内容,表现形式完全交给CSS,html文档变得更加简洁。
css三大特性
层叠性
当多个样式作用于同一个(同一类)标签时,样式发生了冲突,总是执行后边的代码(后边代码层叠前边的代码)。和标签调用选择器的顺序没有关系。
继承性
继承性发生的前提是包含(嵌套关系)
文字的所有属性都可以继承。
◆特殊情况:
h系列不能继承文字大小。
a标签不能继承文字颜色。
优先级
默认样式 0 <标签选择器 1 <类选择器 10 <id选择器 100 <行内样式 1000 <!important 10000以上
◆特点: 继承的权重为0 ; 权重会叠加
css页面引入方法
1、外联式:通过link标签,链接到外部样式表到页面中。
<link rel="stylesheet" type="text/css" href="css/main.css">
2、嵌入式:通过style标签,在网页上创建嵌入的样式表。
<style type="text/css">
div{ width:100px; height:100px; color:red }
......
</style>
3、内联式:通过标签的style属性,在标签上直接写样式。
<div style="width:100px; height:100px; color:red ">......</div>
css文本样式设置
常用的应用文本的css样式:
-
color 设置文字的颜色,如:
color:red;
-
font-size 设置文字的大小,如:
font-size:12px;
-
font-family 设置文字的字体,如:
font-family:'微软雅黑';
-
font-style 设置字体是否倾斜,如:
font-style:'normal'; 设置不倾斜,font-style:'italic';设置文字倾斜
-
font-weight 设置文字是否加粗,如:
font-weight:bold; 设置加粗 font-weight:normal 设置不加粗
-
line-height 设置文字的行高,设置行高相当于在每行文字的上下同时加间距, 如:
line-height:24px;
-
font 同时设置文字的几个属性,写的顺序有兼容问题,建议按照如下顺序写: font:是否加粗 字号/行高 字体;如
font:normal 12px/36px '微软雅黑
’; -
text-decoration 设置文字的下划线,如:
text-decoration:none; 将文字下划线去掉
,经常用于去a链接的下划线 -
text-indent 设置文字首行缩进,如:
text-indent:24px|2em; 设置文字首行缩进24px
-
text-align 设置文字水平对齐方式
left|right|center|justify
,如:text-align:center 设置文字水平居中
font属性连写需要注意顺序
- font:是否加粗 字号/行高 字体;如
font:normal 12px/36px '微软雅黑
’;
css颜色值主要有三种表示方法:
-
颜色名表示,比如:red 红色,gold 金色
-
rgb表示,比如:rgb(255,0,0)表示红色 rgb(255,255,255)白色
-
16进制数值表示,比如:#ff0000 表示红色,这种可以简写成 #f00
背景属性(一般只用到背景颜色)
- background-color 背景颜色
- background-image 背景图片 url()
- Background-repeat repeat(默认) | no-repeat | repeat-x | repeat-y 背景平铺
- Background-position left | right | center | top | bottom 背景定位
- Background-attachment 背景是否滚动 scroll | fixed
背景图片属性连写:bacjground: red url(...) no-repeat 3px 40px scroll
url为必写项
css选择器
常用的选择器有如下几种:
1、标签选择器 标签 {属性:值;}
标签选择器,此种选择器影响范围大,建议尽量应用在后代选择器中。
p{color:red; font-size:20px}
p,div,h1,h2{font-size=20px}
*{margin:0;padding:0}
2、类选择器 .自定义类名{属性:值; 属性:值;}
通过类名来选择元素,一个类可应用于多个元素,一个元素上也可以使用多个类,应用灵活,可复用,是css中应用最多的一种选择器。
- 谁调用,谁生效
- 一个标签可以调用多个类选择器
- 多个标签可以调用同一个类选择器
.red{color:red}
.big{font-size:20px}
.mt10{margin-top:10px}
<div class="red">....</div>
<h1 class="red big mt10">....</h1>
<p class="red mt10">....</p>
3、id选择器 #自定义名称{属性:值;}
通过id名来选择元素,元素的id名称不能重复,所以一个样式设置项只能对应于页面上一个元素,不能复用,id名一般给程序使用,所以不推荐使用id作为选择器。
- 一个ID选择器在一个页面只能调用一次
- 一个标签只能调用一个ID选择器
- 一个标签可以同时调用类选择器和ID选择器
#box{color:red}
<div id="box">....</div> <!-- 对应以上一条样式,其它元素不允许应用此样式 -->
4、后代选择器 选择器+空格+选择器{属性:值;}
主要应用在选择父元素下的子元素,或者子元素下面的子元素,可与标签元素结合使用,减少命名,同时也可以通过层级,防止命名冲突。
- 后代选择器首选要满足包含(嵌套)关系。
- 父集元素在前边,子集元素在后边。
- 无限制隔代。
- 只要能代表标签,标签、类选择器、ID选择器自由组合。
.box span{color:red}
.box .red{color:pink}
.red{color:red}
<div class="box">
<span>....</span>
<a href="#" class="red">....</a>
</div>
<h3 class="red">....</h3>
5、交集选择器 标签+类/id 选择器{属性:值;}
- 即要满足使用了某个标签,还要满足使用了 类/id 选择器。
div .red{color:pink}
div #zz{color:red}
<div class="box">
<span id="zz">....</span>
<a href="#" class="red">....</a>
</div>
6、并集选择器 选择器+,+选择器+,选择器{属性:值;}
.box,#miss,span,h1{...}
链接伪类 / 伪元素
.box1:hover{color:red} # :hover 鼠标悬停显示红色
.box2:before{content:'行首文字';} # 行首添加文字 不能选中
.box3:after{content:'行尾文字';}
<div class="box1">....</div>
<div class="box2">....</div>
<div class="box3">....</div>
标签分类
块元素: Div h1-h6 p ul li
- 独占一行 可以设置宽高
- 嵌套(包含)下,子块元素宽度(没有定义情况下)和父块元素宽度默认一致
行内元素:span a strong em del ins
- 在一行上显示,不能直接设置宽高,可以间接
- 元素的宽和高就是内容撑开的宽高。
行内块元素(内联元素):
- 在一行上显示,可以设置宽高
块元素 行内元素:
- 块元素转行内元素
div,p {display: inline;}
- 行内元素转块元素
span {display: block;}
- 块和行内元素转行内块元素
div, a, span, strong {display: block}