HTML+CSS三栏式布局(7种)

1.float(脱离文本流)

css部分代码:
HTML+CSS三栏式布局(7种)_第1张图片

html:
HTML+CSS三栏式布局(7种)_第2张图片

效果:HTML+CSS三栏式布局(7种)_第3张图片

特点:左右两栏利用中间的margin挤出空间,左侧向左浮动,右侧向右浮动,中间不设置宽度,随着屏幕的缩小,左右两栏的宽度会保持不变,中间的宽度会减小。

2.且对定位absolute(脱离文档流)

css:
HTML+CSS三栏式布局(7种)_第4张图片

html:
HTML+CSS三栏式布局(7种)_第5张图片

效果:
HTML+CSS三栏式布局(7种)_第6张图片

特点:左右两栏设置为绝对定位,将脱离文档流,中间部分利用margin挤出左右两栏的空间,当窗口缩小时,左右两栏宽度不变,中间一栏的宽的减小。

3.flex布局

css:
HTML+CSS三栏式布局(7种)_第7张图片

html:
HTML+CSS三栏式布局(7种)_第8张图片

效果:
HTML+CSS三栏式布局(7种)_第9张图片

当窗口过度缩小时,左右两栏会相应的缩小
HTML+CSS三栏式布局(7种)_第10张图片

特点:兼容性较弱,但适应性较好,网页布局一般用这种方法。若不设定每一栏的高度,高度由内容撑开,若设置任意一栏的高度,则另外两栏高度也会同步改变。

4.table布局

css:
HTML+CSS三栏式布局(7种)_第11张图片

html:
HTML+CSS三栏式布局(7种)_第12张图片

效果(设置了middle高度为300px):
HTML+CSS三栏式布局(7种)_第13张图片

效果(不设置任何高度):
HTML+CSS三栏式布局(7种)_第14张图片

特点:与flex布局相似,高度由内容撑开,若设置了任意一栏的高度,则其余两栏的高度会随之变化。

5.Grid网格布局

css:
HTML+CSS三栏式布局(7种)_第15张图片

html:
在这里插入图片描述

效果:
HTML+CSS三栏式布局(7种)_第16张图片

特点:与table布局相似,高度由内容撑开,若设置了任意一栏的高度,则其余两栏的高度会随之变化。

6.圣杯式布局

css:
HTML+CSS三栏式布局(7种)_第17张图片

html:
在这里插入图片描述

效果:
HTML+CSS三栏式布局(7种)_第18张图片

特点:在最开始用容器包裹了:左、中、右,随后通过设置包裹容器container的padding,让中间区域左右留白,也就是说圣杯布局的左、中、右是完全独立的,他们之间是有缝隙的(如果缝隙可见的话),例如我们接下来:给container加一个黑色背景色,并且设置高一些的高度。去左、中、右的等高布局,给middle再加一行文字。可以看出,左、中、右是独立的三个区域,都处于一个层级,都由container这个容器承接,左右两侧是靠container的padding留出来的。

HTML+CSS三栏式布局(7种)_第19张图片

7.双飞翼布局(与圣杯类似)

css:
HTML+CSS三栏式布局(7种)_第20张图片

html:
HTML+CSS三栏式布局(7种)_第21张图片

效果:
HTML+CSS三栏式布局(7种)_第22张图片

特点:双飞翼采用只处理中间解决遮盖问题,先给中间的包裹器middle加margin,让出左右空间,然后给left、right设置margin为负,把自己推上去,可以看出,左、中、右是独立的三个区域,中间区域属于最上面的层级(inner那个div),左右两侧和middle容器一个层级。和圣杯布局相同的是中间栏都放到文档的前面,保证现行渲染。

你可能感兴趣的:(javascript)