css中box-sizing简单说明(标准盒式模型和怪异盒式模型)
今天写程序做布局的时候,遇到关于css中盒式模型的问题,百度了下这属性的解释,脑大啊,文字太绕看不懂。怎么办,于是自己动动手写了段程序测试,嗯,不错,一看效果就恍然大明白了。这里简单说明下,也可能说得比较粗浅。不过希望可以帮到一些前端的朋友。
首先说下box-sizing的取值问题,box-sizing的可选值有三个,inheirt,content-box(标准盒式模型)和border-box(ie6等非标准浏览器的怪异盒式模型);
首先说第一个取值content-box,content-box是box-sizing的默认值。意思是:元素实际占用的空间宽度=我们设置的宽度(width)+边框+内间距。假设我们设置一个div的宽度为100px,如果再给这个div设置边框和间距内的话,边框和间距是向外扩展的。导致实际div的实际宽度大于100px。上代码和图一目了然。
首先定义一个宽和高为100px的div,设置box-sizing为content-box,背景为红色。为了突出显示我们把它放在一张蓝色背景上;
<div id="bx1" style="width:300px;height:300px;background:blue;">
<div id="bx2" style="width:100px;height:100px;background:red;margin:0px auto;box-sizing:content-box;"></div>
</div>
显示如下:

为了便于比较我们添加一个新的div,与上一个div的唯一区别就是增加了10px的黄色边框;
<div id="bx1" style="width:300px;height:300px;background:blue;">
<div id="bx2" style="width:100px;height:100px;background:red;margin:0px auto;box-sizing:content-box;"></div>
<div id="bx3" style="width:100px;height:100px;background:red;margin:10px auto; box-sizing:content-box;border:10px solid yellow"></div>
</div>
结果如图:border是在div的外面扩展的。

我们在为新增加的div添加一个10像素的内边距,结果如图内边距也是向外扩展,为什么说内边距是向外扩展的,可以注意“hello”的位置。
#bx3{padding:10px;}

好吧,讲完一个属性了,现在开始另一个属性,border-box。修改原来的div的box-sizing为border-box。
border-box是向内扩展的。 如果设置box-sizing成了border-box,元素实际占用的空间的宽度就等于我们设置的宽度,如果设置边框和间距,边框和间距就向内扩展。原先的例子再走一遍吧。(请原谅我是强迫症患者而且我还追求完美)
<div id="bx1" style="width:300px;height:300px;background:blue;">
<div id="bx2" style="width:100px;height:100px;background:red;margin:0px auto;color:white;box-sizing:border-box;">hello</div>
</div>
没有边框和间距的初始图:

现在新增一个div用于对比,与原来的div的唯一区别就是多了10px宽的黄色的边框;
<div id="bx1" style="width:300px;height:300px;background:blue;">
<div id="bx2" style="width:100px;height:100px;background:red;margin:0px auto;color:white;box-sizing:border-box;">hello</div>
<div id="bx3" style="width:100px;height:100px;background:red;margin:0px auto;color:white;box-sizing:border-box;border:10px solid yellow">hello</div>
</div>
结果如图:边框向内扩展

接着我们在为div添加10px的内边距;
#bx3{padding:10px;}
结果如图:内边距向内扩展,注意“hello”的位置。

