css小结02

发布时间 2023-09-22 15:23:29作者: RepublicLine

CSS三种显示模式可以互相转化

CSS中元素分为

块元素(独占一行),行内元素(不独占一行),行内块元素(在一行内显示,可以设置宽高)。

三种元素之间可以互相转化

<!-- 通过display属性来互相转化 -->
<!-- 如下 
	通过给display 属性赋不同的值
		inline-block 转为行内块
		block  转为块元素
		inline  转为行内元素

-->
    <style>
        选择器{
            displya: inline-block
        }
    </style>

盒子模型的组成

盒子模型的组成

内容 内边距 边框 外边距组成

img

border设置盒子的边框属性 四个方向top right bottom left

style:solid(实线) dotted(点线) dshed(虚线) double(双实线)

属性连写:

​ border-方向:width style color

表示四个方向的统一设置:

​ border:width style color

padding内边距

padding指当前盒子内的内容到盒子边的距离:

分为四个方向

​ padding-left 左内边距

​ padding-right 右内边距

​ padding-top 上内边距

​ padding-bottom 下内边距

pdding连写

​ padding: 四个值 上右下左

​ padding:三个值 上 左右 下

​ padding:两个值 上下 左右

​ padding:一个值 上下左右

padding会把盒子撑大的问题

​ 盒子的大小等于 盒子本身的宽高 + 内边距 + 边框

​ 盒子最终的宽度=盒子自身设置的宽度+左右padding+左右border

​ 盒子最终的高度=盒子自身设置的高度+上下padding+上下border

继承的宽度设置左右padding时的问题:

​ 当小盒子没有设置宽度时会默认继承大盒子的宽度

​ 当设置padding时 如果padding*2 < 继承获得的宽度 那么小盒子的宽度将会显示为继承的宽度,反之则会显示为padding设置的宽度

解决padding会撑大盒子的问题

​ 盒子模型分为两种:谷歌盒子模型 以及 IE盒子模型

​ 谷歌盒子模型:

​ 盒子最终的宽高=盒子自身的宽高+padding+border

​ IE盒子模型:

​ 盒子最终的宽高=盒子设置的宽高 padding和border系统自动减去

​ box-sizing:content-box(谷歌盒子模型)/border-box(IE盒子模型)

margin外边距

​ margin外边距分为四个方向

​ margin-left margin-right margin-top margin-bottom

​ margin连写

​ margin:四个值 上右下左

​ margin:三个值 上 左右 下

​ margin:两个值 上下 左右

​ margin:一个值 上下左右

margin的特殊值 auto 表示外间距自适应,把剩余空间分配给当前外边距空间,只针对横向外边距,上下外边距不生效。

margin:0 auto; 表示块级元素横向居中

margin合并边框

当边框重叠时 设置margin-方向: -px; 即可消除重复的边框

margin塌陷问题

当子元素设置 margin-top时会带着父元素一起下沉

解决方案:1.给父元素加上透明的上边框 transparent 表示透明色

​ 2.块级格式化上下文(BFC)方式,清除异常效果。overflow:hidden

行内元素上下margin不生效

对行内元素设置margin时 设置top 和 bottom不生效