zoukankan      html  css  js  c++  java
  • css中的盒模型

    1、作用:控制元素和元素之间,或者元素和内容之间的位置关系;

    2、概念:盒模型是CSS布局的基石,它规定了网页元素如何显示以及元素之间的相互关系,CSS定义所有的元素都可以有像盒子一样的外形和平面空间。即都包含内容区、补白(填充)、边框、边界(外边距)

    3、盒模型的组成:content(内容区)+padding(填充区)+border(边框区)+margin(外边界区)

    • content:元素的宽和高

    • border:盒子的边缘

    • padding 填充区域

      • 作用1:用来控制父元素和子元素之间的位置关系

      • 作用2:用来控制元素和内容之间的位置关系

      • 特点:添加了padding值之后,padding值会把元素原有的大小撑大;如果想让元素原本大小不变,需要在元素的宽高上减掉所加的padding值

      • 使用方法:

        • padding-top: 30px; 上填充

        • padding-right: 30px; 右填充

        • padding-bottom: 30px;下填充

        • padding-left: 30px; 左填充

        • padding:1 2 3 4; 复合式写法上右下左

        • padding: 1 2 3;1上 2左和右 3下

      • padding不会对背景图的位置造成影响

      • 背景色会延展到padding区域

    • margin:外边距

      • 作用:控制同辈元素之间的位置关系。

      • 特点:margin是显示在元素边框以外的空白区。

      • 使用方法:

        • margin-top: 30px; 上边距

        • margin-right: 30px; 右边距

        • margin-bottom: 30px;下边距

        • margin-left: 30px; 左边距

        • margin:1 2 3 4;复合式写法参考padding

      • 实现水平居中的方法:

        • margin:0 auto

        • margin-left:auto;margin-right:auto

      • margin是可以写负值的,padding不可以

      • margin不会影响元素的实际大小,但是也会增加他的所占区域

      • margin的bug:

        • 上下的两个元素的margin值会重叠显示谁的值大,就以谁的margin值显示(BFC解决)

        • 当父元素里的第一个子元素,添加margin-top的时候,会错误的把margin-top值添加给父元素。建立在当前的元素们没有添加边框和浮动的前提下。

          解决方法:BFC 1)给父元素添加overflow:hidden;推荐使用

          2)给父元素和子元素添加浮动属性

          3)可以给父元素添加边框

          4)把margin改成padding

    • 标准盒模型所占位置的组成:宽高(content)+padding+border+margin

      • 元素宽度占用的位置大小:宽+左右的padding+左右border+左右margin

      • 元素高度占用的位置大小:高+上下的padding+上下的border+上下的margin

    • 怪异盒模型:比如提交按钮

      • 元素的宽度:width(content+border+padding)+margin

      • 属性:box-sizing:border-box(怪异盒模型)/ content-box(标准盒模型)

      tips:li是块状元素,当不给他设置width属性的时候,他默认的宽度是100%,也就是跟父元素等宽,当你给他添加padding左右值的时候,li会重新进行宽度的计算,也就是加上padding值之后依然等于父元素的宽度。

  • 相关阅读:
    spring 注解学习 一 Bean的注入
    jdk动态代理详解 二 代理失效
    jdk动态代理详解 一 入门
    tomcat中web应用的目录结构
    mongoose与mongodb 的版本兼容性表格
    树莓派3B安装ffmpeg过程记录
    ESP8266驱动SSD1306 ESP8266 for Arduino(NodeMCU U8G2库)
    ESP8266 for Arduino开发环境安装
    Mongodb3.4升张到4.0过程
    使用webgl(three.js)创建自动化抽象化3D机房,3D机房模块详细介绍(抽象版一)
  • 原文地址:https://www.cnblogs.com/shewill/p/13051381.html
Copyright © 2011-2022 走看看