html – 如何在一个容器中底部对齐多个内联块div而不会丢失它们的流量?

前端之家收集整理的这篇文章主要介绍了html – 如何在一个容器中底部对齐多个内联块div而不会丢失它们的流量?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这是一个我正在研究的非常简单的条形图,
  1. <div id="container">
  2. <div style="display:inline-block;">
  3. </div>
  4. <div style="display:inline-block;">
  5. </div>
  6. <div style="display:inline-block;">
  7. </div>
  8. </div>

如果我将容器设置为relative,则将内部div设置为absolute&底部:0,然后它们都重叠.它们在没有绝对定位的情况下很好地流动,但条形图是颠倒的.

注意:我的意图是保留条形的内联流,而不必明确指定水平位置.

这是问题的一个更好的例子.

http://jsfiddle.net/benstenson/NvvV6/1/

  1. 1) correct orientation but vertical alignment is top
  2. <div id="no-content" class="container">
  3. <div class="a"></div>
  4. <div class="b"></div>
  5. <div class="c"></div>
  6. </div>
  7.  
  8. 2) wrong orientation,vertical alignment top
  9. <div id="has-content" class="container">
  10. <div class="a">a</div>
  11. <div class="b">b</div>
  12. <div class="c">c</div>
  13. </div>
  14.  
  15. 3) mixed orientation,alignment is crazy
  16. <div id="mixed" class="container">
  17. <div class="a">a</div>
  18. <div class="b">b</div>
  19. <div class="c"></div>
  20. </div>
  21.  
  22. 4) correct orientation and correct alignment but<br/>
  23. flow has been lost and horizontal position must be explicit
  24. <div id="absolute" class="container">
  25. <div class="a">a</div>
  26. <div class="b">b</div>
  27. <div class="c"></div>
  28. </div>
  29.  
  30. 5) here we go!
  31. <table class="container">
  32. <tr>
  33. <td><div class="a">a</div></td>
  34. <td><div class="b">b</div></td>
  35. <td><div class="c"></div></td>
  36. </tr>
  37. </table>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

CSS

  1. body {padding:1em;font-family:sans-serif;font-size:small;}
  2. .container {
  3. height:2.5em;width:50%;margin-bottom:1em;
  4. background-color:lightgray;
  5. font-size:larger;
  6. font-weight:bold;
  7. text-transform:Uppercase;
  8. }
  9. div.container > div {
  10. width:32%;
  11. display:inline-block;
  12. background-color:black;
  13. color:cyan;
  14. }
  15.  
  16. #absolute { position:relative;}
  17. #absolute > div {position:absolute;bottom:0px;opacity:.3;}
  18.  
  19. .a {height:50%;}
  20. .b {height:60%}
  21. .c {height:80%;}
  22.  
  23. td{width:33.333%;vertical-align:bottom;}
  24. td > div{​background-color:black;​color:cyan;}​

那么有没有更好的方法来实现这一点,比如使用webkit flexBox或者什么?

解决方法

绝对定位时适合我:
  1. <style type='text/css'>
  2. #container{
  3. position :relative;
  4. border :1px solid #000;
  5. height :60px;
  6. width :100px;
  7. }
  8. .b{
  9. position:absolute;
  10. width :20px;
  11. bottom :0
  12. }
  13. .b1{background:blue ;height:10px; left:0px}
  14. .b2{background:red ;height:30px; left:30px;}
  15. .b3{background:yellow;height:50px; left:60px}
  16. </style>
  17.  
  18. <div id="container">
  19. <div class='b b1'></div>
  20. <div class='b b2'></div>
  21. <div class='b b3'></div>
  22. </div>​​​​​​​​​​​​

Fiddle here.

猜你在找的HTML相关文章