scale and crop image 发表于 2017-06-06 图片水平,垂直居中,切掉上下多余部分,高度随着宽度变化 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>DIV 高度随着宽度按照比例变化 </title></head><style>* { box-sizing: border-box;}html,body { padding: 0; margin: 0;}.out { width: 30%; border: 1px solid transparent; position: relative;}.ratio { width: 100%; border: 1px solid transparent; margin-top: 52%;}.img { position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; border: 1px solid transparent; overflow: hidden;}.img img { position: absolute; margin: auto; top: -200%; right: -200%; bottom: -200%; left: -200%; width: 100%;}</style><body> <!-- .out 是外层的div,宽度百分比设定,高度与宽度成一定比例变化, 它是靠内部的.ratio div支撑起来的 --> <!-- .ratio 是宽高成比例的div, 原理是利用margin在设定百分比的时候, 始终是根据父元素的width来设定的,所以height: 0px;margin-top: 52% --> <div class="out"> <div class="ratio"> </div> <div class="img"> <img src="h.png" alt=""> </div> </div> <hr> <div class="out"> <div class="ratio"> </div> <div class="img"> <img src="v.png" alt=""> </div> </div></body></html>