CSS3~

本文详细讲解了CSS3的新语法,如浏览器私有前缀、长度单位、颜色设置、选择器(包括基本、层级和伪类)等。还深入探讨了盒子模型、背景属性、边框、文本属性、渐变、变换、过渡和动画,以及多列布局和伸缩盒布局的原理与实践。最后介绍了媒体查询和BFC在响应式设计中的应用。
摘要由CSDN通过智能技术生成

1 CSS3基本语法

1.1 css3浏览器私有前缀

-webkit-		chrome,safari
-moz-			firefox
-ms-			IE
-o-				opera

1.2 CSS3新增长度单位

rem				根元素字体大小的倍数
vw				视口宽度的百分比
vh				视口高度的百分比
vmax			视口宽高中的大百分比
vmin			视口宽高中小的百分比

1.3 css3新增颜色设置方式

rgba()			在rgb基础上添加了不透明度,a:opacity
hsl()			h:色相(0~360),s:饱和度(0%~100%),					l:亮度(0%~100%)
hsla()			在hsla基础上添加不透明度
不透明度取值范围0~1,值越大越不透明,1表示完全不透明,0表示完全透明

2 css3选择器

2.1 基本选择器

1 标签名选择器
2 类名选择器
3 id选择器
4 全局选择器
5 交集选择器
6 并集选择器

2.2 层级选择器

1 后代选择器
选择器1 选择器2 {}
2 子元素选择器
选择器1 > 选择器2 {}
3 后面的相邻兄弟元素选择器
选择器1 + 选择器2 {}
4 后面的通用兄弟元素选择器
选择器1 ~ 选择器2 {}

2.3 属性选择器

[attr]				选择包含属性是attr的元素
[attr="val"]		选择attr的值是val的元素
[attr^="val"]		选择attr的值是val开头的元素
[attr$="val"]		选择attr的值是以val结尾的元素
[attr*="val"]		选择attr的值包含val的元素

2.4 伪类选择器

1 动态伪类选择器
:link,:visited,:hover,:active,:focus 获取焦点的状态
2 目标伪类选择器
:target		选择当前锚点指向的元素
3 语言伪类选择器
:lang(语言)		
4 UI元素伪类选择器
:disabled			选择不可用的表单控件
:enabled			选择可用的表单控件
:checked			选择选中状态下的单选框,复选框,下拉选项
5 结构伪类选择器
:first-child		兄弟元素中第一个
:last-child			兄弟元素中最后一个
:nth-child(n)		兄弟元素中第n个
:nth-last-child		兄弟元素中倒数第n个
:only-chlid()		没有兄弟的元素

:first-of-type		同标签名兄弟元素中第一个
:last-of-type		同标签名兄弟元素中最后一个
:nth-of-type(n)		同标签名兄弟元素中第n个
:nth-last-of-type(n)同标签名兄弟元素中倒数第n个
:only-of-type		没有同标签名兄弟元素

:root				根元素
:empty				没有后代元素也没有文本内容的元素
6 否定伪类选择器
:not(选择器)

2.5 伪元素选择器

::after				动态的创建最后一个子元素
::before			动态的在最前面插入一个子元素
::first-line		选择到元素中的第一行文字
::first-letter		选择到元素中的第一个文字
::placeholder		设置输入框placeholder的样式
::selection			设置被选中文字的演示
1. ::before和 ::after 必须设置content属性
2. after,before,first-line,first-letter 使用单冒号也可以

2.6 选择器的优先级(权重)

id选择器 > 类选择器,伪类选择器,属性选择器 > 标签名选择器,伪元素选择器 > 全局选择器
1.行内式大于所有选器
2.!important可以无限提高该样式的优先级

2 CSS3新增盒子模型相关样式

1 box-sizing属性

该属性用于设置盒子模块尺寸的解析反式

content-box			默认值,width和height设置的是内容的尺寸
border-box			width和height设置的是盒子总的尺寸

2 盒子阴影 box-shadow

该属性用于设置盒子的阴影,属性值可以设置阴影偏移位置,阴影颜色,阴影模糊,内阴影

/* */
box-shadow:阴影水平偏移位置 阴影垂直偏移位置 阴影的模糊值 阴影外延
/*内阴影*/
box-shadow:inset ...
/*给一个元素设置多个阴影*/
box-shadow:xx,xx,xx;(各阴影用逗号分开)

