【发布时间】:2014-02-14 16:05:05
【问题描述】:
我有一个要求,我需要将宽度应用于父元素,该宽度等于第一个子元素的宽度。如果父元素只有一个子元素,则可以使用display: inline-block 或float: left 轻松实现这一点。但是我在一个 div 中有两个以上的子元素。像这样的:
<div class="main">
<div class="first">first</div>
<div class="value">valuevalue</div>
</div>
现在,如果我将display: inline-block 应用于父元素,那么它的宽度与第二个子元素相同。
为了不发生这种情况,我在第二个子元素上尝试了break-word、word-break css 属性,但仍然没有用。
我想要得到的内容如下图所示:
一些要点:
- 父元素的宽度应该等于第一个子元素。
- 父元素的高度应该等于所有子元素的总和。
- 我不知道第一个子元素的宽度。
- (编辑)第一个子元素有一些固定的宽度和高度。我不知道这些值。
我想只使用 css 来做到这一点。欢迎使用 CSS3。 (我知道如何使用 javascript 来做到这一点)
【问题讨论】:
-
你必须保持这个精确的 DOM 结构吗?
-
您的第二个要求“父元素的高度应该等于第二个/最后一个子元素”似乎暗示
.value元素应该以某种方式确定父容器的高度,这似乎也暗示父容器应该忽略.first元素的高度。请澄清一下,谢谢。 -
@MarcAudet 我实际上只是意味着父母应该根据编号自动增加高度。的儿童元素。我会更新我的帖子。
-
我不认为它可以只使用纯 CSS 来完成。你可能有类似的东西......但不完全是你的要求。
-
我得到了你想要的,用更少的代码,纯 CSS,但它是 CSS3,它不是太跨浏览器 :( 看我的回答,它不适合你,但它会在未来所以我发布了它,因为它很有趣xD