我有一种情况,我有一些绝对位置的div(用于3D翻转效果)。 因此,父div的高度非常小,绝对内容在较低内容之上溢出。由于回应原因,无法真正设置固定高度。
我打算给孩子div相对位置,然后在jquery的帮助下收集高度,并根据它设置高度。但是确实有很多元素和vars用于响应。有没有其他更优雅的方式让孩子适合父母?
html
<div class="parent">
<div class="title">Title</div>
<div class="absolute">
<p>Absolute</p>
<p>Absolute</p>
<p>Absolute</p>
</div>
<div class="clearboth"></div>
</div>
css
.parent {
position:relative;
background-color:yellow;
}
.absolute {
position:absolute;
}
.absolute p {
padding:5px;
}
.clearboth {
clear:both;
}
答案 0 :(得分:0)
如果您不介意.absolute
位置,请尝试将其设为relative
:
.absolute {
position:relative;
}
答案 1 :(得分:0)
好的,正如我所料,这是另外一个&#34; 99个100个答案&#34;。根据经验,请记住,如果您正在考虑响应式设计,使用绝对位置的可能性非常小,接近0,因为它&#39 ;与响应性完全相反,除非您计划处理大量媒体查询。
所以,在你的案例和你的样本中,你有:
body {
background: #ccc;
}
.flip {
-webkit-perspective: 800;
width: 20vw;
height: 20vh;
position: relative;
margin: 50px auto;
display:inline-block;
}
.flip .card.flipped {
-webkit-transform: rotatex(-180deg);
}
.flip .card {
width: 100%;
height: 100%;
-webkit-transform-style: preserve-3d;
-webkit-transition: 0.5s;
}
.flip .card .face {
width: 100%;
height: 100%;
position: absolute;
-webkit-backface-visibility: hidden;
z-index: 2;
font-family: Georgia;
font-size: 3em;
text-align: center;
line-height: 200px;
}
.flip .card .front {
position: absolute;
z-index: 1;
background: black;
color: white;
cursor: pointer;
}
.flip .card .back {
-webkit-transform: rotatex(-180deg);
background: blue;
background: white;
color: black;
cursor: pointer;
}
您可以添加一些min-width
或max-width
(以像素为单位)或添加media-query
来更改某些时候的vh/vw
行为,但是你去了,完全响应行为(显然)没有绝对的立场。
永远记住:如果你想使用position:absolute
,它应该在position:relative
的容器中。虽然有例外,但它是一个简单的规则,可以在定位元素时为您省去很多麻烦。