我一直试图将我的网站转换为flexbox,而且我遇到了麻烦。我能够使用花车的一个元素,我现在不能,因为浮动在使用flexbox时不起作用。
基本上,当你将鼠标悬停在它上面时,我的图像会突然出现。我已经工作了,但背景颜色没有出现在图像上方。我试图弄清楚如何让它出现在图像上,我试图给元素一个非常高的z-index和一堆其他的东西,我来了空手。我希望我可以使用CSS背景图像而不是html图像,但我无法在css中进行缩放和维护透视(必须保持背景图像的大小,而不是元素内容)
这是我的示例代码:
* {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.dldoc p {
-moz-transition: all 0.3s ease;
-o-transition: all 0.3s ease;
-webkit-transition: all 0.3s ease;
-ms-transition: all 0.3s ease;
transition: all 0.3s ease;
}
.docwrapper {
display: flex;
justify-content: space-between;
max-width: 100%;
height: 100%;
}
.dldoc {
margin: .5em;
display: block;
text-decoration: none;
overflow: hidden;
min-width: 30vw;
height: 55vw;
}
.dldoc p {
height: 30vh;
background: #f0f;
padding: 0 8px;
text-decoration: none;
width: auto;
z-index: 10000;
}
.dldoc strong {
text-transform: uppercase;
font-size: 7vw;
font-weight: bold;
}
.dldoc em,
.dldoc p {
font-size: 4.5vw;
}
.dldoc:hover>p {
margin-top: -40vw;
}
.dlmap {
padding: 0;
height: 150px;
margin-bottom: 1em;
}
.dlmap:hover,
.dlmap:active {
top;
}
.dldoc img {
z-index: 100;
height: 55vw;
}
.dlmap img,
.dldoc img {
width: 100%;
}
.dlmap strong {
position: absolute;
top: 0;
left: 0;
padding: 5px;
color: #bbb;
background: #233;
}
.dlmap a {
text-transform: uppercase;
left: 0;
z-index: 1;
position: absolute;
top: 150;
height: 75px;
padding: 5px;
background: #233;
font-size: 1.5em;
text-decoration: none;
color: #7d1;
width: 100%;
}
.dlmap a:hover {
background: #7d1;
color: #233;
}

<div class="docwrapper">
<a href="#" class="dldoc" id="resumedl"><img src="https://i.imgur.com/eHu2WOp.png" alt="">
<p><strong>download</strong><br>test1<br>PDF<br><br><em>test text</em></p>
</a>
<a href="#" class="dldoc" id="foliodl"><img src="https://i.imgur.com/eHu2WOp.png" alt="">
<p><strong>download</strong><br>test2<br>ZIP<br><br><em>test text</em></p>
</a>
</div>
&#13;
答案 0 :(得分:1)
这是一个常见的重叠问题,之前已被问到过。关键是使用绝对定位覆盖和父对象的相对定位。将其推出视图并将其设置为动画,通常使用top
。
在父级上使用相对定位的要点是包含绝对定位元素。绝对定位元素将相对于最近定位的祖先元素定位自己,如果没有,则将是浏览器/视口窗口。除此之外,您可以使用top
的百分比值,将叠加层移入/移出视图,并设置叠加层的高度/宽度。
我已使用/**/
标记了对CSS的所有修改/添加。
* {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.dldoc p {
-moz-transition: all 0.3s ease;
-o-transition: all 0.3s ease;
-webkit-transition: all 0.3s ease;
-ms-transition: all 0.3s ease;
transition: all 0.3s ease;
}
.docwrapper {
display: flex;
justify-content: space-between;
max-width: 100%;
height: 100%
}
.dldoc {
position: relative; /**/
margin: .5em;
text-decoration: none;
overflow: hidden;
min-width: 30vw;
height: 55vw;
}
.dldoc p {
position: absolute; /**/
top: 100%; /**/
margin: 0; /**/
height: 100%;
background: #ff00ff;
padding: 0 8px;
text-decoration: none;
width: auto;
/* z-index: 10000 */
}
.dldoc strong {
text-transform: uppercase;
font-size: 7vw;
font-weight: bold;
}
.dldoc em,
.dldoc p {
font-size: 4.5vw;
}
.dldoc:hover>p {
top: 0; /**/
}
.dlmap {
padding: 0;
height: 150px;
margin-bottom: 1em
}
.dlmap:hover,
.dlmap:active {
top
}
.dldoc img {
z-index: 100;
height: 55vw
}
.dlmap img,
.dldoc img {
width: 100%
}
.dlmap strong {
position: absolute;
top: 0;
left: 0;
padding: 5px;
color: #bbb;
background: #233
}
.dlmap a {
text-transform: uppercase;
left: 0;
z-index: 1;
position: absolute;
top: 150;
height: 75px;
padding: 5px;
background: #233;
font-size: 1.5em;
text-decoration: none;
color: #7d1;
width: 100%
}
.dlmap a:hover {
background: #7d1;
color: #233
}
&#13;
<div class="docwrapper">
<a href="#" class="dldoc" id="resumedl"><img src="https://i.imgur.com/eHu2WOp.png">
<p><strong>download</strong><br/>test1<br/>PDF<br/><br/><em>test text</em></p>
</a>
<a href="#" class="dldoc" id="foliodl"><img src="https://i.imgur.com/eHu2WOp.png">
<p><strong>download</strong><br/>test2<br/>ZIP<br/><br/><em>test text</em></p>
</a>
</div>
&#13;