博客
关于我
CSS盒子模型
阅读量:402 次
发布时间:2019-03-06

本文共 2257 字,大约阅读时间需要 7 分钟。

CSS盒子模型

所有的HTML元素都可以看作是一个盒子。

将盒子模型拆分,则包括 外边距+边框+填充+内容。
显得专业一些,box model = margin+border+padding+content

------------------------------------------|                 margin                 |  | -------------------------------------- || |               border               | || | ---------------------------------- | || | |             padding            | | || | | ------------------------------ | | || | | |           content          | | | || | | |                            | | | || | | |                            | | | || | | ------------------------------ | | || | ---------------------------------- | ||  ------------------------------------- |------------------------------------------

盒子成分分析

margin

#marginShow{    /* 四个方向简写 */    margin: 10px;    /* 上下边距,左右边距简写 */    margin: 10px 10px;    /* 上右下左四个边距 */    margin: 10px 10px 10px 10px;    /* 上右下左分别单独配置 */    margin-top: 10px;    margin-right: 10px;    margin-left: 10px;    margin-bottom: 10px;  }

border

#boderShow{    /* 简写 */    border: 1px solid #eee;    /* 四个方向单独配置 */    border-top: 1px solid #eee;    border-bottom: 1px solid #eee;    border-left: 1px solid #eee;    border-right: 1px solid #eee;}

padding

#paddingShow{    /* 四个方向简写 */    padding: 10px;    /* 上下填充,左右填充简写 */    padding: 10px 10px;    /* 上右下左四个填充 */    padding: 10px 10px 10px 10px;    /* 上右下左分别单独配置 */    padding-top: 10px;    padding-right: 10px;    padding-left: 10px;    padding-bottom: 10px;  }

box-sizing属性

content-box:默认值,widthheight属性分别应用到元素的内容框。在宽度和高度之外绘制元素的marginborderpadding,称为标准盒子模型

border-box:为元素设定的widthheight属性决定了元素的边框盒,就是说,为元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。通过从已设定的宽度和高度分别减去borderpadding才能得到内容的宽度和高度,称为IE盒子模型
inherit:规定应从父元素继承box-sizing属性的值。

浏览器兼容性

一旦为页面设置了恰当的DTD,大多数浏览器都会按照上面的图示来呈现内容。然而IE5IE6 的呈现却是不正确的。根据W3C的规范,元素内容占据的空间是由width属性设置的,而内容周围的paddingborder值是另外计算的。不幸的是,IE5.XIE6在怪异模式中使用自己的非标准模型。这些浏览器的width属性不是内容的宽度,而是内容、内边距和边框的宽度的总和。

虽然有方法解决这个问题。但是目前最好的解决方案是回避这个问题。也就是,不要给元素添加具有指定宽度的内边距,而是尝试将内边距或外边距添加到元素的父元素和子元素。
IE8及更早IE版本不支持设置填充的宽度和边框的宽度属性。
解决IE8及更早版本不兼容问题可以在HTML页面声明<!DOCTYPE html>即可。

测试代码

    CSS盒模型    
我是带了一个border盒子
我是带了margin的盒子
我是带了padding的盒子
我是带了padding+IE盒子模型的盒子

每日一题

https://github.com/WindrunnerMax/EveryDay

转载地址:http://rdckz.baihongyu.com/

你可能感兴趣的文章
Spring根据包名获取包路径下的所有类
查看>>
cglib动态代理导致注解丢失问题及如何修改注解允许被继承
查看>>
TypeReference -- 让Jackson Json在List/Map中识别自己的Object
查看>>
大数据开发-Spark-一文理解Spark中的Stage,Executor,Driver...
查看>>
算法 - 如何从股票买卖中,获得最大收益
查看>>
机器学习-KNN算法原理 && Spark实现
查看>>
大数据开发-Spark-拷问灵魂的5个问题
查看>>
算法 - 链表操作思想 && case
查看>>
linux下的bash shell
查看>>