3 不透明度 opacity

该属性可以设置元素的不透明度,值是0~1,数字越大越不透明,0表示完全透明,1表示完全不透明

3 css3 新增背景属性

3.1 新增属性

1 background-origin

该属性设置背景图像位置的参考原点

padding-box			默认值,原点在内边距上
content-box			原点在内容区域
border-box			原点在边框上
2 background-clip

该属性设置哪些区域背景图像可见

border-box			默认值,边框以及以内背景图像可见
padding-box			只有内边距以及以内背景图像可见
content-box			只有内容区域背景图像可见
text				只有文字上背景图像可见,需要加私有前缀
-webkit-background-clip:text
3 background-size

设置背景图像尺寸,值可以是长度或关键字

1.使用两个长度,分别设置图像宽高
2.如果使用一个长度,设置图像宽,高度根据比例自动计算
3.使用百分比,宽高参照父元素宽高
4.contain:图像自适应元素,优先保证图像全部显示在元素上
5.cover:图像自适应元素,优先保证元素每个区域都有背景图像

3.2 background复合属性

1.origin和clip的值是一样,若复合属性中只有一个关键字,则同时设置origin和clip;若有两个关键字,第一个是origin,第二个是clip
2.size和position都可以设置1到2个长度,复合属性中使用/进行区分,position/size
background:url(../images/xx.jpg) 0 0/250px 250px content-box padding-box 

3.3 多背景图

css3可以给元素设置多个背景图像

background:url(../images/xx.png) no-repeat left top,
		url(../images/xx.png) no-repeat right top,
		url(../images/xx.png) no-repeat left bottom,
	url(../images/xx.png) no-repeat right bottom;

多个图像位置冲突时,前面的图像显示在上面

4 css3新增边框属性

4.1 边框圆角

css属性名含义
border-radius多个角
border-top-left-radius左上角1~2个长度
border-top-right-radius右上角1~2个长度
border-bottom-left-radius左下角1~2个长度
border-bottom-right-radius右下角1~2个长度

单个圆角属性设置规则

border-bottom-right-radius:xxpx;
border-bottom-right-radius:xxpx xxpx;
border-bottom-right-radius:xx%;
1.设置一个长度,正圆圆角
2.两个长度分别是x半径和y半径,椭圆圆角
3.使用百分比,x半径参照元素宽度,y半径参照元素高度

复合属性使用:

/* 4个角 */
border-radius:xxpx;
/* 左上和右下  左下和右上*/
border-radius:50px 100px;
/*左上 左下和右上 右下*/
border-radius:50px 100px 150px;
/*左上 右上 右下 左下*/
border-radius:50px 100px 150px 20px;

/* /左边是x半径, /右边是y半径 */
border-radius:50px/100px;
/* x半径和y半径各自按照各自规则*/
border-radius:50px 80px/100px 150px 40px 20px;

4.2 外轮廓

css属性名含义
outline同时设置style,width,color多个值
outline-style外轮廓风格none 无风格
solid 实线
dashed 虚线
dotted 顶线
double 双实线
outline-width外轮廓宽度长度
outline-color外轮廓颜色颜色
outline-offset外轮廓与边框的距离
不是outline的子属性
长度,可以是负值

外轮廓与边框的区别:

1.边框是盒子的一部分,影响盒子的大小;外轮廓在文档流中不占位置
2.外轮廓默认在边框外面, 可以调整位置,如果与边框位置重合,会显示在边框上面

5 css3 新增文本属性

css属性名含义
text-align-last设置最后一行文字的水平对齐方式start:开始方向,默认值
end:结束方向
left:左
right:右
center:居中
justify:两端对齐
text-decoration-line文本修饰线的形式none:没有修饰线默认值
underline:下划线
overline:上划线
line-thougth:删除线
text-decoration-style文本修饰线的风格solid:实线,默认值
dashed:虚线
dotted:点线
double:双实线
wavy:波浪线
text-decoration-color文本修饰线的颜色颜色
text-decoration文本修饰线复合属性多个值
white-space设置文本换行方式normal:默认值
pre:原样显示
pre-wrap:pre+自动换行
pre-line:normal+识别换行符
nowrap:强制所有文本在一行显示
text-overflow设置文本溢出方式clip:溢出部分裁剪
ellipsis:显示省略号
text-shadow设置文本阴影偏移位置,模糊值和颜色

