zoukankan      html  css  js  c++  java
  • CSS盒子模型

    CSS盒子模型

    1. 盒子模型的组成

    CSS盒子模型本质上是一个盒子,封装周围的HTML元素。

    包括:边框border、外边距margin、内边距padding、实际内容content。

    2. 边框border

    div {
        border: border-width border-style border-color;
    }
    
    属性 作用
    border-width 边框粗细,单位px
    border-style 边框样式,solid(实线)、dashed(虚线)、dotted(点线)
    border-color 边框颜色,预定义值/十六进制/rgb()
    线形 样式
    dashed 虚线 - - - - - - - -
    dotted 点线 .................
    属性 作用
    border-left 左边框
    border-right 右边框
    border-top 上边框
    border-bottom 下边框

    2.1 边框写法

    简写:

    border: 1px solid blue;/*没有顺序规定,一般按照这种顺序*/
    

    分开写法:

    border-top: 1px solid blue;/*只设定上边框*/
    border-right: 1px dashed red;/*只设定右边框*/;
    border-bottom: 2px solid #ccc;/*只设定下边框*/
    border- left: 3px dotted #123456;/*只设定左边框*/
    

    2.2 表格的细线边框border-collapse

    该属性控制浏览器绘制表格边框的方式,它控制相邻单元格的边框。

    border-collapse: collapse;/*表示相邻边框合并在一起*/
    

    2.3 边框影响盒子实际大小的解决方案

    如果一个盒子加了边框,会出现撑大盒子的情况,因此有两种解决方案。

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

    3. 内边距padding

    内边距:边框与内容之间的距离。

    属性 作用
    padding-left 左内边距
    padding-right 右内边距
    padding-top 上内边距
    padding-bottom 下内边距

    padding的简写属性可以有1~4个值。

    值的个数 表达意思
    padding: 5px 上下左右都是5px内边距
    padding: 5px 10px 上下5px,左右10px
    padding: 5px 10px 15px 上5px,左右10px,下15px
    padding: 5px 10px 15px 20px 上5px,右10px,下15px,左20px

    3.1 内边距影响盒子实际大小的解决方案

    如果盒子已经有了宽度和高度,此时再指定内边框,会影响盒子的实际大小,撑大盒子。因此有两种解决方案。

    1. 让width/height减去多出来的内边距大小
    2. 如果盒子本身没有指定width/height属性,则此时padding不会撑开盒子

    4. 外边距margin

    外边距:控制盒子与盒子之间的距离。

    属性 作用
    margin-left 左外边距
    margin-right 右外边距
    margin-top 上外边距
    margin-bottom 下外边距

    margin的简写和padding一致。

    4.1 外边距让块级盒子水平居中

    利用外边距让块级盒子水平居中所满足的条件:

    1. 盒子必须指定了宽度
    2. 盒子左右的外边距都设置为auto

    常见的写法:

    • margin-left: auto; margin-right: auto;
    • margin: auto;
    • margin: 0 auto;(建议使用)

    注:行内元素、行内块元素水平居中,给其父元素添加text-align: center;即可。

    4.2 外边距合并

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

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

    如上图,出现了取两个值中的较大者的现象,即为相邻块元素垂直外边距的合并。

    解决方案:尽量只给一个盒子添加margin值。

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

    如上图,出现了父元素塌陷较大的外边距值的现象,即为嵌套块元素垂直外边距的塌陷。

    解决方案:

    1. 为父元素定义上边框
    2. 为父元素定义上内边距
    3. 为父元素添加overflow: hidden;(推荐使用)

    5. 清除内外边距

    这也是CSS的第一行代码。

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

    注:

    • 行内元素为了照顾兼容性,尽量只设置左右内外边距
    • 但是转换为块级或行内块元素就无要求
  • 相关阅读:
    Nginx配置中运行与启动的详细介绍
    php实现文件上传进度条
    C# 提取逗号分割的字符串
    【sas proc sql】out join
    【SAS NOTE】substr函数
    【sas proc sql】子查询
    【SAS NOTE】数字字符互换
    【SAS NOTE】数组
    【sas Notel】merge
    【sas sql proc】inner join or outer join
  • 原文地址:https://www.cnblogs.com/chiYiN-zZZ/p/13463269.html
Copyright © 2011-2022 走看看