CSS3核心技术
CSS3核心技术
CSS注释
1 /* CSS注释 */
CSS分类
位置分类
内联样式表(行内样式表)
1
<div style="width:500px;height:500px;background-color:pink;"></div>
内部样式表
1
2
3
4
5
6
7
8
9<head>
<style>
div {
width: 500px;
height: 500px;
background-color: pink;
}
</style>
</head>外部样式表
1
2<!-- 在html中引入外部css文件 -->
<link rel="stylesheet" href="style.css">1
2
3
4
5div {
width: 200px;
height: 200px;
background-color: pink;
}
选择器
基础选择器
标签选择器
1
2
3p{
color:red;
}类选择器
1
2<div class="d1">Lorem ipsum dolor sit amet.</div>
<div class="d2">Lorem ipsum dolor sit amet.</div>1
2
3.d2 {
color: red;
}id选择器
1
2<div id="d1">Lorem ipsum dolor sit amet.</div>
<div id="d2">Lorem ipsum dolor sit amet.</div>1
2
3#d1 {
color: red;
}通配符选择器
1
2
3
4*{
margin:0;
padding:0;
}
关系选择器
子代/后代选择器HTML示例
1 | <div> |
后代选择器
1
2
3
4/* 0 2会显示为红色 */
div span {
color:red;
}子代选择器
1
2
3
4/* 0会显示为红色 */
div>span {
color: red;
}
相邻/通用兄弟选择器HTML示例
1 | <div>0</div> |
相邻兄弟选择器
1
2
3
4/* 1会显示为红色 */
div+p {
color:red;
}通用兄弟选择器
1
2
3
4/* 1 2 3会显示为红色 */
div~p {
color: red;
}
分组选择器
或称并集选择器
1 | p,div { |
伪类选择器
状态伪类
链接伪类
伪类顺序规则:
a:link -> a:visited -> a:hover -> a:active链接伪类 作用 a:link未访问链接的默认样式 a:visited已访问链接的样式 a:hover鼠标悬停在链接上时的反馈 a:active链接被点击时的瞬时状态(按下到松开) 行为伪类
或称动态伪类
动态伪类 作用 :hover鼠标经过元素 :focus获得焦点的元素(表单)
结构伪类
| 结构伪类 | 作用 | 语法 |
|---|---|---|
:first-child |
一组兄弟元素中的第一个元素 | |
:last-child |
一组兄弟元素中的最后一个元素 | |
:nth-child(n) |
一组兄弟元素列表中第n个元素(n是从0开始计算) | :nth-child(3n): 3的倍数,第3.6.9…个元素:nth-child(n+2): 第2个以及以后的元素:nth-child(-n+3): 前面3个元素 |
:first-child和:first-of-type区别
:first-child选择的是父元素下的第一个子元素,无论其元素类型如何:first-of-type选择的是父元素下的第一个具有指定元素类型的子元素,并不要求它是父元素的第一个子元素
表单伪类
| 表单伪类 | 作用 |
|---|---|
:disabled |
表单禁用 |
:checked |
选中状态,单选复选按钮 |
伪元素选择器
- 选择特定部分
| 伪元素选择器 | 作用 |
|---|---|
::first-line |
选择首行 |
::first-letter |
选择首字母 |
::placeholder |
选择input或者textarea占位符 |
- 插入内容
| 伪元素选择器 | 作用 | 语法 |
|---|---|---|
::before |
元素内插入伪元素,作为第一个元素 | div::before{ content:”开始”; } |
::after |
元素内插入伪元素,作为最后一个元素 |
属性选择器
| 属性选择器 | 作用 |
|---|---|
[属性] |
匹配包含指定属性的元素 |
[属性=值] |
匹配属性值等于指定值的元素 |
[属性^=值] |
匹配属性值以指定字符串开头的元素 |
[属性$=值] |
匹配属性值以指定字符串结尾的元素 |
[属性*=值] |
匹配属性值任意位置包含指定子串的元素 |
CSS优先级

文本样式
字体样式
color:设置字体颜色- 关键字:red、green、blue等
- 十六进制:#F00、#CCC、#F3F3F3
- rgba:rgb(255,255,255,0) ,指红绿蓝和透明度
font-family:字体族- serif:衬线字体
- sans-serif:无衬线字体(推荐)
font-size:字体大小font-style:字体风格- normal:正常
- italic:斜体
font-weight:字体粗细- 100:细
- 400:正常
- 700:加粗
text-decoration:字体装饰- none:取消字体装饰
- underline:下划线
- overline:上划线
- line-through:删除线
font简写:
font: font-style font-weight font-size/line-height font-family;\其中
font-size和font-family是必须写
文本布局
text-align:控制文本、图片在块级元素的水平对齐- 参数:left / center / right / justify(两端对齐)
text-indent:块级元素中的首行缩进- 2em:相对单位,相对于当前元素的文本大小
letter-spacing:字间距line-height:文本每行之间的高1
2
3p {
line-height:1.5; /* 当前字体大小的1.5倍 */
}1
2
3
4
5/* 文字垂直居中:盒子高度等于line-height */
p{
height:20px;
line-height:20px;
}
盒子模型
边框
边框语法
border: 1px solid red;border-top/right/bottom/left: 1px solid red;border-color: red yellow green blue;border-style: solid dashed dotted;border-width: 1px 20px;border-top/right/bottom/left-width/style/color
圆角边框:
border-radius顺序 - 左上角 右上角 右下角 左下角;
- 胶囊圆角:长方形设置圆角为宽度的一半
- 圆形: 正方形设置圆角为高度一半或者50%
| 圆角写法 | 作用 |
|---|---|
border-radius: 10px; |
|
border-radius: 10px 20px; |
左上 右下是10px,右上 左下 20px |
border-radius :10px 20px 30px; |
左上是10px,右上 左下是20px,右下30px |
border-radius: 10px 20px 30px 40px; |
左上10px,右上20px,右下30px,左下40px |
内边距
内边距语法
padding: 10px 20px 30px 40px;padding-left: 10px;
外边距
注意点
行内元素左右外边距和内边距生效,上下外边距无效,上下内边距生效但不影响行高或布局
行内元素设置宽度和高度也无效
块级元素水平区中,只要实现左右外边距都为
auto即可
1 | div { |
外边距折叠
- 并列关系(兄弟)的区块元素
- 两个上下外边距将合并为一个外边距。其大小等于最大的单个外边距
外边距塌陷
- 嵌套关系(父子)的区块元素
- 给子盒子设置上下外边距会让父盒子塌陷移动
1 | /* 解决方法 */ |
尺寸计算
box-sizing:用于定于元素的盒子模型计算方式,控制元素的width和height是否包含padding和border
| 属性值 | 描述 |
|---|---|
content-box |
默认值。元素的 width 和 height 仅包含内容区域,不包含 padding 和 border理解: width = 内容的宽度 |
border-box |
元素的 width 和 height 包含内容、padding和 border理解: width = border + padding + 内容的宽度 |
盒子背景
复合写法(顺序无关):
background: 颜色 图片 重复 固定 位置/尺寸 ;
| 属性 | 作用 | 常用值 |
|---|---|---|
background-color |
设置元素背景颜色 | 颜色名称、十六进制、RGB、透明度 |
background-image |
设置背景图片 | url(image.jpg) |
background-repeat |
控制背景图片是否重复 | repeat(默认)、no-repeat、repeat-x、repeat-y |
background-position |
定位背景图片位置 | x y (如 center top, 或者px、%单位) |
background-size |
调整背景图片尺寸 | 默认auto、cover(覆盖)、contain(包含) 或者跟px、% |
background-attachment |
背景是否随页面滚动 | scroll(默认滚动的)、fixed(固定) |
注意点:
background-attachment设置为fixed时,图片的位置是相对于视窗的
背景渐变
| 属性/方法 | 描述 | 示例代码 |
|---|---|---|
linear-gradient(方向, 颜色1 位置,颜色2 位置...) |
线性渐变(方向可控) | background: linear-gradient(to right, #ff6b6b, #4ecdc4) |
radial-gradient(形状,颜色1,颜色2... ) |
径向渐变(形状和位置可控 | radial-gradient(circle, #ff9a9e, #fad0c4) |
文字渐变
1 | .content { |
盒子阴影
语法:
box-shadow: X轴偏移量 Y轴偏移量 模糊半径 扩散半径 颜色;
- 多个属性用空格隔开
- X轴偏移量和Y轴偏移量是必须要写,其余可以省略采取默认值。
- 默认是外阴影,如果改为内阴影要写 inset
1 | .box:hover { |
过渡
语法:
transition :过渡属性 过渡时间;
- 属性值中间空格隔开
- 过渡属性如果都要变化可以写
all- 过渡时间单位是秒s,比如 0.2s 等
1 | .box { |
样式初始化
1 | * { |
推荐
Normalize.css
文字溢出
1 | .content { |
多行文本溢出
1 | .content { |
字体图标
1 | <link rel="stylesheet" href="iconfont.css"> |
1 | <div class="iconfont icon-xihuan"></div> <!-- 必须引入iconfont类 --> |

