div的敏感背景图象与内在图象一起

时间:2014-02-24 23:50:23

标签: html css image responsive-design twitter-bootstrap-3

我想制作一个包含img的div的响应式背景图片: 像这样:

responsive img

我正在使用bootstrap。 这是HTML:

<div class="col-lg-5 col-md-5 col-sm-10 col-xs-10">
  <div class="device-laptop">
     <img src="img/test.jpg"/>
  </div>
</div>

这是css:

device-laptop{
  background: url('../img/macpro.jpg') no-repeat;
  width: 363px;
  height: 208px;
  padding: 12px 45px 23px 43px;
  background-size:100%;
}

.device-laptop img{
  width: 274px;
  height: 172px;
}

这是正常形式。现在我想让这个响应,所以当背景图像改变时,里面的图像也会改变。反正有没有实现这个目标?

我试过了:

.device-laptop{
  background: url('../img/macpro.jpg') no-repeat;
  /*width: 363px;*/
  background-size:100%;
  height: 208px;
}

这使得背景图像具有响应性但是如何使图像与背景图像平行? 日Thnx

2 个答案:

答案 0 :(得分:1)

编辑:奇怪,从提供的CSS中,.device-laptop似乎具有固定的宽度和高度。不知道它会如何流动呢?

无论如何,使用@papa提到的background-size:contain选项

..如果你可以改变你的标记。以下将完成这项工作。

小提琴:http://jsfiddle.net/Varinder/wf3U8/1/

HTML

<div class="some-awesome-laptop">
    <div class="some-awesome-wallpaper-wrapper">
        <img src="http://placehold.it/250x150&text=text" class="some-awesome-wallpaper" />
    </div>
</div>

CSS

.some-awesome-laptop {
    background-image:url("http://placehold.it/270x180/aaa&text=a");
    background-repeat:no-repeat;
    width:270px;
    max-width:100%;
    margin:0 auto;
    height:0;
    overflow:hidden;
    padding-bottom:66%; /* aspect ratio of the image: (180/270)*100 */
    position:relative;

    -webkit-background-size:contain;
    -moz-background-size:contain;
    background-size:contain;

}

.some-awesome-wallpaper-wrapper {
    padding:10px;
}

.some-awesome-wallpaper { 
    max-width:100%;
    display:block;
}

答案 1 :(得分:0)

使用background-size:coverbackground-size:contain来满足您的需求。封面可能是更好的选择。