我想到这里对这两个属性大家都和清楚了吧。
现在总结下,box-sizing取值有三个context-box,border-box和inherit,content-box是box-sizing的默认值,意思是元素实际占用的空间宽度=我们设置的宽度(width)+边框+内间距,我们设置div的宽度后,再加边框和间距,边框和间距是向外扩展的。border-box元素实际占用的空间的宽度就等于我们设置的宽度,如果设置边框和间距,边框和间距就向内扩展。至于inherit属性,应该大家都知道,它爹是什么属性,它就继承什么。
本来一件很小的事情,竟然啰嗦这么久,最后请求这个世界原来完美主义者和强迫症患者,我们是无辜的
css中box-sizing简单说明(标准盒式模型和怪异盒式模型)的更多相关文章
- padding标准盒模型和怪异盒子模型
我们都知道padding是为块级元素设置内边距 但是在使用过程中,我们却会遇到一些问题.padding的标准盒模型和怪异盒模型 padding盒子模型 我们通过demo来讲这个问题,用文字干讲第一没意 ...
- 标准盒模型、怪异盒模型(box-sizing)
CSS中Box model是分为两种: W3C标准(标准盒模型) 和 IE标准盒子模型(怪异盒模型).大多数浏览器采用W3C标准模型,而IE中则采用Microsoft自己的标准. 重要的一个属性是bo ...
- CSS盒子模型与怪异盒模型
盒子模型(Box Modle)可以用来对元素进行布局,包括内边距,边框,外边距,和实际内容这几个部分. 盒子模型分为两种 第一种是W3c标准的盒子模型(标准盒模型) .第二种IE标准 ...
- css中的em 简单教程 -- 转
先附上原作的地址: https://www.w3cplus.com/css/px-to-em 习惯性的复制一遍~~~~ -------------------------------我是分界线---- ...
- CSS3_标准盒子模型和怪异盒子模型
#box{ width: 200px; height: 200px; background-color: pink; } 标准盒子模型 box-sizing: content-box; padding ...
- div的标准盒模型和怪异盒模型
(1)标准盒模型 标准盒模型宽高不会被padding和margin撑开 (2)怪异盒模型 怪异盒模型宽高会被padding和margin撑开
- css中 repeat-x 的简单用法
问repeat-x 00 中: 0 0 是 什么意思,如果改为0 -50呢,不写话默认是什么(不写话和0 0 的效果不一样)- ------<html><head><s ...
- 怪异盒模型和标准盒模型--CSS
一,原理 css 属性:Box Moel分为两种:W3C标准和IE标准盒子模型. 大多数浏览器采用W3C标准模型,而IE中采用Microsoft自己的标准. 怪异模式是“部分浏览器在支持W3C标准的同 ...
- CSS中box-sizing属性的作用
今天在项目中看到box-sizing这个属性,以前用过,但是不常用!注意,它是CSS3里的属性喔! W3C 盒子模型:标准盒模型,是指块元素box-sizing属性为content-box的盒模型.一 ...
随机推荐
- JDK 之资源文件管理
JDK 之资源文件管理 JDK 规范目录(https://www.cnblogs.com/binarylei/p/10200503.html) 一.文件资源 user.home 用户目录,如 Linu ...
- 那些年,UI设计师还在手工标注和切图时走的弯路
在我从事UI设计师这几年的工作中逐渐发现,最让人糟心的不是应付各种奇葩的需求,完成设计稿,而是交付.每次交付的设计稿和最后开发出来的产品总是让我心塞无比,很少最终产品和我的设计稿是完全一致的. UI设 ...
- Clover相关知识
-f 重建驱动缓存 darkwake=4 有深度睡眠有关的设置,不懂 kext-dev-mode=1 启用第三方驱动,比较重要. dart=0 修复因开启 VT-d 导致系统启动时SMC五国错误,系统 ...
- 解疑网络监控卡壳 视觉体验400ms延时
http://security.zol.com.cn/413/4130220.html 我的眼睛可以轻松判断出400ms延时误差,你可以吗?很多用户都反映手机移动监控.PC远程监控视频会卡顿,抛开设备 ...
- Mac OS X下安装Python的MySQLdb模块【终结版】
1.下载源文件: https://pypi.org/project/MySQL-python/ 2.cd 到源文件所在目录: 3.在目录下使用 python setup.py install 命令安装 ...
- ServiceDesk Plus更有序地组织IT项目
- GOAP
市面上Unity人工智能的书籍基本上都是介绍这几个方面: AI角色的自主移动 --- 操控行为, 单体,小队,群体的行为. 我之前的文章 Unity Movement AI (一) , Unity M ...
- oracle 查看数据库版本
select * from v$version;
- 2018.12.15 spoj1812 Longest Common Substring(后缀自动机)
传送门 后缀自动机模板题. 题意简述:求两个字串的最长公共子串长度. 对其中一个构建后缀自动机,用另外一个在上面跑即可. 代码: #include<bits/stdc++.h> #defi ...
- Transforming Real-Time Task Graphs to Improve Schedulability
Basic idea: insert artificial delays to the release times of certain vertices of a task graph to ge ...