【发布时间】:2016-02-25 19:47:27
【问题描述】:
我正在尝试实现某种流畅的布局,其中每个 DIV 的内容都垂直和水平居中。但是,我的中间行(A、B、C)一直存在垂直和/或水平对齐问题。
目标是让它像这样工作:
注意:如果有办法让我也可以选择将移动布局的“C”区域设置为流畅(无需更改 HTML,只需更改 CSS,这样我可以测试哪个选项效果最好),那将是一个奖励!
这是 HTML 的 sn-p:
<div class="page">
<div class="col col-top">top</div>
<div class="col col-mid">
<div class="col col-left">
<div class="centerBox"><div class='debugBox'></div></div>
</div>
<div class="col col-center">
<div class="centerBox"><div class='debugBox'></div></div>
</div>
<div class="col col-right">
<div class="centerBox"><div class='debugBox'></div></div>
</div>
</div>
<div class="col col-bottom">bottom</div>
</div>
我不确定是否真的需要带有“centerBox”类的“包装器”DIV(它们设置为display: table-cell,而每个col类都设置为display: table 表现类似于表格,但这会导致问题将这些区域放置为具有position: absolute 和左/右/上/下属性的百分比值。
例如,如果“C”区域设置为display: table,就会发生这种情况:
如果我将“C”区域更改为display: block;,那么它会填满整个中心区域,但是...
...水平和垂直对齐在其中中断。
使用“Ghost”DIV 元素(正如 Chris Coyier 的 css-tricks article,“Centering in the Unknown”中所讨论的那样)会更好地获得正确的对齐方式吗?
【问题讨论】:
-
有没有想过为此使用一个库?例如像引导程序?
-
你应该阅读使用 CSS Flexbox
-
@Thomas:tbh 我从来没有使用引导程序的经验。我希望有一个不依赖 Javascript 的解决方案(如果这与引导程序无关,请原谅我的无知!)但是您是否建议使用它更容易创建复杂的流体布局(各种屏幕尺寸的变化)?
标签: html css responsive-design vertical-alignment centering