【发布时间】:2015-08-05 07:23:57
【问题描述】:
我正在尝试创建适用于大多数移动浏览器的 3 列布局。不幸的是,Flex 无法正常工作。
对流式、固定、固定布局有很大帮助 (http://www.pagecolumn.com/liquidfixed/3_col_liquid-fix-fix.htm),但我确实需要固定、固定、流式。
目前无法完成这项工作,希望得到任何帮助。
【问题讨论】:
标签: css html css-float liquid-layout
我正在尝试创建适用于大多数移动浏览器的 3 列布局。不幸的是,Flex 无法正常工作。
对流式、固定、固定布局有很大帮助 (http://www.pagecolumn.com/liquidfixed/3_col_liquid-fix-fix.htm),但我确实需要固定、固定、流式。
目前无法完成这项工作,希望得到任何帮助。
【问题讨论】:
标签: css html css-float liquid-layout
当你想要最后一个元素流动时,你可以使用float:none;。
最后一个元素得到float:none; 和一个padding-left,等于其他两个固定div 的宽度。
HTML
<div class="fixed first">
fixed first
</div>
<div class="fixed second">
fixed second
</div>
<div class="fluid third">
fluid third
</div>
CSS
.fixed {float:left; }
.first {width:100px; height:100px; background-color:#ccc;}
.second {width:100px; height:100px; background-color:#ddd;}
.fluid { float:none; padding-left:200px; background-color:#eee; height:100px;}
这是demo
基于 cmets 的更新(仅在 CSS 中更改)
.fixed {float:left; }
.first {width:100px; height:100px; background-color:#ccc; margin-right:10px;}
.second {width:100px; height:100px; background-color:#ddd; margin-right:10px;}
.fluid { float:none; margin-left:220px; background-color:#eee; height:100px;}
这个概念也可以用margin代替padding。因此,您可以执行以下操作。我添加了一些边距来实现 div 之间的空间。固定div应该添加到流体div的margin-left的边距。
这是 jsfiddle 中更新的 demo。
【讨论】:
padding-right,正确的答案是padding-left。我已经更新我的答案是正确的。
尝试使用与“圣杯布局”相同的解决方案(两个侧边栏粘在左右两侧,中间有一个流体柱)。如果与左侧多列而右侧没有列一起使用,它也可以工作:
编辑:stackoverflow 答案是为网格构建的,我稍微更改了它以适应我的需要(固定/固定/流体/固定)...一旦找到它,我将发布编辑后的解决方案!
CSS fluid columns, fixed margins; the holy grail of holy grails (这个链接提供了一个完整的解释,包括一个例子)
另一个例子是 Matthew James Taylor 的这个版本: http://matthewjamestaylor.com/blog/ultimate-3-column-holy-grail-pixels.htm
您甚至可以使用此布局将流体列放在首位,或放在中间。
【讨论】: