介绍一下标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的?

  • 标准盒子模型:宽度=内容的宽度(content)+ border + padding + margin
  • 低版本IE盒子模型:宽度=内容宽度(content+border+padding)+ margin

首先抛开所谓的标准不说,因为这个标准是 W3C 那边制定后跟各大厂商沟通去做统一的。在这个答案中,如果按照严格来说,首先会问基本怎么计算,就像上面这个答案,不过需要注意一下顺序。

  • 标准盒模型的宽度 = margin-left + border-left + padding-left + width + padding-right + border-right + margin-right,这样写可能会显得比较长,按照上面的答案来说的话,或许 width + padding + border + margin 就好了,附带说一下除了 width 以外是有左右两边的。
  • 怪异模式的盒模型宽度 = (width + padding + border) + margin 整体来说跟标准盒模型是相类似的,主要是 width + padding + border 这三者算在一起了。

标准的盒模型是基于 doctype 正确书写的情况下,并且是高于 IE6 的浏览器才会有的,如果是低于 IE6 的浏览器,就算是正确的 doctype 的书写情况下也是进入怪异模式的;在 IE 浏览器中如果写错了 doctype 或者是 doctype 之前有其他字符,那么可能就让 IE 进入怪异模式,从而导致浏览器解析元素盒模型出现问题,比如:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  • 这种情况下就会让低版本的 IE 进入怪异模式,导致的可能不仅仅只是盒模型计算问题,还有可能是其他的一些情况,早年之前有不少公司直接利用这种方式对低版本和高版本的浏览器做样式上的区别操作对待。

拓展问题

  • 根据以上可以再问一下,当 width: 0; padding: 0 100px; border: 10px solid red; margin: 0 50px; 的时候,这个盒子里有内容跟没内容,在标准盒模型和怪异模式的盒模型中有什么区别?
  • 根据 box-sizng 改变的盒模型的计算方式,跟这个标准盒模型以及怪异模式的盒模型的计算方式有什么区别?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值