【问题标题】:How do I keep floated elements flopping down without using a fixed width?如何在不使用固定宽度的情况下保持浮动元素向下翻转?
【发布时间】:2012-03-09 07:08:47
【问题描述】:

我正在设计一系列表单行。每个行 div 都有一个固定宽度的标签 div 和一个可以包含任意数量的 float: left 元素的内容 div。

示例标记是:

<div class="Row">        
    <div class="Label">Label Here</div>        
    <div class="Content">            
        <div class="Item">Short Content</div>        
    </div>        
</div>    
<div class="Row">        
    <div class="Label">Label Here</div>        
    <div class="Content">            
        <div class="Item">
            Long Content ... Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris id eros magna. Suspendisse eu diam nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce eu neque massa.
        </div>                
    </div>        
</div>

到目前为止的CSS是:

.Row {
    clear: left;
    padding: 10px;
}

.Label {
    float: left;
    width: 150px;
}

.Content {
    float: left;
}

.Content .Item {
    float: left;
}

jsfiddle 在这里:http://jsfiddle.net/vVy5J/2/

只要内容 div 的内容不大于行中的剩余宽度,这看起来是正确的。如果是,则内容 div 会“翻转”到标签下方并紧贴行 div 的左边缘:http://screencast.com/t/Iknv98R9

我需要长内容 div 来换行,但仍靠在行的顶部并与标签的右边缘齐平。

传统的解决方案是给内容 div 一个固定的宽度。但这不会飞到这里,因为行宽会根据浏览器窗口大小等而变化,并且内容 div 需要从标签 div 的右边缘延伸到包含行 div 的右边缘。

要求:我只能在行 div 内更改标记。内容必须是元素,所以 text-indent 对我不起作用。我需要支持IE7+

【问题讨论】:

  • 这是我正在尝试的最终结果的记事本模型:screencast.com/t/J72UO0QKs
  • 我暗示但未提及的另一个要求:行 div 需要在内容 div 换行时垂直拉伸,以便它尽可能高,但不能再高了。

标签: html css css-float


【解决方案1】:

您可以将 position:relative; 放在 Row 上,将 position:absolute; 放在 Label 上,以便将其从文档流中取出,然后将 margin-left:150px 放在 Content 上(或者它应该有多宽)。

如果标签有可能高于内容,那就不好了。

【讨论】:

  • 这是个好主意。我把它放在fiddle 中。看看它是否适合你。
【解决方案2】:

您可以使用简单的定位技巧。 #row 必须是相对的,内容是绝对的,left: 150px。

.Row
{
    ...
    position: relative;
}

.Content
{
    ...
    position: absolute;
    left: 150px;
}

jsfiddle

【讨论】:

  • 关闭,但没有 cigar :\ 如果内容 div 是 position: absolute,它不会影响行高,因此行 div 不会拉伸到适合,内容会翻出在下一行:screencast.com/t/gPniwOSdpi
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-28
  • 1970-01-01
  • 2021-09-26
  • 2011-08-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多