【发布时间】:2015-12-30 10:54:48
【问题描述】:
我已经阅读了this Q&A 及其链接的博客文章。这里的问题是,如果您设置了宽度并且动态设置了高度,则所引用的方法仅有效。但是如果你需要相反的情况——知道高度但不知道宽度,你怎么能做到呢?
我有一个在 CSS 中指定的视觉元素,我需要在多个上下文中始终如一地出现。 (为了本练习的目的,它也可以是一个红色方块。)上下文已经设定了高度——例如。一个高度为 x 的导航,一个高度为 y 的列表项,等等。因此,元素的宽度需要基于高度——而不是相反。
我尝试颠倒链接文章中提到的方法(使用height 而不是width,和padding-right 而不是padding-top),但它不起作用——元素最终没有宽度,因此红色方块 (.my-box .content) 不会出现:
HTML:
<div class="outer">
<div class="my-box">
<div class="content">
</div>
</div>
<div class="more-stuff">
Some more stuff goes here
</div>
</div>
CSS:
.outer {
background-color: white;
height: 72px;
padding: 12px;
display: flex;
flex-direction: row;
}
.my-box {
height: 100%;
position: relative;
}
.my-box::before {
content: "";
display: block;
padding-left: 100%;
}
.content {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
background-color: red;
}
.more-stuff {
flex: 1 1 auto;
margin-left: 12px;
}
有谁知道这是否可以在没有 JS 或每次硬编码维度的情况下实现?谷歌搜索没有发现任何适用于动态高度的东西——即使是引号。 :(
【问题讨论】: