【问题标题】:html/css - create self expanding dynamic divhtml/css - 创建自扩展动态 div
【发布时间】:2011-10-25 16:47:07
【问题描述】:

我有示例 div 结构:

<div id="outer" style="width:600">
<div class="inner"></div> <!--row1-->
<div class="inner"></div>
<div class="inner"></div><br/>
<div class="inner"></div> <!--row2-->
<div class="inner"></div>
</div>

外部 div 具有固定宽度。内部 div 是动态生成的,因此每行可能有 1、2、3 个等 div。

是否可以根据每行的数量调整内部 div 的大小(也许在清晰的 css 中?)? 因此,在示例中,第一行 div 的宽度为 200px,第二行的宽度为 300px。

【问题讨论】:

  • 可能是的,但是,听起来您想以类似格式的表格重新显示数据。如果是这种情况并且数据是表格的,请考虑使用表格。
  • 或者像 grid960 这样的网格布局 :) 960.gs

标签: html css


【解决方案1】:

您可以使用display: table-cell 执行此操作。浏览器支持:http://caniuse.com/css-table

见:http://jsfiddle.net/thirtydot/x5ZFg/

HTML: (与您的问题略有不同)

<div id="outer">
    <div class="innerWrap"> <!--row1-->
        <div class="inner"></div>
        <div class="inner"></div>
        <div class="inner"></div>
    </div>
    <div class="innerWrap"> <!--row2-->
        <div class="inner"></div>
        <div class="inner"></div>
    </div>
</div>

CSS:

#outer {
    width: 600px
}
.innerWrap {
    width: 100%;
    display: table;
    table-layout: fixed
}
.inner {
    display: table-cell;
    height: 50px;
    border: 1px dashed #f0f
}

【讨论】:

  • 感谢您的回答,但表格单元格在 ie 下不起作用 :( 它显示为普通 div(块)。还有其他方法吗?
  • 它应该在 IE8/9 中工作。如果不是,则浏览器未处于“标准模式”。您是否有一个有效的文档类型作为第一行,例如&lt;!DOCTYPE html&gt;?当您按 F12 调出开发者工具时,正在使用什么“浏览器模式”/“文档模式”? (在 IE6/7 下它永远不会工作,那些浏览器不支持这个)
  • 我有&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;并在ie7下测试,但我发现了这个stackoverflow.com/questions/249103/…
  • 那个文档类型很好。这个答案几乎涵盖了您现在所处的情况:stackoverflow.com/questions/6956365/…。您想要 IE7 的 JavaScript 修复程序吗?如果是这样,您是否使用了诸如 jQuery 之类的 JavaScript 库?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-20
  • 2018-10-14
相关资源
最近更新 更多