好吧,我知道这是一个老问题,在Stackoverflow上有一些答案,但似乎没有包含解决方案,或者我不适合理解答案提供。垂直和水平对齐嵌套的CSS中的内容
我想要在Blueprint CSS的帮助下创建的页面上对齐一个div的内容,水平和垂直居中,如下图所示,我无法弄清楚如何。我测试的大多数变体都使用某种绝对定位,所有div最终都在屏幕中间。
好吧,我知道这是一个老问题,在Stackoverflow上有一些答案,但似乎没有包含解决方案,或者我不适合理解答案提供。垂直和水平对齐嵌套的CSS中的内容
我想要在Blueprint CSS的帮助下创建的页面上对齐一个div的内容,水平和垂直居中,如下图所示,我无法弄清楚如何。我测试的大多数变体都使用某种绝对定位,所有div最终都在屏幕中间。
尝试应用这些样式,其中文本应居中
.mydiv{
display: table-cell;
vertical-align: middle;
text-align: center;
}
谢谢,其他大多数例子都包含了这一点,但我根本不明白要将其剥离到所需的基础。 –
我想提出一个替代解决方案的股利,使用这个CSS的定位:
.alignh {
display: table;
margin: 0 auto;
height: 100%;
}
.alignv {
display: table-cell;
vertical-align:middle;
}
它需要额外的标记,例如:
<div class="alignh">
<div class="alignv">
<p>I want to be centered horizontally and vertically</p>
</div>
</div>
它为什么会有用?因为display:table-cell
和vertical-align: middle
不能在具有position:absolute
的div中工作,这在制作列和行时是可取的。此外,将一个div与display-table
& vertical-align
组合在一个具有绝对位置的div内部可能会很费力,因为您可能无法使内部div在不知道大小的情况下填充整个外部div(这可能取决于视口) 。
的完整代码...
HTML:
<div class="left col">
<p>I want to be left aligned</p>
<p>Me too</p>
<p>More text</p>
</div>
<div class="right col">
<div class="top row">
<div class="alignh">
<div class="alignv">
<p>I want to be centered horizontally and vertically</p>
</div>
</div>
</div>
<div class="bottom row">
<p>Just some more text...</p>
</div>
</div>
CSS:
.col {
top: 0;
bottom: 0;
}
.row {
left: 0;
right: 0;
}
.row, .col {
overflow: hidden;
position: absolute;
border: 1px solid black;
}
.left.col {
left: 0;
width: 250px;
}
.right.col {
left: 250px;
right: 0;
}
.top.row {
top: 0;
height: 100px;
}
.bottom.row {
top: 100px;
bottom: 0;
}
.alignh {
display: table;
margin: 0 auto;
height: 100%;
}
.alignv {
display: table-cell;
vertical-align:middle;
}
你介意显示你的代码? – Hiral
请发布相关的HTML和CSS ......你试过了什么! – NoobEditor
你尝试过'display:table-cell;'with'vertical-align:middle;'? –