我有一个img标签,它包含一个图像,需要缩小到最大宽度:200px或最大高度:200px,这取决于图像是高还是宽。我的当前代码:
CSS:
div#music_artwork {
position: relative;
width: 200px;
height:200px;
background:#eee;
}
.img-container {
position: relative;
overflow: hidden;
width:200px;
height:200px;
}
img {
position: absolute;
top: -9999px;
bottom: -9999px;
left: -9999px;
right: -9999px;
margin: auto;
}
HTML:
<div id="music_artwork">
<div class="img-container">
<img class="first" src="http://entertainmentmv.nl/wp-content/uploads/2014/06/breaking-1.png">
</div>
</div>
您将看到两个包含图像的容器。其中一个高,一个宽。我正在寻找一种在没有JavaScript的情况下组合这些代码的方法。
JSFiddle中的代码(http://jsfiddle.net/L9BnL/298/)
CSS目前无法检测图像的方向并根据该信息应用不同的规则。但是,如果您能够更改HTML并使用背景图像而不是img标记,则可以通过使用background-size: cover;
轻松解决此问题。此外,所需的CSS总量要清晰得多。
请不要:这目前仅适用于Chrome和Opera,在Safari中有部分支持。Firefox和IE还不支持这个功能。看见http://caniuse.com/#search=cover了解更多信息
.img-container {
width: 200px;
height: 200px;
margin: 20px;
background-size: cover;
}
<div class="music_artwork">
<div class="img-container" style="background-image: url('http://entertainmentmv.nl/wp-content/uploads/2014/06/breaking-1.png');">
</div>
</div>
<div class="music_artwork" style="margin-top:20px;">
<div class="img-container" style="background-image: url('http://cdn1.sciencefiction.com/wp-content/uploads/2013/08/Bryan-Cranston.jpg');">
</div>
</div>