我在容器div
内有两个div
&我试图将其中一个子div放在中心(垂直和水平),另一个放在容器的左上角/右下角。
子div
只包含文本。我尝试了一些东西,并且能够单独应用这两种样式,即如果只有两个div
中的一个存在,它将按要求工作。我无法弄清楚如何同时应用这两种样式。我试着玩位置和z-index,但由于我有限的CSS
知识,我无法取得突破。
更新:我希望文本以w.r.t为中心到外部容器。
Top left works
<div class="container">
<div class="topLeft">value</div>
</div>
Center Works
<div class="container">
<div class="center">label</div>
</div>
Both don't work simulaneously
<div class="container">
<div class="topLeft">value</div>
<div class="center">label</div>
</div>
.container {
border-width:1px;
width:200px;
border-style:solid;
display:table;
height:300px;
}
.center {
text-align:center;
display:table-cell;
vertical-align:middle;
z-index:5;
}
.topLeft {
text-align:left;
display:table-cell;
vertical-align:top;
z-index:10;
}
http://jsfiddle.net/jugal/E5zGw/
我主要针对IE8 +和Chrome,并且可以根据需要灵活地更改html和css
答案 0 :(得分:1)
只需将.container
div position: relative;
然后position: absolute;
提供给子div,即可使用left
和top
属性同时定位它们:
JsFiddle:http://jsfiddle.net/E5zGw/14
如果你选择这条路线,你只需要摆脱display: table-cell
。
答案 1 :(得分:0)
您的单元格在<TD>
中的行为类似于<TR>
。
将DIVS封装在像TableRow
这样的内容中jsFiddle with background-colors
CSS补充道:
.table-row {
display:table-row;
clear:both;
}
HTML添加:
<div class="container">
<div class="table-row">
<div class="topLeft">value</div>
</div>
<div class="table-row">
<div class="center">label</div>
</div>
</div>
女巫就像:
<table style="width:100%">
<tr>
<td valign="top" align="left">value</td>
</tr>
<tr>
<td valign="middle" align="center">label</td>
</tr>
</table>
现在,让我尝试按照您认为您希望它适合的方式来适应它:
<div class="container">
<div class="topLeft">value</div>
<div class="center">label</div>
</div>
.topLeft {
background-color:blue;
text-align:left;
display:table-cell;
vertical-align:top;
z-index:999;
position:absolute;
width:200px;
}