很多朋友们可能会疑惑,不知道box-sizing属性是有什么作用,自己也很少会用到,但是想必不少人在做网页布局的时候经常遇到一个问题就是我明明设置了父元素设置了假如是宽高500px,5个子元素左浮动设置宽高均是100px都设置有边框。为什么第五个元素被挤下到第二排呢?

例子1:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>加边框的</title>
<style>
.box{
width: 300px;
height: 300px;
border: 1px solid black;
margin: 0 auto;
}
.first {
width: 150px;
height: 100px;
float: left;
background: pink;
border: 1px solid red; /*增加了边框*/ /*解决方法在这里增加box-sizing:border-box*/
}
.second {
width: 100px;
height: 100px;
background: blue;
float: left;
}
.third{
width: 50px;
height: 100px;
float: left;
background: green;
}
</style>
</head> <body>
<div class="box">
<div class="first">123</div>
<div class="second">456</div>
<div class="third">789</div>
</div>
</body>
</html>

效果如下:

      

此时你可能会疑惑,我明明设置了子元素总宽度跟父元素相等了,为什么子元素没有合并到一行呢,请看代码的第18行多个了边框,边框设置了1px,css默认情况下不会将边框也计算在宽度内的所以你可以这样计算字元素宽度:

子元素150px+100+2+50=302px;超出父元素300px,所以第三个元素才不会合并在一行内。宽度左右边框共占用2px。

解决的方法:

  1.父元素设置为302px。

  2.在设置了边框的子元素中增加:box-sizing:border-box;

box-sizing:border-box;的作用是将第三个子元素设置的宽度(包含边框)一起算在width:100px里面。

box-sizing属性可以为三个值之一:content-box(default),border-box,padding-box。

content-box,border和padding不计算入width之内

padding-box,padding计算入width内

border-box,border和padding计算入width之内,其实就是怪异模式了~

最新文章

  1. 我心中的核心组件(可插拔的AOP)~第二回 缓存拦截器
  2. CSS学习笔记——简述
  3. Linux Socket编程(不限Linux)
  4. HDU 1312 Red and Black DFS(深度优先搜索) 和 BFS(广度优先搜索)
  5. 键盘样式风格有关设置-iOS开发
  6. 【转】二叉树 VS hashtable
  7. Lambda表达式与匿名方法
  8. hdu2818行列匹配+排序
  9. 团队作业4——第一次项目冲刺(Alpha版本) 2
  10. Linux内存描述之高端内存--Linux内存管理(五)
  11. Angularjs判断页面是否已经渲染结束(动态给标签长度)
  12. 13. Roman to Integer (JAVA)
  13. @Vue/Cli 3 Invalid Host header 检测关闭
  14. ionic3 Injectable 引入NavController
  15. 宽字符————_T、_TEXT、L、TEXT之间的区别
  16. 学习windows编程 day1
  17. 第十五章 dubbo结果缓存机制
  18. WDA基础十二:FREE PROGRAM SH (WDA TREE)
  19. mysql root密码修改
  20. 变动事件_DOM2级的变动事件(mutation)

热门文章

  1. webpack多页面应用打包问题-新增页面打包JS影响旧有JS资源
  2. [DP]换钱的方法数
  3. Java连载29-方法执行内存分析、方法重载
  4. Vert.x 学习之MongoDB Client
  5. spring中的XML Catalog配置
  6. FreeSql (十三)更新数据时忽略列
  7. .Ajax(async异步与sync同步)
  8. AutoCompleteTextView自动完成文本框
  9. Winform中实现ZedGraph中曲线右键显示为中文
  10. LVM(逻辑卷管理)