使用css制作一个百分比宽度为完美正方形的图像

时间:2016-12-21 03:03:12

标签: javascript jquery html css image

您好我在容器中有一个设置为width: 100%的图像。

我想知道是否有任何方法可以产生高度,使其成为一个完美的正方形。

所以说原始图像宽450像素,高300像素。

css的宽度为100%,因此它会拉伸并填充容器,但图像仍为矩形。

是否有可能做一些css或jquery技巧来生成一个高度,使这个图像成为一个完美的suqare?

我不在乎图像是否被裁剪或拉伸并且看起来很时髦,我只需要它就是一个完美的正方形。

谢谢!

4 个答案:

答案 0 :(得分:1)

您可以使用以下jQuery

执行此操作
var img_width = $('#image').width();
$('#image').css({'height':img_width+'px'});

希望有所帮助。

答案 1 :(得分:1)

所以你可以延伸图像 - 这可以是一个CSS解决方案:

  1. 使用padding-top: 100%

  2. 制作基于宽度的方形容器
  3. 根据需要将图像拉伸到方形容器中,绝对定位

  4. 见下面的演示:

    
    
    .wrapper {
      border: 1px solid red;
      height: 0;
      overflow: hidden;
      padding-top: 100%;
      box-sizing: border-box;
      position: relative;
    }
    .wrapper img {
      width: 100%;
      vertical-align: top;
      position: absolute;
      top: 0;
      left: 0;
      height: 100%;
    }
    
    <div class="wrapper">
      <img src="http://placehold.it/400x300" />
    </div>
    &#13;
    &#13;
    &#13;

答案 2 :(得分:1)

使用直接CSS,您可以将宽度和高度设置为100vw。

答案 3 :(得分:1)

由于您不关心图像是否被裁剪或扭曲,因此布局很简单。

只需将overflow: hidden添加到容器中即可。图像可以是任何大小。

&#13;
&#13;
div {
  height: 100px;
  width: 100px;
  border: 2px solid red;
  overflow: hidden;
}
&#13;
<div>
  <img src="http://www.placekitten.com/450/300">
</div>
&#13;
&#13;
&#13;