在图像背景颜色css的flexbox元素

时间:2018-01-19 22:12:06

标签: html css image flexbox background-color

我一直试图将我的网站转换为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;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

这是一个常见的重叠问题,之前已被问到过。关键是使用绝对定位覆盖和父对象的相对定位。将其推出视图并将其设置为动画,通常使用top

在父级上使用相对定位的要点是包含绝对定位元素。绝对定位元素将相对于最近定位的祖先元素定位自己,如果没有,则将是浏览器/视口窗口。除此之外,您可以使用top的百分比值,将叠加层移入/移出视图,并设置叠加层的高度/宽度。

我已使用/**/标记了对CSS的所有修改/添加。

&#13;
&#13;
* {
  -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;
&#13;
&#13;