单行长文本显示省略号:

使用text-overflow,需要overflow和white-space一起使用:

overflow: hidden;
white-space: nowrap;
text-overflow:ellipsis;

text-shadow 文本阴影设置规则:

1.最多设置3个长度,水平偏移位置,垂直偏移位置,模糊值
2.支持多阴影

6 css渐变

创建出来的渐变被认为是图像,需要与使用图像的css属性配合,如background-image,list-style-image

6.1 线性渐变

linear-gradient(方向,颜色1 位置,颜色2 位置...)

设置方向:

1.使用关键字:to left,to top,to right,to bottom...
2.使用角度:0deg~360deg,0 deg是从下到上,90deg是从左到右,180deg是从上到下

设置颜色的位置:

1.使用长度设置颜色的位置,可类比为坐标
2.如果不设置每个颜色位置,平均分布

6.2 径向渐变

radial-grdient(半径 at 圆心坐标,颜色1 位置, 颜色2 位置...)

设置圆心位置:

1.默认在元素的正中心
2.使用两个长度设置圆心坐标

设置半径:

1.默认半径从圆心到元素的边界
2.使用一个长度设置半径,正圆
3.使用两个长度设置半径分别表示x半径和y半径,椭圆

设置颜色位置:

1.使用长度设置颜色的位置
2.如果不设置每个颜色的位置,平均分布

6.3 重复渐变

repeating-linear-gradient()			重复线性渐变
repeating-radial-gradient()			重复径向渐变

7 变换 transform

7 .1 变换相关css属性

css属性名含义
transform设置变换一个或多个方法
transform-origin设置变换原点使用长度或者关键字设置坐标
transform-style开启3d空间flat:默认值,子元素在平时。
preserve-3d:子元素在3d空间
perspective景深(观察者与屏幕距离)长度
perspective-origin观察者位置(原点)使用长度或者关键字设置坐标
backface-visibility元素背面面向用户是否可见visible:可见,默认值
hidden:不可见

注意

1.可以给元素设置多种变换,一个transform可以设置多个变换方式,使用空格分隔。
2.设置多种变换,变换方法的顺序对于最终显示效果有影响。
3.行内元素设置变换无效。
4.需要设置给变换的元素属性:transform,transform-origin,backface-visibility
	需要设置给变换(3d)元素的父元素:transform-style,perspective,perspective-origin

7.2 2d变换的方法

1 位移translate方法
translateX()		设置水平方向位移
translateY()		设置垂直方向位移
translate()			同时设置水平和垂直方向位移,一个长度默认水平位移
- 百分比作为长度,水平位移参照元素本身宽度,垂直位移参照元素本身高度
2 缩放scale方法
scaleX()			设置水平方向缩放
scaleY()			设置垂直方向缩放
scale()				设置整体缩放,一个值默认为水平和垂直都按照该比例
-缩放比例为负数,会造成元素翻转
3 旋转rotate方法
rotate()			设置旋转角度,沿元素中心旋转
-设置角度,单位是deg

7.3 3d变换的方法

1 3d位移
translateZ()		设置沿z轴位移,值越大元素越大
translate3D()		同时设置沿x轴,y轴,z轴,需设置3个长度
2 3d缩放
scaleZ()			沿z轴缩放,无效果
scale3D()			同时设置沿x轴,y轴,z轴,需设置3个值
3 3D旋转
rotateX()			沿x轴旋转,指定角度
rotateY()			沿y轴旋转,指定角度
rotateZ()			沿z轴旋转,指定角度;等同于totate()2D旋转
rotate3D()			设置沿多个轴旋转;需要4个参数,前3个表示对应轴转或者不转,第4个设置角度
transform: rotate3D(1,1,0,45deg);

8 过渡transition

8.1 过渡相关css属性

css属性名含义
transition-property设置哪些属性参与过渡all:默认值,所有能过渡的且发生了改变的属性过渡
指定具体属性,多个属性用逗号分隔
transition-duration设置过渡持续时间时间,单位是s,ms
transition-delay设置过渡延迟时间时间,单位是s,ms
transition-timing-function设置过渡的运动轨迹ease:平滑,默认值
linear:匀速运动
ease-in:加速运动
ease-out:减速运动
ease-in-out:先加速再减速
cubic-bezier(n1,n2,n3,n4):塞尔曲线
steps():分步运动
step-start:等同于steps(1,start)
step-end:等同于steps(1,end)
transition复合属性

