当前位置: 首页 > 知识库问答 >
问题:

如何使用CSS居中和裁剪图像以始终呈现方形?

祁默
2023-03-14

我需要始终只使用CSS将随机大小的图像裁剪成160x160的正方形。裁剪时,图像应保持居中。

我的标记应该是:

<a href="#" class="cropper">
   <img src="image" alt="description" />
</a>

在StackOverflow上搜索我找到了一些答案(例如CSS-如何将图像裁剪成正方形,如果它已经是正方形,则调整其大小),但它们不适用于图像水平(宽)或垂直(高)较大的情况。

具体来说,我需要能够呈现像这样的宽图像:

像这样的高大形象:

以正方形形式,事先不知道哪个是水平矩形还是垂直矩形。它还应该支持已经平方的图像。

共有3个答案

子车青青
2023-03-14
<div>
    <img class="crop" src="http://lorempixel.com/500/200"/>
</div>

<img src="http://lorempixel.com/500/200"/>




div {
    width: 200px;
    height: 200px;
    overflow: hidden;
    margin: 10px;
    position: relative;
}
.crop {
    position: absolute;
    left: -100%;
    right: -100%;
    top: -100%;
    bottom: -100%;
    margin: auto; 
    height: auto;
    width: auto;
}

http://jsfiddle.net/J7a5R/56/

乐城
2023-03-14

对象适合属性具有魔力。在JsFiddle上。

CSS

.image {
  width: 160px;
  height: 160px;
}

.object-fit_fill {
  object-fit: fill
}

.object-fit_contain {
  object-fit: contain
}

.object-fit_cover {
  object-fit: cover
}

.object-fit_none {
  object-fit: none
}

.object-fit_scale-down {
  object-fit: scale-down
}

超文本标记语言

<div class="original-image">
  <p>original image</p>
  <img src="http://lorempixel.com/500/200">
</div>

<div class="image">
  <p>object-fit: fill</p>
  <img class="object-fit_fill" src="http://lorempixel.com/500/200">
</div>

<div class="image">
  <p>object-fit: contain</p>
  <img class="object-fit_contain" src="http://lorempixel.com/500/200">
</div>

<div class="image">
  <p>object-fit: cover</p>
  <img class="object-fit_cover" src="http://lorempixel.com/500/200">
</div>

<div class="image">
  <p>object-fit: none</p>
  <img class="object-fit_none" src="http://lorempixel.com/500/200">
</div>

<div class="image">
  <p>object-fit: scale-down</p>
  <img class="object-fit_scale-down" src="http://lorempixel.com/500/200">
</div>

后果

荣声
2023-03-14

jsFiddle演示

div {
    width: 250px;
    height: 250px;
    overflow: hidden;
    margin: 10px;
    position: relative;
}
img {
    position: absolute;
    left: -1000%;
    right: -1000%;
    top: -1000%;
    bottom: -1000%;
    margin: auto;
    min-height: 100%;
    min-width: 100%;
}
<div>
    <img src="https://i.postimg.cc/TwFrQXrP/plus-2.jpg" />
</div>
 类似资料:
  • 问题内容: 给定任意图像,我想从图像中心裁剪一个正方形并将其显示在给定的正方形内。 问题答案: 一种解决方案是使用以元素大小为裁剪尺寸的元素为中心的背景图像。 基本例子 标签示例 此版本保留了标签,因此我们不会丢失拖动或右键单击以保存图像的功能。信贷帕克贝内特不透明度伎俩。 / 请参阅支持的浏览器 。 的CSS3图像规范定义和属性,它们一起允许对规模更大的控制和一个的图像内容的位置元素。有了这些,

  • 问题内容: 我有这个HTML: 使用此CSS: 我正在应用的背景图像是200x100像素,但我只想显示200x50像素的背景图像的裁剪部分。 似乎不是正确的CSS属性。我该怎么用呢? 不应使用,因为我在Sprite上下文中使用了上述CSS,在该Sprite上下文中,我要显示的图像部分小于定义CSS的元素。 问题答案: 您可以将图形放置在具有其自身尺寸上下文的伪元素中: 浏览器支持很好,但是如果需要

  • 我知道实际上用CSS修改图像是不可能的,这就是为什么我在引号中加了crop。 我想做的是拍摄矩形图像,并使用CSS使其显示为方形,而不会扭曲图像。 我基本上想把这个: 对此:

  • 问题内容: 我如何像以前在PIL中一样使用OpenCV裁剪图像。 PIL的工作示例 但是我如何在上做到这一点? 这是我尝试的: 但这是行不通的。 我认为我使用不正确。如果是这种情况,请说明如何正确使用此功能。 问题答案: 非常简单。使用numpy切片。

  • 我试图在从图库中选择图像后使用intent来裁剪图像。以下是我的代码片段 在这里,我使用PICK_IMAGE_REQUEST意图句柄调用上面的代码段 由于我在裁剪后使用了相同的意图,即PICK_IMAGE_REQUEST,可能会出现什么问题

  • 我试图在JavaFX画布上显示非常大的图像。单个图像的分辨率为11980x8365。每个图像都有一个相应的世界文件,我可以用它来正确定位图像。我的画布尺寸是800x600。有时我需要把整个图像写在画布上,有时只是其中的一部分。 以下是我到目前为止所做的: 将文件中的全尺寸图像加载到Image对象中。 计算要显示图像的哪一部分,并计算缩放参数以正确地将其放入800x600画布中。 所以基本上我想使用