style标签虽然可以写在页面的任意位置,但是通常约定写在head标签中
需要通过link标签在网页中引入
一般配js使用(不常用)
标签名 {css属性: 属性值; }
通过标签名,找到页面中所有这类标签,设置样式
.类名 {css属性: 属性值; }
通过类名,找到页面中所有带有这个类名的标签,设置样式
#id属性值 {css属性: 属性值;}
通过id属性值,找到页面中带有这个id属性值的标签,设置样式
* {css属性名: 属性值; }
找到页面中所有的标签设置样式
开发中很少用到,只会在很特殊的情况下用到
具体字体1,具体字体2,具体字体3,具体字体4,具体字体5,…,字体系列
从左往右按顺序查找如果电脑中未安装该字体,则显示下一个字体
如果都不支持,此时会更具操作系统,显示最后字体系列的默认字体
如果给同一个标签设置了相同的属性,此时样式会层叠,写在最下面的会生效
数字 + px
数字 + em(推荐使用1em = 当前标签的font-size的大小)
属性值 | 说明 |
---|---|
left | 左对齐 |
center | 居中对齐 |
right | 右对齐 |
如果想文本居中对齐,text-align属性给文本所在标签(文本的父元素)设置
属性值 | 效果 |
---|---|
underline | 下划线(常用) |
line-through | 删除线(不常用) |
overline | 上划线(几乎不用) |
none | 无装饰线 |
开发中会使用text-decoration: none;来给a标签清楚默认下划线
控制一行的上下行距
让单行文本垂直居中可以设置line-height:文字父元素高度
网页精准布局时,会使用line-height:1可以取消上下间距
根据HTML标签的嵌套关系,选择父元素后代中满足条件的元素
选择器1 选择器2 {css}
在选择器1所找到的后代中,找到满足选择器2的标签,设置样式
根据HTML标签的嵌套关系,选择父元素子代中满足条件的元素
选择器1 > 选择器2 {css}
在选择器1中找到标签的儿子中,找到满足选择器2的标签 ,设置样式
同时选择多组标签,设置相同样式
选择器1, 选择器2 {css}
找到选择器1和选择器2选中的标签,设置样式
选中页面中,同时满足多个选择器的标签
选择器1选择器2{css}
找到页面中既能被选择器1选中该的标签,又能被选择器2选中的标签,设置样式
选中鼠标悬停在元素上的状态,设置样式
选择器:hover{css}
任何一个标签都可以添加伪类
颜色取值:关键字、rgb表示法、rgba表示法、十六进制…
取值 | 效果 |
---|---|
repeat | 默认值,水平和垂直方向都平铺 |
no-repeat | 不平铺 |
repeat-x | 沿着水平方向平铺 |
repeat-y | 沿着垂直方向平铺 |
坐标系(原点(0,0),盒子左上角)
x轴:水平向右
y轴:垂直向下
方位名词取值和坐标取值可以混用,第一个取值表示水平,第二个取值表示垂直
div、p、h系列、ul、li、dl、dt、dd、form、header…
补充:若想去掉列表符号可以使用
list-style: none;
a、span、b、u、i、s、strong、ins、em、del…
input、textarea、button、select…
属性 | 效果 | 使用频率 |
---|---|---|
display: block | 转换成块级元素 | 较多 |
display: inline-block | 转换成行内块元素 | 较多 |
display: inline | 转换成行内元素 | 极少 |
当样式冲突时,只有当选择器优先级相同时,才能通过层叠判断效果
不同的选择器有不同的优先级,优先级高的选择器会覆盖优先级低的选择器样式
继承<通配符选择器<标签选择器<类选择器
如果是复合选择器,此时需要通过权重叠加计算方法,判断最终那个选择器优先级最高会生效
第一级:行内样式个数
第二级:id选择器个数
第三级:类选择器个数
第四级:标签选择器个数
页面中的每一个标签都可以看成是一个盒子,通过盒子的视角更方便进行布局
浏览器在渲染网页时,会将网页中的元素看成是一个个的矩形区域,我们也形象的称之为盒子
CSS中规定每个盒子由:内容区域(content)、内边距区域(padding)、边框区域(border)、外边距区域(margin)构成,这就是盒子模型。
利用width和height属性默认设置盒子内容区域的大小
单个取值的连写,取值之间可以空格分开
例如:
border: 10px solid orange;
solid:实线;dashed:虚线;dotted:点线
只给盒子某个方向设置边框
padding属性可以当作复合属性使用表示单独设置某个方向的内边距,padding最多取4个值
四值:上、下、左、右
三值:上、左右、下
两值:上下、左右
注:内边距默认会撑大盒子,如果不想它把盒子撑大我们可以加上css3特性:
box-sizing: border-box;
与padding一样的设置
若想让盒子居中,可以这样写:
margin:0 auto;
垂直布局的块级元素上下的margin会合并,最终两者距离为margin的最大值。
只给其中一个盒子设置margin就可以啦
互相嵌套的块级元素,子元素margin-top会作用在父元素上,最终导致父元素一起往下移动
作用:根据元素在HTML中的结构关系查找元素
优势:减少对于HTML中类的依赖,有利于保持代码整洁
场景:常用于查找某父级选择器中的子元素
选择器 | 说明 |
---|---|
E: first-child { } | 匹配父元素中的第一个子元素,并且是E元素 |
E: last-child { } | 匹配父元素中最后一个子元素,并且是E元素 |
E: nth-child(n) { } | 匹配父元素中第n个子元素,并且是E元素 |
E: nth-last-child(n) { } | 匹配父元素中倒数第几个子元素,并且是E元素 |
其中n的取值可以是:
功能 | 公式 |
---|---|
偶数 | 2n、even |
计数 | 2n + 1、2n - 1、odd |
找到前5个 | -n + 5 |
找到从第5个开始 | n + 5 |
伪元素:一般页面中的非主体内容可以使用伪元素
伪元素 | 作用 |
---|---|
::before | 在父元素内容的最前面添加一个伪元素 |
::after | 在父元素内容的最后一个添加一个伪元素 |
必须设置content属性才能生效
伪元素默认是行内元素
网页布局、文字环绕
注意:浮动元素不能通过text-align: center或者是margin: 0 auto来实现居中
清除浮动带来的影响,如果子元素浮动了,此时子元素不能撑开标准流的块级父元素
子元素浮动脱标不占位置
需要父元素有高度,从而不影响其他网页的布局
优点:简单方便
缺点:有些布局中不能固定父元素高度
缺点:会在页面中添加额外的标签,会让页面的HTML结构变得复杂
用伪元素代替了额外标签
基本写法
.clearfix::after {
content: '';
display: block;
clear: both;
}
补充写法
.clearfix::after {
content: '';
display: block;
clear: both;
/*在网页中看不到伪元素*/
height: 0;
visibility: hidden;
}
优点:项目中使用,直接给标签加类即可清除
.clearfix::before, .clearfix::after {
content: '';
display: table;
}
.clearfix::after {
clear: both;
}
优点:项目中使用,直接给标签加类即可清除
直接给父元素设置 overflow:hidden
优点:方便快捷
可以让原来垂直布局的块级元素变成水平布局
属性值:position
常见属性值:
定位方式 | 属性值 |
---|---|
静态定位 | static |
相对定位 | relative |
绝对定位 | absolute |
固定定位 | fixed |
偏移值设置分为两个方向,水平和垂直方向各选一个使用即可
选择的原则一般是就近原则(离哪边近用哪个)
方向 | 属性名 | 属性值 | 含义 |
---|---|---|---|
水平 | left | 数字+px | 距离左边的距离 |
水平 | right | 数字+px | 距离右边的距离 |
垂直 | top | 数字+px | 距离上边的距离 |
垂直 | bottom | 数字+px | 距离下边的距离 |
position:relative
相对于非静态的父元素进行定位移动
position: absolute;
相对于浏览器进行定位移动
position: fixed;
设置鼠标光标在元素上时显示的样式
属性值 | 效果 |
---|---|
default | 默认值通常是箭头 |
pointer | 小手效果,提示用户可以点击 |
text | 工字形,提示用户可以选择文字 |
move | 十字光标,提示用户可以移动 |
让盒子四个交变得圆润,增加页面细节,提升用户体验
数字 + px; 百分比
指的是盒子内容部分所超出盒子范围的区域
控制内容溢出部分的效果显示
属性值 | 效果 |
---|---|
visible | 默认值,溢出部分可见 |
hidden | 溢出部分隐藏 |
scroll | 无论是否溢出都显示滚动条 |
auto | 根据是否溢出,自动显示或者隐藏滚动条 |
让某元素在屏幕中不可见
visibility: hidden(占位隐藏)
display: none(不占位的隐藏)
让某元素整体(包括内容一起变透明)
0~1之间的数字,1表示完全不透明,0表示完全透明