border 边框显示不完全是因为大多数浏览器采用了 W3C 标准盒子模型, 它规定
一个块的总宽度 = width + margin(左右) + padding(左右) + border(左右)
所以, 当我们设置了 border 后, width 变成了: 100% margin + padding + border, 超过了 100%, 也就显示不完全了..
解决方法:
- div{
- width: 100%;
- border: solid 5px green;
- box-sizing: border-box;
- }
使用这样一条 CSS 样式 box-sizing: border-box;, 就能解决盒子宽度超出 100%, 而造成边框显示不完全的问题了.
标准模式和怪异模式
CSS 中 Box model 是分为两种: W3C 标准 和 IE 标准盒子模型.
大多数浏览器采用 W3C 标准模型, 而 IE 中则采用 Microsoft 自己的标准.
怪异模式是 "部分浏览器在支持 W3C 标准的同时还保留了原来的解析模式", 怪异模式主要表现在 IE 内核的浏览器.
当不对 doctype 进行定义时, 会触发怪异模式.
在标准模式下, 一个块的总宽度 = width + margin(左右) + padding(左右) + border(左右)
在怪异模式下, 一个块的总宽度 = width + margin(左右)(即 width 已经包含了 padding 和 border 值)
来源: http://www.css88.com/qa/css3/14155.html