图像不尊重它的父母的大小

时间:2014-06-18 10:47:08

标签: html css

我正在使用flexslider,并且我将img包装在显示为内联块的div中。这样,我可以在同一个div中包含其他元素(悬停按钮)并相对于它们定位它们。 它在Chrome上运行正常,但在Mozilla上,图像似乎忽略了对其父元素设置的任何高度或宽度限制并以完整大小显示。 这是一个模仿问题的快速编码器 http://codepen.io/spylefkaditis/pen/HysBi

这再次适用于Chrome,但不适用于Mozilla。 有什么想法吗?

HTML

<ul>
  <li>
    <div class="image">
      <img src="http://lorempixel.com/1200/1800/" alt="" />
<!--      <a href="#" class="btn">button</a>
      <div class="modal">
        <p class="message"></p>
      </div>-->
    </div>
  </li>
</ul>  

SCSS

*{
  box-sizing:border-box;
}
html,body{
  height:100%;
  width:100%;
}

ul{
  margin:0;
  padding: 0;
  width: 100%;
  height:100%;
  list-style-type:none;


  li{
    display:inline-block;
    position:relative;
    height:100%;
    width: 100%;
    text-align:center;

    .image{
      position:relative;
      display:inline-block;
      text-align:center;

      img{
        display: inline-block;
        max-height:100%;
        width:auto;
      }
/*      
      .btn{
        position:absolute;
        left:0;
        bottom:0;
        background-color:black;
      }
      */
    }
  }
}

1 个答案:

答案 0 :(得分:0)

您需要将高度值设置为.image元素,如下所示:

.image{
  position:relative;
  display:inline-block;
  text-align:center;
  height: inherit;
}

否则,div.image会扩展其高度以容纳内容,在本例中为大图像。

请参阅演示:http://codepen.io/anon/pen/Hptco

我在Firefox和Chrome中对此进行了测试,似乎工作正常。