美文网首页
box-sizing挽救布局

box-sizing挽救布局

作者: 冬鬼 | 来源:发表于2017-08-01 12:46 被阅读102次

常见的三栏布局有圣杯布局和双飞翼布局,在这里我们不深究圣杯布局跟双飞翼布局的起源,说一下如何进行box-sizing如何挽救圣杯布局。

圣杯布局如下图所示

页面

圣杯布局

圣杯布局的原理:

1.首先布局上来说就是常见的header、container、footer三层结构,在中间的container层中分为上、中、下三层,利用三组div标签来表示。

2.所谓的圣杯布局其实就是在container这一层中做文章,左右两边的div是定宽,而中间的div是自适应的。

3.要让三个div元素位于同一行中需要div浮动,而且是左浮动,而且在html结构中要让中间的一层位于最上面,代码如下:

html结构

4.再用css编写样式,这时候唯一注意的是要用负边距来控制左右两个div.类名为left的margin-left设置为-100%;另一个设置对应的宽度,这时候左右两边会漂移会达到上图的结果吗?答案是不能,反而会出现右边的漂浮在下面上不去,除非你将右边的margin-left的负值增大,不等于right的宽度值。

上不去的盒子

为什么会出现这种问题,这个地方就牵扯到一个知识点,关于盒子的模型问题。

box-sizing属性重新定义计算盒子宽度的方式。

在css中盒模型被分为两种,第一种是W3C的标准模型,另一种是IE的传统模型,它们之间的相同之处都是对元素计算尺寸的模型,具体说就是对元素的width、height、padding、和border以及元素实际尺寸的计算关系,不同之处是两者的计算方法不一致。

1)W3C的标准盒模型

外盒尺寸计算(元素空间尺寸)

element空间高度 = 内容高度+内距+边框+外距

element空间宽度 = 内容宽度+内距+边框+外距

内盒尺寸计算(元素大小)

element高度 = 内容高度+内距+边框(height为元素高度)

element宽度 = 内容宽度+内距+边框(width为元素宽度)

2)IE传统下盒模型(IE6以下,不包含IE6.0版本或QuirkMode下IE5.5+)

外盒尺寸计算(元素空间尺寸)

element空间高度 = 内容高度+外距(height为元素高度、内距、边框)

element空间宽度 = 内容宽度+外距(height为元素宽度、内距、边框)

内盒尺寸计算(元素大小)

element高度 = 内容高度(height为元素高度、内距、边框)

element宽度 = 内容宽度(width为元素宽度、内距、边框)

盒子模型

在IE5.x以及IE6-7的怪异模式下,边框和内距都包含在宽度或高度中,而标准的浏览器中,宽度和高度仅仅包含了内容宽度,除去了边框和内距,给web效果处理带来了麻烦。

box-sizing 解决了这种问题,语法如下:

box-sizing语法

这里出现right盒子上不去的原因就是这里默认是content-box,所以我们在设置box-sizing的属性值为border-box,这样right盒子设置跟盒子宽度相同的偏移值就可以上去了。

成品图

设置box-sizing之后的布局

这一步完成之后,剩下的就是设置container盒子的padding-left和padding-right,然后再设置left盒子和right盒子加上relative定位,加上left和right数值就可以得到对应的圣杯布局,对于双飞翼布局也是同理。

最后,贴上我的关于圣杯布局的css代码。

第一段css 第二段css

相关文章

  • box-sizing挽救布局

    常见的三栏布局有圣杯布局和双飞翼布局,在这里我们不深究圣杯布局跟双飞翼布局的起源,说一下如何进行box-sizin...

  • box-sizing布局

    盒子模型 关于CSS重要的一个概念就是CSS盒子模型。它控制着页面这些元素的高度和宽度。盒子模型多少会让人产生一些...

  • CSS布局理解笔记

    flex-wrap: wrap; 弹性布局,超出一行自动换行。 box-sizing:border-box :内容...

  • 使用box-sizing布局

    盒模型 在css中比较重要的就是 盒模型,它是在web中比较重要的一个基础点,当然其中涉及到 高度和宽度计算。 w...

  • box-sizing布局笔记

    首先学习box-sizing布局之前,来了解一下css盒子模型(Box Model) 盒子模型(Box Model...

  • css

    css 1.盒模型 页面渲染时,dom元素所采用的布局模型。 可以通过box-sizing 进行设置。根据计算宽高...

  • H5移动端知识点总结

    阅读目录移动开发基本知识点 calc基本用法box-sizing的理解及使用理解display:box的布局理解f...

  • 有关border-box的知识及延伸

    标签(空格分隔): CSS布局 说起box-sizing:border-box我们就不能不理解盒子模型。这里我简要...

  • 前端面试题搜集

    HTML+CSS 布局相关 不用百分比方式,实现均分 html5的新特性 盒子模型(box-sizing) 浮动:...

  • 学会使用box-sizing布局

    盒子模型 关于CSS重要的一个概念就是CSS盒子模型。它控制着页面这些元素的高度和宽度。盒子模型多少会让人产生一些...

网友评论

      本文标题:box-sizing挽救布局

      本文链接:https://www.haomeiwen.com/subject/pcydlxtx.html