盒子模型总结

目录

一、定义

1、内容区  (content): 元素中所有的

2、边框(border) :元素设置边框

3、内边距(padding):指的是盒子的内容和边框之间的距离

4、外边距(margin):决定是当前盒子和其他盒子的距离 (盒子可见框大小)       

二、布局

1、水平布局   

2、垂直布局

三、样式

1、行内元素的盒子

2、默认样式的去除

3、轮廓与圆角

四、box-sizing拯救布局


一、定义

盒子模型 :盒模型、框模型(box model)

       css将页面汇总所有的元素的都设置为一个个矩形的盒子。将元素设置为矩形的盒子后,对页面的布局就变成了将不同的盒子摆放到不同的位置,每一个盒子,都有以下几个部分。

    内容区(content):元素中所有的

    边框(border):元素设置边框

    内边距(padding):指的是盒子的内容和边框之间的距离

    外边距(margin):决定是盒子和盒子的距离 (盒子可见框大小)

1、内容区  (content): 元素中所有的

       使用width设置盒子内容区的宽度

       使用height设置内容的高度

        width和height只是决定内容区的大小,而不是盒子的整个大小

2、边框(border) :元素设置边框

             边框属于盒子的边缘,边框里面是内容,出了边框就是盒子的外部。

             边框的大小会影响我们盒子的大小

        设置边框必须指定三个样式:

            border-width:边框的宽度

            border-color:边框的颜色

            border-style:边框的样式

     (1)border-width:设置边框的宽度(粗细程度)。 

说明
thin设置细的边框
medium默认值,设置中等的边框,一般的浏览器将其解析为2px
thick设置粗的边框
像素值具体的数值,用于自定义边框的宽度

        可以分别设置四个边框的宽度

          如果设置四个值  上 右 下 左

                 设置三个值   上  左右  下

                 设置两个值   上下  左右

                 设置一个值   上下左右

          border-xxxx-width  可以设置某一边框的宽度

     (2) border-color:浏览器默认的是黑色。和边框宽度,样式一样,可分别设置。

           border-xxxx-color  可以设置某一边框的颜色  

     (3)border-style:设置边框的样式  设置边框的必选项(必须设置)

           可选值: none  默认值 没有边框

                           solid  实线

                           dashed 虚线

                           double 双线

                           dotted  点线  

            border-xxxx-style  可以设置某一边框的样式

  注意:border 的简写方式  参数:width  color  style  顺序都可以

             可以分别设置四边边框,border-left等。

3、内边距(padding):指的是盒子的内容和边框之间的距离

     一共有四个方向:padding-top

                                  padding-right

                                  padding-left

                                  padding-bottom

           eg:

                padding: 10px 20px 30px 40px;

                                上右下左

                                规则和boder-width一样

     注意:内边距会影响盒子的可见框的大小,元素的背景色会延伸到内边距。

                盒子的大小是由内容区,内边距和边框共同决定。

4、外边距(margin):决定是当前盒子和其他盒子的距离 (盒子可见框大小)       

       外边距不会影响盒子可见框的大小,而是影响的是盒子的位置

  盒子有四个方向的外边距

      margin-top     上边距,可设置正值,元素会向下移动; 也可以设置负值,元素向上移动 

      margin-right    默认情况下不会产生效果

      margin-bottom 下外边距,设置一个正值,其下面的元素会向下移动,挤别人

      margin-left      左外边距  设置正值,元素向右移动                   

       处置外边距的重叠:在网页中相邻的垂直方向的外边距,会发生重叠。

    兄弟之间的重叠,会取最大值,不会取和,谁大听谁的

             特殊情况:如果一正一负,取两者之和

                               如果两负,则取绝对值最大的

            兄弟的外边距重叠问题,一般不解决

    父子之间的外边距重叠

            如果父子元素的垂直外边距相邻了,则子元素的外边距会传递给父元素

            暂时解决方案:不用外边距;

                                     不相邻

        总结:由于页面中的元素默认下是靠左靠上摆放,所以当我们设置上外边距和左外边距的时候,盒子自身位置会发生改变。如果设置右边距和下外边距,会改变其他盒子的位置(挤别人)。

