css盒子模型详解

119 阅读4分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第3天,点击查看活动详情 >

今天给大家梳理一下盒子模型

一.盒模型

盒模型又可以叫做盒子模型、框模型

        -css将页面的所有元素都设置成了一个矩形的盒子
        -嫁给你元素设置成矩形的盒子后,对页面的布局就变成了不同盒子摆放的位置
        -每一个盒子都由以下几个部分组成:
            内容区(content)
            内边距(padding)
            边框(border)
            外边距(margin

二.盒子模型边框

border-width:10px;

默认值:一般为三个像素
border-width可以用来指定四个方向的边框的宽度值的情况
    四个值:上,右,下,左
    三个值:上,左右,下
    两个值:上下,左右
    一个值:上下左右

除了border-width还有一组 border-xxx-width
    xxx可以是top right bottom left
    用来单独指定某一个边的宽度

    border-style 指定边框的样式
        solid 表示实线
        dotted 表示点状虚线
        dashed 虚线
        double 双线
    
        */
/*      border简写属性,通过属性可以同时设置边框所有的
相关样式,并且没有顺序要求*/

三.盒子模型内边距

  内边距(paddin)    
-内容区和边框之间的距离是内边距
-一共有四个方向的内边距:
    padding-top
    padding-right
    padding-bottom
    padding-left 

    -内边距的设置会影响到盒子的大小
    -背景颜色会延申到内边距上
    

四.盒子模型外边距

            -外边距不会影响盒子可见框的大小
            -但是外边距会影响盒子的位置
            -一共有四个方向的外边距:
            margin-top
                -上外边距,设置一个正值,元素会向下移动
            margin-right
                默认情况下不会产生效果
            margin-bottom
                -下外边距,设置一个正值,其下边元素会向下移动
            margin-left
                -左外边距,设置一个正值,元素会向右移动

            -margin也可以设置负值,如果是负值元素会向相反的方向移动
        
        -元素在页面中是按照自左向右的顺序排列的
            所以默认情况下如果我们设置的左和上外边距则会移动
            而设置下和右边距则会移动其他元素

        -margin的简写属性
            margin 可以同时设置四个方向的外边距
        

五.水平方向布局

元素的水平方向的布局:

    元素在其父元素中水平方向的位置由几个属性共同决定
        margin-left
        border-left
        padding-left
        width
        padding-right
        border-right
        margin-right
        
一个元素在其父元素中,水平布局必须满足以下等式

margin-left+ border-left +padding-left
+width+padding-right
+border-right 
+ margin-right

=其父元素内容区的宽度(=width的值)

0 + 0 + 0 + 200 + 0 + 0 + 0 = 800

以上等式如果不满足则等式会自动调整
-如果这七个值没有为 auto 的情况,则浏览器会自动调整margin-right的值
如果某个值为 auto 则会自动

六.垂直方向布局

可选值

    visible  默认值,子元素会从父元素中溢出,在父元素外部的位置显示
    hidden   溢出内容将会被裁减不会显示
    scroll    生成两个滚动条通过滚动条来查看完整的内容
    auto     根据需要生成滚动条
    overflow-x  只显示x轴
    overflow-y  只显示y轴
    

七.外边距的折叠

垂直外边距的折叠

  -相邻的垂直方向外边距会发生折叠现象
  -兄弟元素
      -兄弟元素之间的相邻垂直外边距现象会取两者之间的最大值(两者正值)
      -特殊情况
          如果相邻的外边距一正一负,则取两者之和
          如果相邻的外边距都是负值,则取绝对值较大值

          兄弟元素之间的外边距重叠对开发是有利的,所以不需要处理  
          

八.总结

盒子模型本人就粗略的总结了以上的几点,欢迎各位兄弟积极指出以及在评论区讨论!