可以过渡的属性

1.属性值是长度,如width,height,padding,margin,left,top,border-radius
2.属性值是颜色,如background-color,color
3.属性是纯数字,如opacity,font-weight
4.变换属性transform

要在样式变化之前,设置好过渡相关属性

8.2 触发过渡条件

1.动态伪类选择器 :hover,:active,:focus
2.js事件
3.媒体查询@media

9 动画 animation

9.1 关键帧

@keyframes 关键帧名字{
    from{
        
    }
    to{
        
    }
}
@keyframes 关键帧名字{
    from{
        
    }
    40%{
        
    }
    80%{
        
    }
    to{
        
    }
}
@keyframes关键帧名字{
    100%{
        
    }
}

元素和关键帧之间是多对多关系:

1.一个元素可以设置多个关键帧
2.一个关键帧也可以设置给多个元素

9.2 动画相关css属性

css属性名含义
animation-name设置关键帧关键帧名字,多个使用逗号分隔
animation-duration设置动画持续时间时间,单位是s,ms
animation-delay设置动画延迟时间时间,单位是s,ms
animation-timing-function设置动画运动轨迹ease:平滑。默认值
linear:匀速运动
ease-in:加速运动
ease-out:减速运动
ease-in-out:先加速再减速
cubic-bezier(n1,n2,n3,n4):塞尔曲线
steps():分步运动
step-start:等同于steps(1,start)
step-end:等同于steps(1,end)
animation-iteration-count设置动画运行的次数数字:指定次数,默认值是1
infinite:无数次
animation-direction设置动画的运动方向normal:正常方向,默认值
reverse:反方向
alternate:交替运动
alternate-reverse:反向交替运动
animation-play-state设置动画运动状态running:默认值,运动中
paused:暂停
animation-fill-mode设置动画之外的状态none:动画之外默认样式,默认值
forwards:设置动画结束之后处在结束帧状态,
backwards:设置动画开始之前处在起始帧状态
both:同时forwards和backwards
animation动画复合属性

10 多列布局

1 设置给包裹元素的css属性

css属性名含义
column-count设置列数
column-width设置列宽
columns同时设置列数和列宽
column-rule-style列分隔线风格none,solid,dashed,dotted,double
column-rule-width列分隔线宽度
column-rule-color列分割线颜色
column-rule列分割线复合属性
column-gap设置列间距

column-count和column-width:

1.二者都可实现多列布局
2.如果同时设置列宽和列数,按照最终列数较少的进行布局

2 设置给子元素的css属性

css属性名含义
column-span设置是否跨列none:不跨列,默认值
all:跨所有的列
-webkit-column-before设置元素前面断列方式auto:自动,默认值
always:前面总是开启新列
avoid:前面避免开启新列
-webkit-column-after设置元素后面的断列方式auto:自动,默认值
always:后面总是开启新列
avoid:后面避免开启新列
-webkit-column-inside设置元素内部的断列方式auto:自动,默认值
avoid:后面避免内部断列

11 伸缩盒布局

11.1 伸缩容器和伸缩项目

伸缩容器:

display:flex/inline-flex;
-特点:
1.flex是块级元素的特点
2.inline-flex是行内块元素的特点

**伸缩项目:**伸缩容器的子元素自动变为伸缩项目。

1.只有伸缩容器的子元素才能变为伸缩项目,其他后代元素不可以
2.一个元素既可以是伸缩项目,也可以是伸缩容器。
3.不论任何显示模式的元素,变为伸缩项目就遵循伸缩项目的特点
4.伸缩项目会水平排列
5.伸缩项目默认宽度被内容撑开,可以设置宽高,内外边距,不会有外边距塌陷合并

11.2 设置主轴方向和换行方式

1 设置主轴方向

**主轴:**伸缩项目会沿着主轴进行排列,默认主轴方向是水平从左到右

**侧轴:**侧轴永远与主轴垂直,主轴方向改变,侧轴方向也改变。

给伸缩容器设置css属性flex-direction可以修改主轴方向。

row				水平从左到右,默认值
row-reverse		水平从右到左
column			垂直从上到下
column-reverse	垂直从下到上
2 设置换行方式

