Gar*_*ary 22 css layout semantic-markup
我有不同数量的内联块div,我想集体占用他们父母的100%.可以在没有JavaScript的情况下完成吗?我能想到的唯一方法是使用表格,但使用表格仅用于布局目的当然是不好的做法.
|----------------------|
|{ div 1 }{ div 2 }|
or
|{div 1}{div 2}{div 3}|
|----------------------|
Run Code Online (Sandbox Code Playgroud)
我也试过,{ display:block; float:left; }但它似乎没有什么区别.
Ben*_*ull 27
您可以display:table-cell在内部div上使用它来执行此操作.对于浏览器来说,内部div的行为类似于表格单元格,它还需要两层包含元素:一个用作表格,另一个用作表格行.
对于这样的结构:
<div class="outer">
<div class="middle">
<div class="inner">Item 1</div>
<div class="inner">Item 2</div>
<div class="inner">Item 3</div>
<div class="inner">Item 4</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
使用这个CSS:
div.inner {display:table-cell;}
div.outer {display:table;}
div.middle {display:table-row;}
Run Code Online (Sandbox Code Playgroud)
一个很好的结构是包含在DIV中的UL:DIV用作表,UL用作行,LI用作表格单元.
旧版浏览器不支持这种技术 - 对于IE8以上的任何东西,你完全没有运气.
如果您需要更多示例代码,请告诉我们!
接受的答案错过了一个重要的CSS属性,这是必要的工作:
table-layout:fixed;
这是正确的答案:
HTML:
<div class="outer"><div class="middle">
<div class="inner">Item 1</div>
<div class="inner">Item 2</div>
<div class="inner">Item 3</div>
<div class="inner">Item 4</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
div.outer {display:table; table-layout: fixed;}
div.middle {display:table-row;}
div.inner {display:table-cell;}
Run Code Online (Sandbox Code Playgroud)
您可以在这里使用css3的好处.我现在也面临这个问题我已经使用下面的示例代码修复了这个问题
.parent-container {
padding: 0;
margin: 0;
list-style: none;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-flex-flow: row wrap;
justify-content: space-around;
-webkit-justify-content: space-around;
flex-wrap: nowrap;
-webkit-flex-wrap: nowrap;
}
.child-item {
margin: 5px;
text-align: center;
padding: 10px;
background-color: red;
color: #fff;
}Run Code Online (Sandbox Code Playgroud)
<ul class="parent-container">
<li class="child-item">1</li>
<li class="child-item">2</li>
<li class="child-item">3</li>
<li class="child-item">4</li>
<li class="child-item">5</li>
<li class="child-item">6</li>
<li class="child-item">7</li>
</ul>Run Code Online (Sandbox Code Playgroud)
感谢和问候,Lingeshram