Ben*_*min 9 html css position css-position vertical-alignment
这是一个我正在研究的非常简单的条形图,
<div id="container">
<div style="display:inline-block;">
</div>
<div style="display:inline-block;">
</div>
<div style="display:inline-block;">
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
如果我将容器设置为relative而内部div设置为absolute和bottom:0,那么它们都会重叠.它们在没有绝对定位的情况下很好地流动,但条形图是颠倒的.
注意:我的意图是保留条形的内联流,而不必明确指定水平位置.
这是问题的一个更好的例子.
http://jsfiddle.net/benstenson/NvvV6/1/

1) correct orientation but vertical alignment is top
<div id="no-content" class="container">
<div class="a"></div>
<div class="b"></div>
<div class="c"></div>
</div>
2) wrong orientation, vertical alignment top
<div id="has-content" class="container">
<div class="a">a</div>
<div class="b">b</div>
<div class="c">c</div>
</div>
3) mixed orientation, alignment is crazy
<div id="mixed" class="container">
<div class="a">a</div>
<div class="b">b</div>
<div class="c"></div>
</div>
4) correct orientation and correct alignment but<br/>
flow has been lost and horizontal position must be explicit
<div id="absolute" class="container">
<div class="a">a</div>
<div class="b">b</div>
<div class="c"></div>
</div>
5) here we go!
<table class="container">
<tr>
<td><div class="a">a</div></td>
<td><div class="b">b</div></td>
<td><div class="c"></div></td>
</tr>
</table>??????????????????????????????????
Run Code Online (Sandbox Code Playgroud)
CSS
body {padding:1em;font-family:sans-serif;font-size:small;}
.container {
height:2.5em;width:50%;margin-bottom:1em;
background-color:lightgray;
font-size:larger;
font-weight:bold;
text-transform:Uppercase;
}
div.container > div {
width:32%;
display:inline-block;
background-color:black;
color:cyan;
}
#absolute { position:relative;}
#absolute > div {position:absolute;bottom:0px;opacity:.3;}
.a {height:50%;}
.b {height:60%}
.c {height:80%;}
td{width:33.333%;vertical-align:bottom;}
td > div{?background-color:black;?color:cyan;}?
Run Code Online (Sandbox Code Playgroud)
那么有没有更好的方法来实现这一点,比如使用webkit flexbox或者什么?
这适用于我的浏览器(Chrome 19)

html
<div id="container">
<div id="a">a</div>
<div id="b">b</div>
<div id="c">c</div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
#container {
height:10em;
width:90%;
border:1px solid black;
display:-moz-box; /* Firefox */
display:-webkit-box; /* Safari and Chrome */
display:box;
-webkit-box-align:end;
}
#container > div {
width:34%;
border:1px solid red;
-moz-box-flex:1.0; /* Firefox */
-webkit-box-flex:1.0; /* Safari and Chrome */
box-flex:1.0;
}
#a {height:20%}
#b {height:50%}
#b {height:70%}
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/benstenson/m6vR7/
| 归档时间: |
|
| 查看次数: |
15441 次 |
| 最近记录: |