CSS盒子模型

1. 盒子的概念:

                1.1 页面中的每个标签都可以看作是一个“盒子”,通过盒子的视角更方便的进行布局;

                1.2 浏览器在渲染(显示)网页时,会将网页中的元素看作是一个个的矩形区域,我们也形象的称之为盒子。


2. 盒子模型:

CSS中规定每个盒子分别由:内容区域(content)、内边距区域(padding)、边框区域(border)、外边距区域(margin)构成,这就是盒子模型


3.内容区域的宽(width)和高(height):

        3.1 作用:通过设置width和height,设置盒子内容区域的大小;

        3.2 属性:width/height;

        3.3 属性值:数字+px


4.边框(border):

        4.1 属性名:border(复合属性);

        4.2 属性值 :单个取值的连写,取值之间以空格隔开,如:border:10px solid red;表示10px粗细,实线,红色;

        4.3 线条样式(常用):solid(实线);dashed(虚线);dotted(点线)…                       

        4.4 单方向设置边框:

                4.4.1 场景:只给盒子的某个方向设置边框;

                4.4.2 属性名:border-方位名词;属性值与border的写法一样;

        border属性还可以单一设置边框的粗细(border-width),样式(border-style),颜色(border-color)

        注意:border属性会撑大盒子


5.内边距(padding):

        5.1 属性名:border(复合属性);

        5.2 属性值:数字+px;取值之间用空格隔开;

               注意: 当属性值只有一个的时候表示给四个方向都设置了内边距;当属性值有两个时,第一个值给上下设置内边距,第二个值给左右设置内边距;当属性值有三个时,第一个给上设置内边距,第二个给左右设置内边距,第三个给下设置内边距;

        padding属性和border属性一样会撑大盒子


6.内减模式:

        场景:当盒子被撑大的时候,如果不想盒子被撑大的情况下;

        解决方法:

                1.手动内减:自己计算多余的大小,手动在内容中减去;

                2.自动内减:给盒子设置属性box-sizing:border-box;即可,浏览器会自动计算多余大小,自动在内容中减去;


7.外边距(margin):

        7.1 属性名:margin(复合属性);

        7.2 属性值:与padding属性设置方式一样;


8.清楚默认样式:

        场景:浏览器会默认给部分标签设置默认的margin和padding,但一般在项目开始前需要先清除这些标签的margin和padding,后续自己设置

        比如:body标签默认有margin:8px;p标签默认有上下的margin;ul标签默认有上下的margin和padding-left……

        解决方法:清除默认样式

                方法一:用并集选择器选中所需清除默认样式的标签然后设置margin:0;padding:0;

                方法二:通配符选择器,即

                        *{        margin:0; padding:0        };


9.版心居中:        

        版心:版心指的是网页的有效内容;

        写法:margin:0 auto;


10.外边距问题(合并现象和塌陷现象):

        10.1 合并现象:

                场景:垂直布局的块级元素,上下的margin会合并;

                结果:最终两者的距离为margin的最大值;

                解决方法:避免就好,只给其中的一个盒子设置margin即可

        10.2 塌陷现象:

                场景:相互嵌套的块级元素,子元素的margin-top会作用在父元素上;

                结果:导致父元素一起向下移动;

                解决方法:

                        1.给父元素设置border-top或者padding-top;

                        2.给父元素设置overflow:hidden;

                        3.转换成行内块元素;

                        4.设置浮动


11. 行内元素的内外边距的问题:

        场景:行内元素通过margin和padding改变行内标签的垂直位置,无法生效,行内标签的margin-top和bottom无法生效;

        解决方法:设置line-height;

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值