您好,欢迎来到刀刀网。
搜索
您的当前位置:首页CSS盒子模型

CSS盒子模型

来源:刀刀网

盒子模型

网页布局过程:

网页布局的核心本质:就是利用CSS摆盒子

所谓 盒子模型:就是把HTML页面中的布局元素看作是一个矩形的盒子,也就是一个盛装内容的容器

CSS盒子模型本质上是一个盒子,封装周围的HTML元素,它包括:边框、外边距、内边距、和实际内容

border(边框) content(内容) padding(内边距) margin(外边距)

 

  1. 边框(border)

CSS边框属性允许你指定一个元素边框的样式和颜色

源代码

 

border可以设置元素的边框,边框有三部分组成边框宽度(粗细) 边框样式 边框颜色

border-width: ;                   定义边框粗细,单位是px

border-style: ;                    定义边框的样式,一般有solid(实线边框)dashed(虚线边框)dotted(点线边框)

border-color: ;                    定义边框颜色

1. 1、圆角边框radius

源代码

 

border-radius: length;                   border-radius属性用于设置元素的外边框圆角,

原理:椭圆与边框的交集形成圆角效果

  1. 参数值可以为数值百分比的形式
  2. 如果是正方形,想要设置为一个圆,把数值修改为高度或宽度的一半即可,或者直接写为50%
  3. 如果是个矩形设置为高度的一半就可以做圆角矩形
  4. 该属性是一个简写属性,可以跟四个值,分别代表左上角右上角右下角左下角,顺时针来给参数,给两个值就是对角线来给参数,三个值就是左上角右上角+左下角右下角来给参数
  5. 分开写:border-top-left-radiusborder-top-right-radiusborder-bottom-right-radiusborder-buttom-left-radius先上下,后写左右

注意:边框会影响盒子实际大小

边框会额外增加盒子的实际大小,因此我们有两种方案解决

  1. 测量盒子大小的时候,不量边框
  2. 如果测量的时候包含了边框,则需要width/height减去边框宽度

1. 2、边框(border)复合写法

源代码

 

边框描写:

border:  border-width   border-style   border-color;    没有顺序

边框分开写:

border-top: 边框粗细 边框样式 边框颜色 ;                          border-top设定上边框

border-bottom: 边框粗细 边框样式 边框颜色 ;                      border-bottom设定下边框

border-left: 边框粗细 边框样式 边框颜色 ;                          border-left设定左边框

border-right: 边框粗细 边框样式 边框颜色 ;                         border-right设定右边框

1.3、表格的细线边框

源代码

 

 

border-collapse: collapse;                       border-collapse属性控制浏览器绘制表格边框的方式,它控制相邻单元格边框,collapse是合并的意思,border-collapse表示相邻边框合并在一起

  1. 内边距(padding)

padding属性用于设置内边距,既边框与内容之间的距离

源代码

 

 

padding-top: 边框粗细 边框样式 边框颜色 ;                          padding-top设定上内边距

padding-bottom: 边框粗细 边框样式 边框颜色 ;                      padding-bottom设定下内边距

padding-left: 边框粗细 边框样式 边框颜色 ;                          padding-left设定左内边距

padding-right: 边框粗细 边框样式 边框颜色 ;                         padding-right设定右内边距

padding复合属性

源代码

 

 

 

 

padding属性(简写属性)可以有一到四个值

padding: 5px;                             1个值,代表上下左右都有5像素内边距

padding: 5px 10px;                        2个值,代表上下内边距是5像素,左右内边距是10像素

padding: 5px 10px 20px;                   3个值,代表上内边距5像素,左右内边距10像素,下内边距20像素

padding: 5px 10px 20px 30px;              4个值,上边距5像素,右边距10像素,下边距20像素,左边距30像素,顺时针

注意:内边距会影响盒子实际大小

内容和边框有了距离,添加了内边距,paddin影响了盒子实际大小,也就是说,如果盒子已经有了宽度和高度,此时再指定内边距,会撑大盒子。所以,如果保证盒子和效果图大小保持一致,则让width/height减去多出来的内边距大小即可

  1. 外边距(margin)

margin属性用于设置外边距,既控制盒子和盒子之间的距离

源代码

 

 

 

 

 

margin-top: 边框粗细 边框样式 边框颜色 ;                          margin-top设定上外边距

margin-bottom: 边框粗细 边框样式 边框颜色 ;                      margin-bottom设定下外边距

margin-left: 边框粗细 边框样式 边框颜色 ;                          margin-left设定左外边距

margin-right: 边框粗细 边框样式 边框颜色 ;                         margin-right设定右外边距

margin复合属性

源代码

 

 

 

 

margin属性(简写属性)可以有一到四个值

margin: 5px;                             1个值,代表上下左右都有5像素外边距

margin: 5px 10px;                        2个值,代表上下外边距是5像素,左右外边距是10像素

nargin: 5px 10px 20px;                   3个值,代表上外边距5像素,左右外边距10像素,下外边距20像素

margin: 5px 10px 20px 30px;              4个值,上边距5像素,右边距10像素,下边距20像素,左边距30像素,顺时针

外边距可以让块级盒子水平居中,但是必须满足两个条件

  1. 盒子必须指定了宽度(width)
  2. 盒子左右的外边距都设置为auto
  3. 常见的三种写法:(margin-right: auto; margin-left: auto;)(margin: auto;)(margin: 0 auto;)

注意:以上方法是让块级元素水平居中,行内元素或者行内块元素水平居中给其父元素添加text-align: center;即可

4、盒子模型box-sizing属性

CSS3中可通过box-sizing来指定盒模型

源代码

 

 

 

1 box-sizing: content-box;                盒子大小为width+padding+border (默认的)

2 box-sizing: border-box;                 盒子大小为width

如果盒子模型我们改为了box-sizing:content-box ,那paddingborder就不会撑大盒子了(前提paddingborder不会超过width宽度)

外边距合并

使用margin定义块元素的垂直外边距时,可能会出现外边距的合并

  1. 相邻块元素垂直外边距的合并

当上下相邻的两个块元素(兄弟关系)相遇时,如果上面的元素有下外边距margin-bottom,下面的元素有上外边距margin-top,则他们之间的垂直间距不是margin-bottommargin-top之和,取两个值中的较大者这种现象被称为相邻块元素垂直外边距的合并

解决方案:

尽量只给一个盒子添加margin

    2.嵌套块元素垂直外边距的塌陷

对于两个嵌套关系(父子关系)的元素,父元素有上外边距同时子元素也有上外边距,此时父元素会塌陷较大的外边距值

 

解决方案:

  1. 可以为父元素定义上边框
  2. 可以为父元素定义上内边距
  3. 可以为父元素添加overflow:hidden;

清除内外边距

网页元素很多都带有默认的内外边距,而且不同浏览器默认的也不一致,因此我们在布局前,首先要清除下网页元素的内外边距

* {padding: 0; margin: 0;} = {清除内边距;清除外边距;}

注意:行内元素为了照顾兼容性,尽量只设置左右内外边距,不要设置上下内外边距。但是转换为块级和行内块元素就可以了

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务