给伸缩容器设置css属性flex-wrap,可以修改伸缩项目的换行方式,属性如下

nowrap			强制不换行,默认值
wrap			自动换行
wrap-reverse	自动换行且翻转
3 同时设置主轴方向和换行方式

flex-flow是flex-direction和flex-wrap组成的复合属性,可以同时设置主轴方向和换行方式

11.3 设置伸缩项目在主轴上对齐方式

给伸缩容器设置css属性justify-content可以设置伸缩项目在主轴上的对齐方式

flex-start				靠主轴起始方向
flex-end				靠主轴结束方向
center					居中
space-between			两端没有间距,中间有间距,两端对齐
space-around			两端的间距是中间间距的一半
space-evenly			两端的间距与中间间距一致

11.4 设置伸缩项目在侧轴上的对齐方式

1 一条主轴线(伸缩项目在主轴上不换行)

给伸缩容器设置css属性align-items可以设置伸缩项目在侧轴上的对齐方式

stretch				伸缩项目如果没有设置侧轴上的长度,拉伸,默认值
flex-start			靠侧轴起始方向对齐
flex-end			靠侧轴结束方向对齐
center				居中对齐
baseline			基线对齐
2 多条主轴线(伸缩项目在主轴上发生换行)

给伸缩容器设置css属性align-content可以设置伸缩项目在侧轴上对齐方式(发生换行的前提下)

stretch				伸缩项目如果没有设置侧轴上的长度,拉伸,默认值
flex-start			靠侧轴起始方向
flex-end			靠侧轴结束方向
center				居中
space-between		两端没有间距,中间有间距,两端对齐
space-around		两端的间距是中间间距的一半
space-evenly		两端的间距与中间间距一致

11.5 伸缩项目的伸缩性

伸缩项目在主轴上可以进行伸缩

1 伸缩项目在主轴上的基准长度flex-basis
1.flex-basis的值是个长度,表示伸缩项目在主轴上的长度
2.如果没有设置flex-basis或设置为auto(默认值),伸缩项目在主轴上的长度按照与主轴对应的width或者height
3.如果flex-basis,width,height都没设置,被内容撑开

flex-basis > width/height >默认大小
2 扩展比率flex-grow

伸缩项目扩展的前提

1.当伸缩容器在主轴方向有富余空间
2.伸缩项目的扩展比例flex-grow不为0,flex-grow的默认值是0

伸缩项目扩展的规则:

伸缩项目根据自己的扩展比率,瓜分伸缩容器的富余空间
3 收缩比率flex-shrink

伸缩项目收缩的前提:

1.伸缩容器在主轴上的长度小于伸缩项目在主轴上的长度和
2.伸缩项目的收缩比率flex-shrink不为0,flex-shrink的默认值是1

伸缩项目收缩的规则:

伸缩项目进行收缩,不但要考虑各自收缩比率flex-shrink,还要考虑各自在主轴上的长度
伸缩项目不会无限收缩,当伸缩项目中只剩下内容,不会挤压内容
4 flex复合属性

同时设置扩展比例,收缩比例,基准长度

flex:grow shrink basis;
flex:1;	/*flex:1 1 0*/
flex:auto;/*flex:1 1 auto*/
flex:none;/*flex:0 0 auto*/
flex:0 auto;/*flex:0 1 auto 默认值*/

11.6 伸缩项目排序

给伸缩项目设置css属性order可以调整伸缩项目的排序,值是一个数字

数字越大排序越靠后,数字越小排序越靠前,可以是负数

11.7 单独设置伸缩项目在侧轴上的对齐方式

给伸缩项目设置css属性align-self可以单独设置该伸缩项目在侧轴上的对齐方式

auto				按照伸缩容器中的align-items设置,默认值
stretch				伸缩项目如果没有设置侧轴上的长度,拉伸
flex-start			靠侧轴起始方向对齐
flex-end			靠侧轴结束方向对齐
center				居中对齐
baseline			基线对齐

11.8 伸缩盒相关css属性

