前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CSS盒子模型

CSS盒子模型

作者头像
WindrunnerMax
发布2020-08-27 00:55:00
7570
发布2020-08-27 00:55:00
举报
文章被收录于专栏:Czy‘s Blog

CSS盒子模型

所有的HTML元素都可以看作是一个盒子 将盒子模型拆分,则包括 外边距+边框+填充+内容 显得专业一些,box model = margin+border+padding+content

代码语言:javascript
复制
------------------------------------------
|                 margin                 |  
| -------------------------------------- |
| |               border               | |
| | ---------------------------------- | |
| | |             padding            | | |
| | | ------------------------------ | | |
| | | |           content          | | | |
| | | |                            | | | |
| | | |                            | | | |
| | | ------------------------------ | | |
| | ---------------------------------- | |
|  ------------------------------------- |
------------------------------------------

盒子成分分析

margin

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

border

代码语言:javascript
复制
#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

代码语言:javascript
复制
#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属性分别应用到元素的内容框。在宽度和高度之外绘制元素的内边距、边框、外边距,称为标准盒子模型border-box:为元素设定的widthheight属性决定了元素的边框盒。就是说,为元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。通过从已设定的宽度和高度分别减去 边框 和 内边距 才能得到内容的宽度和高度,称为IE盒子模型inherit:规定应从父元素继承box-sizing属性的值。

浏览器兼容性

一旦为页面设置了恰当的DTD,大多数浏览器都会按照上面的图示来呈现内容。然而IE5IE6 的呈现却是不正确的。根据W3C的规范,元素内容占据的空间是由width属性设置的,而内容周围的paddingborder值是另外计算的。不幸的是,IE5.XIE6在怪异模式中使用自己的非标准模型。这些浏览器的width属性不是内容的宽度,而是内容、内边距和边框的宽度的总和。 虽然有方法解决这个问题。但是目前最好的解决方案是回避这个问题。也就是,不要给元素添加具有指定宽度的内边距,而是尝试将内边距或外边距添加到元素的父元素和子元素。 IE8及更早IE版本不支持设置填充的宽度和边框的宽度属性。 解决IE8及更早版本不兼容问题可以在HTML页面声明<!DOCTYPE html>即可。

测试代码

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
    <title>CSS盒模型</title>
</head>
<body>

    <div class="normal">我是带了一个border盒子</div>

    <div class="hr"></div>

    <div id="marginShow" class="normal">我是带了margin的盒子</div>

    <div class="hr"></div>

    <div id="paddingShow" class="normal">我是带了padding的盒子</div>

    <div class="hr"></div>

    <div id="boxsizeShow" class="normal">我是带了padding+IE盒子模型的盒子</div>


    <style type="text/css">

        .hr{ 
            height: 1px;
            background: #eee;
        }

        .normal{
            color: #fff;
            width: 300px;
            height: 50px;
            background: #1E9FFF;
            border: 1px solid #aaa;
        }
        #marginShow{
            /* 四个方向简写 */
            margin: 10px;
            /* 上下边距,左右边距简写 */
            margin: 10px 10px;
            /* 上右下左四个边距 */
            margin: 10px 10px 10px 10px;
            /* 上右下左分别单独配置 */
            margin-top: 10px;
            margin-right: 10px;
            margin-left: 10px;
            margin-bottom: 10px;  
        }
        #paddingShow{
            /* 四个方向简写 */
            padding: 10px;
            /* 上下填充,左右填充简写 */
            padding: 10px 10px;
            /* 上右下左四个填充 */
            padding: 10px 10px 10px 10px;
            /* 上右下左分别单独配置 */
            padding-top: 10px;
            padding-right: 10px;
            padding-left: 10px;
            padding-bottom: 10px;  
        }
        #boxsizeShow{
            box-sizing: border-box;
            padding: 10px;
        }
    </style>
</body>
</html>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-03-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • CSS盒子模型
    • 盒子成分分析
      • margin
      • border
      • padding
    • box-sizing属性
      • 浏览器兼容性
        • 测试代码
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档