CSS定位问题(1):盒模型、浮动、BFC

606 查看

引子:

在谈到css定位问题的时候先来看一个小问题:

已知宽度(假如:100px)div框,水平居中,左右两边分别使用div框填充.且左右div自适应.

效果如下图: 这里写图片描述

这个问题的难点主要是浏览器宽度未知,且两边div自适应宽度.

第一种实现方法,是借助css3的新属性calc,实现代码如下:

第二种实现方式就是借助与display属性,将所有的div框具有table的单元格的属性.

代码如下:

这里解决问题的主要思路是当中间的宽度确定后,因为所有div是单元格所以使用50%使左右的单元格平分剩下的宽度.

1.盒模型

盒模型又分IE盒模型和非IE盒模型: 看下面的一张图(来自维基百科):

这里写图片描述 由上面的图可以知道IE和非IE盒模型的区别主要是计算元素的宽度和高度不一样。

  1. IE浏览器: margin-left+width+margin-right
  2. 非IE浏览器:margin-left+border-left+padding-left+width+padding-right+border-right+margin-right

看一段代码: