CSS两列布局的多种方式

html-css014

CSS两列布局的多种方式,第1张

两列布局(一侧固定宽度,一侧自适应),在工作中应该是经常使用到,可以说是前端基础了。这种两列布局的样式是我们在平时工作中非常常见的设计,同时也是面试中要求实现的高频题。很有必要掌握以备不时之需。这里总结了几种布局方式,欢迎大家补充。

修改 css 就可实现 位置调换 ,如下:

优点 : 交换 <div class="sidebar">固定</div> 、 <div class="main">自适应</div>顺序 ,实现主要内容优先加载渲染。

缺点 :absolute 定位,脱离文档流,当 sidebar 列的高度,超过 main 列的高度,会遮住下面的元素。需要给父盒子设置 overflow 属性。

也支持位置调换:

缺点 :不能实现主要内容优先加载渲染。

位置调换:

这里有一点需要注意: .sidebar 没有设置高度,会和 .container 保持一样的高度。 .container 的高度是被 .main 撑开的,也就是和 .main 高度一样。

位置调换:

这里 .main 和 .sidebar 高度不单独设置的话,也是同样的高度。

位置调换:

位置调换:

这里让 .main 成为 BFC 主要是消除 .sidebar 因 float 带来的影响,只要能让 .main 成为 BFC 就行。

此外留给大家一个思考题,还有没有其他方式呢?

你可以使用CSS3中的分栏属性—— columns,格式为:columns:column-width column-count  ,其中column-width 为每栏的宽度,column-count 为列数。(注:IE6/7/8/9不支持)举例:

<!DOCTYPE html>

<html>

<head>

<style> 

/* 分成3栏,每栏宽100px,高度为300px */

.newspaper {

    height: 300px

    columns: 100px 3

    -webkit-columns: 100px 3 /* Safari and Chrome */

    -moz-columns: 100px 3 /* Firefox */

}

</style>

</head>

<body>

<div class="newspaper">

人民网北京2月24日电 (记者 刘阳)国家发展改革委近日发出通知,决定自2月25日零时起将汽、柴油价格每吨分别提高300元和290元,折算到90号汽油和0号柴油(全国平均)每升零售价格分别提高0.22元和0.25元。

此次国内成品油价格调整幅度,是按照现行国内成品油价格形成机制,根据国际市场油价变化情况确定的。去年11月16日国内成品油价格调整以来,受市场预期欧美经济复苏前景向好以及中东局势持续动荡等因素影响,国际市场原油价格先抑后扬,2月上旬WTI和布伦特原油期货价格再次回升至每桶95美元和115美元以上。虽然近两日价格有所回落,但国内油价挂钩的国际市场三种原油连续22个工作日移动平均价格上涨幅度已超过4%,达到国内成品油价格调整的边界条件。

通知指出,这次成品油调价后,国家将按照已建立的补贴机制,继续对种粮农民、渔业(含远洋渔业)、林业、城市公交、农村道路客运(含岛际和农村水路客运)等给予补贴。同时,为保证市场物价基本稳定,防止连锁涨价,对与居民生活密切相关的铁路客运、城市公交、农村道路客运(含岛际和农村水路客运)价格不作调整。

通知要求,中石油、中石化、中海油三大公司要组织好成品油生产和调运,保持合理库存,加强综合协调和应急调度,保障成品油供应。各级价格主管部门要加大市场监督检查力度,依法查处不执行国家价格政策,以及囤积居奇、造谣惑众、合谋涨价、搭车涨价等违法行为,维护正常市场秩序。

</div>

</body>

</html>

如果容器的宽度和高度不确定,你还可以用JS来动态赋值给容器。