CSS
一、CSS基本语法
1.1 CSS和HTML的关系
css 为某一个 html 元素设置样式
css 的样式作用在某个 html 元素上
1.2 元素间的关系
子元素
父元素
兄弟元素
祖先元素
后代元素
1.3 CSS使用方式
<!--1. 行内式 使用标签的style属性-->
<p style=" width: 200px; color:skyblue; border:solid 2px pink; ">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quam ipsum vero nesciunt neque non eum vitae sint, eos labore. Expedita ut magnam, iure maiores cupiditate laboriosam reiciendis quam deleniti atque.
</p>
<!--2.内嵌式 在head标签中写style标签-->
<style>
.p1{
width: 600px;
color: teal;
font-size: 22px;
border: 2px solid greenyellow;
}
</style>
<p class="p1">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quam ipsum vero nesciunt neque non eum vitae sint, eos labore. Expedita ut magnam, iure maiores cupiditate laboriosam reiciendis quam deleniti atque.
</p>
<!--3. 外联式 单独创建一个css文件,使用link标签引入css文件-->
<link rel="stylesheet" href="./06.css">
<h2>CSS外联样式</h2>
<!--外部css文件内容-->
@charset "utf-8";
h2{
color: #f0f;
text-decoration: line-through;
}
注意: 外链式和内嵌式的优先级相同 , 遵循css层叠规则 , 行内式的优先级最高 .
1.4 CSS 语法格式
/* 内嵌式和外链式
先写选择器跟一对{}, 在{}中写css属性*/
选择器1 {
属性名1:属性值1;
属性名2:属性值2;
...
}
选择器2 {
属性名1:属性值1;
属性名2:属性值2;
...
}
/*行内式 在标签中写style属性*/
<h2 style="color:red;">zzzzzz</h2>
1.5 CSS注释
/*css注释形式*/
二、CSS基本颜色表示方式
2.1 颜色名 colorName
red orange yellow green ycan blue purple
2.2 rgb方式
计算机三原色: red , green , blue
/*用0-255之间的数字表示各种颜色*/
color: rgb(xx,yy,zz);
/*使用百分比表示各种颜色: 0%-100%*/
background-color: rgb(100%, 40%,10%);
2.3 十六进制数字
/*使用十六进制数字, 每两个数字为一组,原理和rgb相同*/
background-color: #aeaeae;
/*如果三组数, 组内每两个数 是相同的,可以简写*/
background-color: #123;/*相当于 #112233*/
注意:
- 三原色的数值都是一样 , 表示为灰色;
- 数值越大 , 灰色越浅 , 如果数字都是最大的 , 表示为白色;
- 数值越小 , 灰色越深 , 如果数字都是最小的 , 表示为黑色;
三、CSS选择器
3.1 基本选择器
① 标签名选择器
标签名{
css语句;
}
② id名选择器
/*id名在一个页面中唯一*/
#属性名{
css语句;
}
③ 类名选择器
/*类名在一个页面中可以多次使用, 同一个标签可以使用多个标签*/
.类名{
css语句;
}
③ 全局选择器
/*全局选择器选择到页面中的全部元素包括html和body元素,head元素以及嵌套在head元素中的元素,因为在页面中无内容,所有不会被选择到*/
*{
css语句;
}
3.2 CSS层叠性
层叠性----所有能选择到一个元素的选择器所设置的样式都会作用在元素上
3.3 CSS基本选择器的优先级
- id选择器 > 类选择器 > 标签选择器 > 全局选择器
- 优先级相同后面的层叠前面的 , 显示效果是后面的
- 行内式优先级高于选择器
四、块元素和行内元素
- 任何一个元素都可以当做一个盒子
4.1 盒子模型的显示模式
- 块级元素 :
- 块元素的默认宽度是父元素的宽度
- 默认高度是内容的高度块元素
- 可以设置宽高
- 行内元素 :
- 行内元素的默认宽度时内容的宽度
- 默认高度是内容的高度行内元素
- 无法设置宽高
- 行内块级元素 :
- 行内块元素的默认宽度是内容的宽度
- 默认高度是内容高度
- 有内容时 , 可以设置宽高
4.2 元素默认的显示模式
块元素:独占一行,可以设置宽高
格式排版标签: h1~h6 div p pre hr br
表单: form
表格: table caption tr thead tfoot tbody
列表: ul li ol tt td
行内元素: 不独占一行,不可以设置宽高
文本标签: em strong sub sup del ins span
超链接: a
行内块级元素: 不独占一行,可以设置宽高
图片元素: img
表单: input textarea select option button
表格: td th
4.3 修改元素默认的显示模式
display:block:/*改为块元素*/
inline;/*改为行内元素*/
inline-block;/*改为行内块元素*/
五、CSS属性
5.1 字体属性
font-family: 字体族科
font-family: '华文彩云';
/* 同时设置多个字体 如果用户端没有第一个字体,就会依次往下找*/
font-family: '等线','宋体','楷体','华文彩云';
/* 衬线字体和非衬线字体:
衬线字体: serif 横竖笔画不等宽 --> 宋体 楷体
非衬线字体: sans-serif 横竖笔画等宽 --> 微软雅黑 黑体 幼圆
扁平化设计----->多使用用非衬线字体
*/
font-size: 字体大小
/* 字体大小:默认16px 网页的字体大小有最小值12px */
font-size: 44px;
font-style: 字体倾斜
/* 字体风格:文字倾斜与否*/
font-style: normal; /* 默认值*/
font-style: italic; /* 斜体:使用字体中自带的斜体 推荐使用!!!!*/
font-style: oblique; /* 斜体:强制变为斜体 */
font-weight: 字体加粗
/* 字体加粗:
100-300 细体
400-500 正常
600-900 粗体
bolder--更粗,一般不用
*/
font-weight: 400;/*400==normal==正常 */
font-weight: 700;/*700==bold==加粗 */
font-weight: lighter;/* 200==lighter==细体*/
font-variant: 字体变形
/* 字体变形:
small-caps: 小型大写字母,把英文全部变成大写,用小写的尺寸表示*/
font-variant:small-caps;
font: 字体复合属性 , 可以同时设置多个子属性的值
/* 顺序: font-style font-weight font-size font-family
至少设置font-size font-family 顺序固定*/
font: italic bold 22px '宋体','楷体',serif ;
5.2 字体颜色
color: 设置字体颜色
color: #aeaeae;
5.3 文本属性
5.3.1 letter-spacing / word-spacing
letter-spacing: 设置字母间的距离(包括汉字)
word-spacing: 设置单词之间的距离(汉字无聊)
5.3.2 text-align
设置文本内容在元素内,水平方向的对齐方式
text-align: left;/*左对齐*/
text-align: right;/*右对齐*/
text-align: center;/*居中对齐*/
5.3.3 vertical-align
①设置文本的垂直对齐方式
vertical-align: top/middle/baseline/buttom
top:/*顶线对齐*/
middle:/*中线对齐*/
baseline:/*基线对齐*/
buttom:/*底线对齐*/
②用途
第一个用途 : 行内元素或者行内快元素与文本内容在一行显示的时候 , 设置如何对齐
- 给行内元素或者行内块元素设置 vertical-align
第二个用途 : 设置表格中单元格中文字的垂直对齐方式
- 给td,th设置 vertical-align 可以控制文本在单元格内的垂直对齐方式
5.3.4 line-height
行高: 第一行文字的中线与第二行文字中间之间的距离。
通过设置行高与元素的高度一致,实现文字在元素内容垂直居中对齐,但是,只适合只有一行文字的情况。
行高可以让文本内容的高度变大,一个元素不设置高度,只设置行高且元素内有文本内容,元素高度与行高大小一致。
font 复合属性,把行高也复合进去了
font: 30px/100px 'Microsoft YaHei';
/* 其中 100px 就是行高 */
5.3.5 text-decoration
- 设置文本的样式
text-decoration: underline;/*下划线*/
text-decoration: overline;/*顶部线*/
text-decoration: through-line;/*删除线*/
text-decoration: none;/*无样式*/
5.3.6 text-indent
- 设置文本缩进
text-indent: 2em;/*设置缩进两个默认字体的长度---缩进两格*/
5.4 背景属性
5.4.1 背景颜色
- 设置背景颜色
background-color: #f90;
注意 : 给body设置背景色是整个页面的背景色
元素默认的背景色是透明 transparent 不是#fff
5.4.2 背景图片
- 设置背景图片
background-image: url(图片地址);
使用 img 标签引入图片和背景图片有什么区别 ?
- img 标签是一个元素,图片本身就是元素; 背景图片可以给任何元素添加背景图。
- 如果图片作为网页内容的一部分,建议使用 Img 标签; 如果图片仅仅是修饰,建议使用背景图片。
- img 图片是可以被搜索引擎抓取的。
5.4.3 背景重复
- 设置背景图片是否重复
background-repeat: repeat;/*默认值重复*/
background-repeat: no-repeat;/*不重复*/
background-repeat: x-repeat;/*x轴水平方向重复*/
background-repeat: y-repeat;/*y轴垂直方向重复*/
5.4.4 背景定位
- 设置背景的位置
/*水平方向值:left center right 垂直方向的值: top center bottom*/
background-position: top center;/*第一个值是水平位置 第二个值是垂直位置*/
background-position: left; /* 指定一个值: 只指定一个方向,另一个方向默认为居中*/
background-position: 10px 10px;/*以页面的左上角为坐标原点,往右往下为坐标*/
background-position: 10px; /*设置为具体值时,一个值是水平方向的值,垂直方向center*/
/*百分比设置*/
background-position: 50% 50%:/*百分比调整:
以背景图片左上角为左边原点找到百分比的点
以元素的左上角为坐标原点找到百分比的点
用背景图片的点去和元素的点重合
两个点重合就是背景所在的位置*/
5.4.5 背景附件
设置背景图片的定位方式
background-attachment: scroll / fixed;
scroll: 默认值,设置背景图位置的时候,元素的左上角作为坐标原点
fixed: 设置背景图位置的时候,视口的左上角作为坐标原点
如果滚动条滚动,元素会跟着滚动,但是视口不会跟着动
5.4.6 背景复合属性
把所有的子属性的值写在一起,用一个css属性代替多个属性
background 复合属性对值没有顺序和数量要求
background: #369 url(../images/bg1.jpg) no-repeat 10px 50px scroll;
5.5 鼠标光标
设置鼠标滑动到元素上之后,光标的样式
cursor: pointer;
值:
defalut 默认值
pointer 小手(最常用)
move 移动图标(用于商品的放大镜)
5.6 列表属性
list-style-type 设置列表项符号
值: disc、circle .... none(常用)
list-style-position 设置项目符号在 li 的里面还是外面
值: inside
outside(默认,在外面)
list-style-image 指定一个图片作为列表项的符号
list-style-image: url(图片地址)
list-style 复合属性,把所有的子属性写在里面,没有数量和顺序要求
/* 常见用法 */
list-style: none;
5.7 表格属性
记忆 border-collspase border-spacing
table-layout 设置列宽的计算方式
值:
auto 默认,列宽根据单元里的内容多少计算
fixed 列宽与单元格内内容多少没关系,如果入去设置单元格宽度,所有列等宽
border-collspase 设置单元格边框是否合并
值:
separate 默认,独立
collspase 合并
border-spacing 设置单元格之间的距离(类似于 table 的 cellspacing 属性)
生效的前提:单元格边框不能合并
cpation-side 设置表格标题位置
值:
top 默认,在表格上面
bottom 在表格下面
empty-cells 设置是否隐藏没有内容的单元格1
值:
show 默认,显示
hide 隐藏
注意:
以上五个属性只能设置给 table 元素
常用:
table-layout : 单元格长度
border-collapse : 合并单元格
六、CSS选择器
6.1 后代选择器
/*后代选择器可以同时使用多个选择器进行选择,选择器之间有空格*/
选择器1 选择器2 选择器n{
css语句;
}
6.2 子元素选择器
/*子元素选择器只选择子元素,不选择其他后代元素*/
选择器1>选择器2>选择器3>选择器n{
css语句;
}
6.3 群组选择器(并集选择器)
/*多个选择器同时设置相同样式*/
选择器1,选择器2,选择器3,选择器n{
css语句;
}
6.4 多选择器(交集选择器)
/*同时满足多个选择器的要求*/
选择器1选择器2选择器n{/*选择器之间没有连接符,没有空格*/
css语句;
}
/*可适用范围
类名+类名
标签名+类名
id相关(id唯一 id用交集选择器基本不用)*/
6.5 选择器优先级
!important > 行内式 > id > 类名 > 标签名 > 全局
6.6 伪类选择器
E:link: 超链接未被激活时状态
E:visited: 超链接访问过后状态
E:hover: 鼠标悬停时元素的状态
E:active: 鼠标按住不动时元素的状态
注意:
伪类选择器一起使用时有顺序 , 按照 link visited hover active 顺序 书写
七、盒子模型
7.1 盒子模型的组成
- 盒子内容 : 元素内容和元素后代元素显示的区域
- 内边距 : 内容和边框之间的距离(无内容)
- 边框 :
- 外边距 : 外边框不属于盒子内容的一部分
影响盒子大小的设置 : 盒子内容 内边距 边框
不影响盒子大小的设置 : 外边距
7.2 设置元素可见性
/*元素不再占据页面位置*/
display: none;/*元素隐藏*/
/*元素不可见,但占据页面位置*/
visibility: visible;
hidden;
7.3 块级元素的默认宽度
- 如果元素没有外边距 ,那么块级元素的默认宽度跟随父元素的宽度
- 如果元素有外边距 , 那么内容宽度 = 父元素宽度 - 左右外边距
- 如果元素本身设置了内边距和边框 , 元素的总宽度不变 , 内容宽度会被挤压
八、盒子模型
8.1 盒子模型的内容区域
8.1.1 设置内容区域的宽高CSS属性
div{
/*设置width和height是设置的内容区域的宽高*/
height: 200px;
width: 500px;
/* 设置最大宽度和高度
如果内容宽高小于最大宽高,按照内容的大小显示
如果元素宽高大于最大宽高,按照最大宽高来显示 */
max-width: 500px;
min-width: 500px;
min-height: 60px;/*min-height在布局时最常用*/
}
8.1.2 内容区域的默认宽度
width的默认属性是auto
8.1.3 设置溢出内容的显示方式
/* 设置内容溢出规则 */
/*默认值 超出部分可视*/
overflow: visible;
/*超出部分隐藏-----可以解决margin塌陷*/
overflow: hidden;
/* 滑轮 */
overflow: scroll;
/* 内容溢出时出现滚轮,不溢出时无滚轮 */
overflow: auto;
/* 垂直方向溢出方式*/
overflow-x:hidden;
/* 水平方向溢出方式 */
overflow-y: hidden;
/* 一个方向设置溢出方式,另一个方向为scroll */
8.2 盒子模型的内边距
8.2.1 内边距的属性设置
块级元素:
/* 一个值: 上下左右 */
padding: 40px;
/* 两个值: 上下 左右 */
padding: 40px 40px;
/* 三个值: 上 左右 下*/
padding: 40px 40px 40px;
/* 四个值: 上 右 下 左*/
padding: 40px 40px 40px 40px;
行内块和行内元素:
span{
/* 行内元素设置padding */
padding: 30px 20px;
/* 行内元素设置左右padding正常显示
上下padding会占据其他元素位置 */
}
.item{
/* 行内块元素设置 */
display: inline-block;
padding: 30px 20px;
/* 行内块元素设置内边距正常显示 */
}
8.2.2 内边距规则
padding 的默认值是 0 , 不能设置为负值 .
行内元素设置上下的内边距,无法使盒子的占地位置变大,不建议给行内元素设置上下内边距
8.3 盒子模型的边框
8.3.1 边框相关的CSS属性
/* 边框颜色 */
border-color: skyblue;
/* 边框宽度 */
border-width: 2px;
/* 边框风格 */
/* 点线 */
border-style: dotted;
/* 双实线 */
border-style: double;
/* 实线 */
border-style: solid;
/* 虚线 */
border-style: dashed;
/* border复合属性 */
border: 2px solid pink;
/* 去掉边框 */
border: none;
/* 只设置一个方向的边框 */
border-bottom-color: pink;
border-bottom-style: solid;
border-bottom-width: 2px;
...
/* 一个方向的复合属性 */
border-bottom: 2px solid pink;
/* 设置三个方向的边框---上边框不显示 */
border: 2px solid pink;
border-top: none;
8.3.2 背景位置和边框关系
背景颜色包括边框的背景颜色,但是边框的颜色覆盖了背景颜色
背景图片和边框不重合 背景图片冲内边距边开始覆盖
九、外边距
9.1 设置外边距
/* 设置外边距 */
/* 设置上外边距 */
margin-top: 40px;
/* 设置左外边距 */
margin-left: 40px;
/* 设置上左外边距影响元素本身位置 */
/* 设置下外边距 */
margin-bottom: 40px;
/* 设置右外边距 */
margin-right: 40px;
/* 设置上右外边距影响其他元素位置 */
/* margin复合属性 */
/* 一个值--上下左右 */
margin: 20px;
/* 两个值--上下,左右 */
margin: 20px 20px;
/* 三个值--上 左右 下*/
margin: 20px 20px 20px;
/* 四个值--上 右 下 左*/
margin: 20px 20px 20px 20px;
设置左上外边距影响元素本身位置
设置下右外边距影响其他元素位置
子元素的左面和上面没有其他兄弟元素 , 那么子元素的左上边距就是子元素和父元素的距离
9.2 行内元素设置外边距
行内元素只允许设置左右的外边距,设置上下的外边距不会生效(无意义)。
9.3 margin设置为负值和auto
margin设置为负值 : 左上外边距设置为负值 , 元素往左上移动 右下外边框设置为负值 其他元素往左上移动
margin设置为auto : 上下设置为auto无意义 , 左右设置为auto盒子水平居中
9.4 margin塌陷
什么情况发生margin塌陷
父元素的第一个子元素设置了上外边距, 这个边距会塌陷给父元素
父元素的最后一个子元素设置了下外边距, 这个边距会塌陷给父素
怎样解决margin塌陷
给父元素设置边框 颜色可以设置为transparent但是还是会有边框的宽度
父元素设置overflow属性,值为hidden
9.5 margin合并
相邻兄弟元素的第一个元素设置下外边距,
第二个元素设置上外边距,
这两个边距不会相加,而是取两值中较大的值作为那一个外边距
十、CSS属性的继承
10.1 可以继承的CSS属性
字体属性和文本属性可以继承
10.2 不可以继承的CSS属性
和盒子模型相关的属性都不可以继承
10.3 CSS继承的特殊情况
超链接a元素的color和text-decoration属性,系统默认设置了a元素的color和text-decoration,权重大于继承
直接对元素的样式设置 > 默认的样式设置 > 继承下来的样式设置
十一、行内块元素的特性
11.1 继承的文本属性会对行内和行内块元素起作用
行内元素和行内块元素可以被当做文本进行处理,如果在父元素那里设置文本属性,会对行内元素和行内块元素起作用
如何让一个行内块元素或行内元素水平居中对齐?
给它的父元素设置 text-align:center;
如何让一个行内块元素在父元素中垂直居中?
给父元素设置行高(行高=高度)
给行内块元素设置 vertical-align: middle
如何让一个块级元素在父元素中水平居中对齐?
给元素自己设置左右外边距为 auto
11.2 行内块元素和行内元素左右之间的空白
行内元素或行内块元素之间会出现空白,空白其实是代码中的换行符。
解决方案:
方案一:写代码的时候不换行,也没有空格
方案二:设置父元素字体大小为 0,子元素再单独设置字体大小
11.3 行内元素和行内元素的底部幽灵空白
产生原因
行内元素和行内元素的对齐方式是基线对齐,和底线有一些距离
幽灵空白就是基线和底线的距离
解决方法
/*1.设置底线对齐*/
vertical-align: bottom;
/*2.设置父元素font-size为0 */
父元素--font-size:0;
/*3.把图片设置为块元素*/
display: block;
/*4.设置父元素高度为行内元素和行内块元素高度---不建议使用*/
十二、浮动
12.1 元素浮动后的特点
元素浮动后文本脱离标准文档流,不再按照标准文档流排版
元素浮动后特点:
1.元素不再独占一行
2.元素可以设置宽高
3.元素可以设置内外边距
4.元素的默认宽度由内容决定
5.元素开启BFC
12.2 元素浮动后产生的影响
12.2.1 对后面兄弟元素的影响
元素浮动后,脱离标准流, 后面的兄弟元素会占据浮动元素之前的位置.
解决办法:在浮动元素后面设置css属性 clear: both;
12.2.2 对父元素元素的影响
子元素浮动后,脱离标准流,父元素的高度没有元素撑起,形成高度坍塌.
解决方法:
1) 给父元素设置固定高度
2) 给父元素设置BFC----overflow:hidden
3) 在浮动元素后面添加一个高度为0的块元素设置CSS属性clear:both;
4) 给父元素添加类 clearfix,设置CSS属性
content: "";
display: block;
clear: both;
推荐使用第四种
/*设置清除浮动类.给浮动元素的父元素添加清除浮动类*/
/*有浮动就要清浮动*/
.clearfix{
content: "";
display: block;
clear: both;
}
注意 :
布局的时候兄弟元素要浮动都浮动 , 要么不浮动.
浮动元素都放在一块
特别注意 :
有浮动就得清浮动.
12.3 浮动相关属性
float 设置浮动 值: none(不浮动)、left、right
clear 清除浮动 值: both(使用多)、left、right
十三、定位
13.1 相对定位
①设置相对定位
position: relative;
②相对定位元素的特点
- 相对定位以自己原来的位置为参考 , 使用 left right top bottom来设置定位元素位置
- 相对定位不脱离标准文档流 , 不对其他元素产生任何影响 , 其他元素按照定位元素一开始的位置进行布局
- 相对定位可以和浮动一起设置
13.2 绝对定位
①设置绝对定位
position: absolute;
②绝对定位元素的特点
-
绝对定位是以第一个包含自己的定位包含块为参考, 如果没有定位包含块 , 那么就以根标签html为参照
一般给要进行绝对定位子元素的父元素设置相对定位 , 相对定位的作用就是给绝对定位做参照
-
绝对定位脱离标准文档流 , 对页面其他元素产生影响
-
绝对定位不能浮动一起使用
-
绝对定位的宽高是被内容撑起来的 , 但是可以正常设置宽高和内外边距
③绝对定位在页面布局中的应用
当元素的显示位置需要在其他元素的上面或者位置有重叠,建议显示在上面的元素用绝对定位
通常,子元素设置了绝对定位,父元素设置相对定位
13.3 固定定位
①设置固定定位
position: fixed;
②固定定位元素的特点
- 固定定位是以视口为参考 , 固定定位的元素不因滚轮的滑动而改变位置.
- 固定定位脱离标准文档流 , 对其他元素产生影响
- 固定定位的默认宽高由内容决定 , 也可以正常设置宽高和内外边距.
- 固定定位不能和浮动一起使用.
③固定定位在页面布局中的应用
如果元素不随滚动条的滚动而滚动,该元素应该用固定定位
13.4 定位相关的属性
① position 设置元素的定位形式
position: relative;/*相对定位*/
position: absolate;/*绝对定位*/
position: fixed;/*固定定位*/
② 设置定位元素的位置
left
right
top
bottom
注意 :
四个属性只有定位的元素才能使用,没有定位的元素设置了这4个属性也是无效!
如果定位的元素设置了宽度,left 和 right 不要一起用;
定位的元素如果设置了高度,top 和 bottom 不要一起用。
绝对定位和固定定位元素没有设置宽度,同时设置 left 和 right 都会生效,并会对元素的宽度产生影响;
绝对定位和固定定位元素没有设置高度,同时设置 top 和 bottom 都会生效,并会对元素的高度产生影响。
绝对定位和固定定位元素 , 如果 left 和 right 的值是百分比,参照包含块的宽度;
绝对定位和固定定位元素 , 如果 top 和 bottom 的值是百分比,参照包含块的高度。
13.5 定位元素的层级
定位元素的层级相等,大于未定位元素 后设置的定位元素在页面中会覆盖在之前设置的定位元素上面
z-index会改变定位元素的覆盖层级.--只有定位元素可以设置,其他元素设置无效
默认定位元素的z-index属性是 0
z-index属性可以设置为负值, 设置为负值,层级小于未定位元素,覆盖在未定位元素后面.
z-index的属性值越大,层级越大
十四、精灵(雪碧)图
- CSS sprites 翻译为精灵图或者雪碧图
- 把很多小图放在一张大图上
- 元素把该大图作为背景图片 , 通过background-position调整背景图在元素的位置
- 精灵图优点 : 减少网络请求速度
精灵图在线编辑器 : https://alloyteam.github.io/gopng/
十五、让元素在父元素中水平垂直居中
15.1 行内块和行内元素水平垂直居中
父元素;
/* 行内块元素水平居中 */
text-align: center;
/* 行内块元素垂直居中 */
/* 行高==高度 垂直居中 */
line-height: 600px;
/* 默认是基线对齐要设置bottom; */
vertical-align: bottom;
15.2 块元素水平垂直居中
-
方案一 :
父元素: position: relative; 子元素: position: absolute; left: 50%; top: 50%; /* 不能设置百分比,设置百分比是父元素的宽度的百分比 */ margin-left: -50px; margin-top: -50px;
-
方案二 :
父元素: position: relative; 子元素: /*子元素要有宽度*/ position: absolute; left: 0; right: 0; top: 0; bootom: 0; margin: auto