二、布局

1、水平布局   

        元素的水平布局有几个属性共同决定。

        margin-left  border-left paddin-left width  padding-right border-right margin-right

       一个元素在其父元素中,水平方向的等式

         margin-left + border-left + paddin-left + width + padding-right + border-right + margin-right = 父元素宽度

        0 + 0 + 0 + 100+ 0 + 0 +0=400  ??

        以上等式满足,如果不满足,则浏览器会自动调整,这个叫过度约束。

       浏览器调整

        1、如果七个值没有  auto  ,那么浏览器会自动调整 margin-right 使我们等式满足

        2、这七个值,width,margin-left,margin-right 可以设置 auto

               如果有设置auto,浏览器会自动调整auto的值。

              如果设置margin-left为auto,

             例子: 300 +0+0+100+0+0+0=400

        3、如果同时设置width  margin  为auto,只调整width宽度。

        4、如果设置宽度固定,设置margin为auto,

              则两边的外边距会设置为相同的值,让元素在父元素中居中。

2、垂直布局

      垂直方向  :1、不设置高度,默认被内容撑开

                           2、设置了,就听设置

  元素如果溢出: overflow  处理溢出内容

            可选值:

              visible 溢出的内容会正常显示

              hidden  溢出的内容会被裁减,不会显示

              scroll  出现双侧滚动条

              auto   根据溢出内容,出现滚动条

  相关的属性:overflow-x、overflow-y

三、样式

1、行内元素的盒子

       (1)不能设置宽高

       (2)padding可以设置,但不会改变页面垂直的布局

       (3)border可以设置,也不会改变页面垂直的布局

       (4)可以设置水平方向的外边距,垂直方向的不生效

                两个行内元素的水平外边距,不会重叠,而是求和。

display  属性:  用来设置元素的显示类型。

           可选值:

             block   将元素设置为块元素

             inline  将元素设置为行内元素

             inline-block  行内块元素(即可设置宽高,也不会独占一行)

             none   将元素隐藏

             table  将元素设置为一个表格

2、默认样式的去除

         默认样式: 浏览器为了在页面中没有样式的时,也可以有一个比较好的呈现,所以给很多元素设置默认的padding,margin等等。正常这些样式我们都不用,因为不同浏览器显示的效果不一定。

(1)手动输入

*{
   padding: 0;
   margin: 0;
 }
a{
    text-decoration: none;
 }
li{
    list-style: none;
  } 

(2)引入重制样式表

<link rel="stylesheet" href="./.css">

3、轮廓与圆角

(1)轮廓

          box-shadow  设置元素的阴影效果,不会影响到页面的布局

       参数:

              1、水平偏移量  可正可负 必填   正->负  

              2、垂直偏移量   可正可负 必填

              3、模糊半径   可填

              4、颜色  一般用rgba

(2)圆角

        border-radius: 设置圆角  

      可以写四个值 ,四个属性值顺序 : 左上  右上  右下  左下

                3个  左上  右上左下   右下

                2个  左上右下   右上左下

                1个  共用

     以10px为半径画圆,以40px为半径画圆

       border-radius: 10px   40px;     

    设置圆形: border-radius: 50%;

    给单独一角设置圆角:

                 border-top-left-radius: 50px;

                 border-top-right-radius: 50px;

四、box-sizing拯救布局

 默认情况,盒子的大小是由内容区,边框,内边距共同决定。

盒子模型尺寸   

内盒总尺寸=border(上下/左右)+padding(上下/左右)+ 内容宽度

外盒总尺寸=border(上下/左右)+padding(上下/左右)+ margin(上下/左右) + 内容宽度

可以通过box-sizing 用来设置盒子尺寸的计算方式  也就是width,height指的是谁。

 box-sizing可选值:

           content-box  内容区  默认值

           border-box  宽高设置的就是整个可见框的大小  包含内容区,边框,内边距

           Inherit:此值使元素继承父元素的盒子模型

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值