• css盒模型


    基本概念

    盒模型由 margin + border + padding + content 四个属性组成,分为两种:W3C的标准盒模型和IE盒模型。

    • Margin(外边距) - 清除边框外的区域,外边距是透明的。
    • Border(边框) - 围绕在内边距和内容外的边框。
    • Padding(内边距) - 清除内容周围的区域,内边距是透明的。
    • Content(内容) - 盒子的内容,显示文本和图像

    W3C的标准盒模型

    width = content,不包含 border + padding

    IE盒模型

    width = border + padding + content

    相互转换

    二者之间可以通过CSS3的 box-sizing 属性来转换。

    box-sizing: content-box 是W3C盒模型

    box-sizing: border-box 是IE盒模型

    赋值

    margin和padding为负值情况请参考:https://www.cnblogs.com/zhangzhiyong1998/p/10924891.html

    一、不赋值

    默认情况下为0,也就是不会有内外边距

    2.两个值时

    Padding:10px 20px;  上下内边距为10px,左右内边距为20px

    3.三个值时

    Padding:10px 20px 30px;上10px,左右20px,下30px

    4.四个值时

    Padding:10px 20px 30px 40px;上右下左分别为10 20 30 40

    margin塌陷

    普通文档流中父子块级元素,子元素的上边距会和父元素的上边距重合,以他们两个之间最大上边距为准,与距离他们最近的盒子隔开。父子之间的margin就消失了。下边距同理,左右margin不会发生塌陷。

    解决方法:

    1.给父级设置边框或内边距(记得设置透明)

    2.触发bfc(块级格式上下文),改变父级的渲染规则

    方法:
    (1)为父盒子添加overflow:hidden;
    (2)为父盒子设定padding值;
    (3)为父盒子添加position:fixed;
    (4)为父盒子添加 display:table;
    (5)利用伪元素给子元素的前面添加一个空元素
    .son:before{ content:"";
                 overflow:hidden; }

    margin合并

    两个兄弟结构的元素在垂直方向上的margin是合并的,取两者最大值。(水平方向不会合并)

     1 /*CSS部分*/
     2 <style>
     3 .box1{
     4     width:400px;
     5     height:400px;
     6     background: pink;
     7     margin-bottom: 50px;
     8 }
     9 .box2{
    10     width:200px;
    11     height:200px;
    12     background: lightblue;
    13     margin-bottom: 40px;    
    14 }
    15 </style>
    16 /*HTML部分*/
    17 <body>
    18     <divclass="box1">
    19     <divclass="box2"></div>
    20 </div>
    21 </body>

    两个box的margin发生合并,两者上下仅距离50px;

    解决方法

    使用border或者padding。

    设置float。

    BFC可以参考:https://zhuanlan.zhihu.com/p/25321647?utm_source=qq&utm_medium=social&utm_oi=953258268978651136

  • 相关阅读:
    CS round--36
    Vijos 1002 过河 dp + 思维
    汇编模拟36选7
    1137
    E. Mike and Foam 容斥原理
    Even-odd Boxes hackerrank 分类讨论
    112. 作业之地理篇 最小费用最大流模板题
    1550: Simple String 最大流解法
    Sam's Numbers 矩阵快速幂优化dp
    java.sql.SQLSyntaxErrorException: ORA-01722: 无效数字
  • 原文地址:https://www.cnblogs.com/AwenJS/p/12688797.html
Copyright © 2020-2023  润新知