样式的引入方法
内部样式
点击查看代码
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style type="text/css">
body {
background-color: #000;
}
</style>
</head>
行内样式
<span style="color: red;">红色字体</span>
外部样式 link引入和@import引入
注意@import引入必须放在 style的前面 <link href="a.css" rel="stylesheet" type="text/css"/>
点击查看代码
<style type="text/css">
@import url("a.css");
body {
background-color: #fff;
}
</style>
CSS特性 继承性
继承性是指后代元素继承祖先元素的样式,继承样式主要包括字体、文本等基本属性。如:字体、字号、颜色、行距等。不允许继承的属性有边框、边界、补白、背景、定位、布局、尺寸等。
CSS特性 层叠性
层叠性是指对同一个对象应用多个样式的能力 不同选择器的权重不一样,注意区分 important表示权重最高 无限高 font-size: 12px!important;
CSS选择器
元素选择器:选择网页中的元素(标签选择器、类选择器、ID选择器、通配选择器)
1、标签选择器
直接选择所有html标签,如body、p、a等 body{ font-size: 12px!important; }
2、类选择器
以(.)为前缀,后面是一个类名,直接在标签上使用 .red{color: red;}
<span class="red">红色字体</span>
3、ID选择器
以(#)为前缀,后面是一个类名,直接在标签上使用,id为box的标签将会使用该样式 #box{color: red;}
<span id="box">红色字体</span>
4、通配选择器 *
匹配文档中所有标签 *{ margin: 0; padding: 0; }
元素选择器注意事项
可以在元素选择器之前加上限定标签名,用于限定它的应用范围。如下这个样式只能用于div元素,对其他元素将无效 div#box{color: red;}
关系选择器
1、后代选择器(空格)
通过空格链接两个简单的选择器,匹配所有后代元素。如下:body包含的所有div元素 将使用该样式。 .div-test div{color: blue;}
2、儿子选择器 >
通过>连接两个选择器 匹配直接子元素。不匹配它的孙子、重孙等节点。注意一些可继承的属性可能会误导样式的展示。 .div-test>div{ border:3px solid red; }
3、相邻选择器+
通过+连接两个简单的选择器。前面表示前一个元素,后面表示后一个元素。如下:当span和h1相邻时,h1将使用该样式 span+h1{color: gray;}
4、兄弟选择器~
通过~连接两个简单的选择器,匹配后面的所有同级别兄弟节点。如下:匹配span后面所有同级别h1标签。 span~h1{color: red;}
5、分组选择器,
通过,好连接两个简单的选择器,逗号匹配到的所有元素都会使用该样式 h1,h2,h3,h4,h5,h6{ font-size: 20px;}
属性选择器(7种)
1、E[attr]
匹配设置了attr属性的元素。如下表示 所有匹配 设置了id属性的h1元素 h1[id]{font-size: 12px;}
2、E[attr="value"]
匹配属性attr=value的元素。 h1[id='box']{font-size: 12px;}
3、E[attr~="value"]
匹配具有attr属性,且属性值为空格分隔的列表,比如class属性。 其中一个值等于value的元素。通常用于匹配class属性的较多。如下匹配class属性中包含test的所有元素。 h1[class~='test']{color: blue;}
4、E[attr^="value"]
匹配attr属性以value开头的元素。如下匹配id属性以box开头的元素。当id=box1、box2、box3等值时,都可以匹配成功。 h1[id^='box']{color: blue;}
5、E[attr$="value"]
匹配attr属性值以value结尾的元素,。如下匹配所有id属性以name结尾的元素,如当id=box1_name、box2_name都可以匹配成功。 h1[id$='name']{color: red;}
6、E[attr*='value']
匹配attr属性值包含value的所有元素。如下匹配id属性值种包含na的所有h1元素。当id=box2name、box3name都可以匹配成功。 h1[id*='na']{color: green;}
7、E[attr|='value']
匹配具有attr属性,属性值以value开头,并且属性值以"-"分割的元素。如下匹配所有class属性值,以col开头的h1元素。 h1[class|='col']{color: blueviolet;}
伪类选择器
伪类选择器是一种特殊的选择器,它对不同状态和不同行为的元素定义样式。基础用法: E:pseudo-class{property:value}
a:link{color: red;}
其中E代表元素,pseudo-class代表伪类,property代表属性名,value代表属性值。 CSS3伪类选择器非常多,主要介绍常用的一些伪类选择器
1、结构伪类选择器
1、:first-child 匹配第一个子元素,类型有关 body div:first-child{color: red;}
匹配body种的第一个div 2、:last-child 匹配最后一个子元素,类型有关 div:last-child{color: red;}
3、:nth-child(n) 从左到右匹配第n个元素,类型无关 div>h1:nth-child(2){color: red;}
示例匹配div种的第二个元素 也可以用nth-child(n) nth-child(2n) nth-child(2+1) 3、:nth-last-child(n) 匹配倒数第n个元素,类型无关 div>h1:nth-last-child(2){color: red;}
示例匹配div种倒数第二个元素 也可以用nth-last-child(n) nth-last-child(2n) nth-last-child(2+1) 4、:only-child 匹配子类中唯一的一个子元素 div:only-child{color: red;}
当div是 父类的唯一子元素时候匹配成功 5、
2、否定伪类选择器 .not()
.not()表示否定选择器,即过滤点not选择器匹配的特定元素。如下匹配id不等于box的h1元素 h1:not(#box){color: blue;}
3、状态伪类
:enabled 匹配所有可用的元素 :disabled 匹配所有不可用的元素(设置了disabled属性 ) :checked 匹配所有被选中的元素
目标伪类选择器 :target
1、:first-letter 匹配第一个字符 p:first-letter{font-size: 22px;}
2、:first-line 匹配第一行 p:first-line{font-size: 22px;}
3、:before 在指定元素前面插入一个元素 4、:aftrer 在指定元素后面插入一个元素
动态伪类选择器
动态伪类选择器是一种行为类样式,只有用户与页面交互时才有效。主要有:link :hover :visted :active :focus几种