1 给伸缩容器设置属性
css属性含义
display设置伸缩容器flex:块级伸缩容器
inline-flex:行内伸缩容器
flex-direction设置主轴方向row:水平从左到右,默认值
row-reverse:水平从右到左
column:垂直从上到下
column-reverse:垂直从下到上
flex-wrap设置换行方式nowrap:不换行,默认值
wrap:自动换行
wrap-reverse:自动换行且翻转
flex-flow同时设置主轴方向和换行方式direction和wrap的值
justify-content设置在主轴上的对齐方式flex-start:靠主轴起始方向,默认值
flex-end:靠主轴结束方向
center:居中
space-between:两端对齐,两端无间距,中间有间距
space-around:两端间距是中间间距的一半
space-evenly:两端间距与中间距相等
align-items设置在侧轴上的对齐方式(一条主轴线,不换行)stretch:侧轴拉伸,默认值
flex-start:侧轴起始方向
flex-end:侧轴结束方向
center:居中
baseline:基线对齐
align-content设置在侧轴上的对齐方式(多条主轴线,发生换行)stretch:侧轴拉伸,默认值
flex-start:侧轴起始方向
flex-end:侧轴结束方向
center:居中
space-between:两端对齐,两端无间距,中间有间距
space-around:两端间距是中间间距的一半
space-evenly:两端间距与中间距相等
2 设置给伸缩项目的属性
css属性名含义
flex-basis设置伸缩项目在主轴上的基准长度auto:默认值
flex-grow伸缩项目的扩展比例数字,默认值是0
flex-shrink伸缩项目的收缩比率数字,默认值是1
flex同时设置basis,grow,shrink
order伸缩项目排序数字
align-self单独设置伸缩项目侧轴对齐方式auto:根据伸缩容器的设置,默认值
stretch:侧轴拉伸,默认值
flex-start:侧轴起始方向
flex-end:侧轴结束方向。
center:居中
baseline:基线对齐

12 媒体查询

12.1 视口 viewport

视口:

1.视口就是页面的可视区域
2.视口是根元素的包含块

完美视口:

1.设备屏幕宽度与视口宽度保存一致,就是完美视口
2.PC端默认就是完美视口,移动端默认不是完美视口
--设置完美视口:
<meta name="viewport" content="width=device-width,initial-scale=1.0">

12.2 媒体查询语法

1 媒体类型
all				默认值,所有的设置
screen			屏幕
print			打印设置
@media print{
    h1{
        css样式
    }
}
2 媒体特性
width			设置固定视口宽度
max-width		设置最大视口宽度,小于等于
min-width		设置最小视口宽度,大于等于
device-width	设备宽度
max-device-width	最大设备宽度
min-device-width	最小宽度

完美视口下,视口宽度=设备宽度

运算符:

and				两个媒体查询条件同时生效,并且
,				多个媒体查询条件只要满足一个即可,或者
only			只能用于媒体查询,肯定
not				只能用于媒体查询,否定
 /* 视口宽度大于等于 600 并且小于等于 900 */ 
@media (min-width: 600px) and (max-width: 900px) {
    body {
        background-color: #333;
    }
    h1 {
        color: #fff;
    }
}
/* 视口宽度大于等于 1100 或者小于等于 400 */
@media (min-width: 1100px), (max-width: 400px) {
    body {
        background-color: #f00;
    }
    h1 {
        color: #00f;
    }
}

12.3 媒体查询在css中使用

1 与其他css代码写在一起
@media 媒体查询{}
2 配合link标签
<link rel="stylesheet" href="style-screen.css" media="screen">

12.4 响应式布局

1 阈值(断点)

方案一: 640px 1024px

**方案二:**768px 992px 1200px

2 移动优先方案(媒体查询的设置)
1.默认写最小屏幕的样式
2.以min-width作为媒体查询条件,逐次增大

13 BFC

BFC:跨级格式上下文

创建BFC的方式:

  • 根元素
  • 浮动元素
  • 绝对定位或固定定位元素
  • 行内块元素
  • 表格单元格(th,td)表格行(tr)表格标题(caption),table,thead,tbody,tfoot
  • overflow的值不为visible的块元素
  • 伸缩项目
  • 多列容器
  • colum-span为all的元素始终会创建一个新的BFC,即使该元素没有包裹在一个多列容器中

创建BFC可以解决的问题

1 清除子元素浮动的影响

给浮动元素的父元素创建BFC,清除掉子元素浮动的影响

2 解决外边距塌陷

给父元素创建BFC,第一个和最后一个子元素的外边距不会塌陷

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值