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

在Div中居中显示过大的图像

华知
2023-03-14

我一直在尝试解决如何仅使用css在div中居中放置超大图像的问题。

我们使用的是流体布局,因此图像容器的宽度随着页面宽度的变化而变化(div的高度是固定的)。该图像位于一个div中,值为inset boxshadow,以便显示为您正在查看页面中的图像。

图像本身已经调整大小,以尽可能宽的值填充周围的div(设计有一个max-宽值)。

如果图像比周围的div小,这很容易做到:

margin-left: auto;
margin-right: auto;
display: block; 

但是当图像大于div时,它只是从左边缘开始,然后偏离中心向右(我们使用overflow:隐藏的)。

我们可以指定宽度=100%,但是浏览器在调整图像大小方面做得很糟糕,网页设计以高质量图像为中心。

有没有关于将图像居中以便溢出:隐藏均匀地切断两条边的想法?


共有3个答案

狄峻熙
2023-03-14

将一个大div放在div的中间,然后将图像放在div的中间。

这将使其水平居中:

超文本标记语言:

<div class="imageContainer">
  <div class="imageCenterer">
    <img src="http://placekitten.com/200/200" />
  </div>
</div>

CSS:

.imageContainer {
  width: 100px;
  height: 100px;
  overflow: hidden;
  position: relative;
}
.imageCenterer {
  width: 1000px;
  position: absolute;
  left: 50%;
  top: 0;
  margin-left: -500px;
}
.imageCenterer img {
  display: block;
  margin: 0 auto;
}

演示:http://jsfiddle.net/Guffa/L9BnL/

为了垂直居中,您可以使用相同的内部div,但是您需要图像的高度来将其绝对放置在内部。

孟彦
2023-03-14

这是一个古老的Q,但没有flexbox或position absolute的现代解决方案是这样工作的。

margin-left: 50%;
transform: translateX(-50%);
.outer {
  border: 1px solid green;
  margin: 20px auto;
  width: 20%;
  padding: 10px 0;
  /*   overflow: hidden; */
}

.inner {
  width: 150%;
  background-color: gold;
  /* Set left edge of inner element to 50% of the parent element */
  margin-left: 50%; 
  /* Move to the left by 50% of own width */
  transform: translateX(-50%); 
}
<div class="outer">
  <div class="inner">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quos exercitationem error nemo amet cum quia eaque alias nihil, similique laboriosam enim expedita fugit neque earum et esse ad, dolores sapiente sit cumque vero odit! Ullam corrupti iure eum similique magnam voluptatum ipsam. Maxime ad cumque ut atque suscipit enim quidem. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Excepturi impedit esse modi, porro quibusdam voluptate dolores molestias, sit dolorum veritatis laudantium rem, labore et nobis ratione. Ipsum, aliquid totam repellendus non fugiat id magni voluptate, doloribus tenetur illo mollitia. Voluptatum.</div>
</div>
缑修齐
2023-03-14

试试这样的。无论其大小如何,都应在其垂直方向和水平方向上将任何巨大的元素集中在其母面上。

.parent {
    position: relative;
    overflow: hidden;
    //optionally set height and width, it will depend on the rest of the styling used
}

.child {
    position: absolute;
    top: -9999px;
    bottom: -9999px;
    left: -9999px;
    right: -9999px;
    margin: auto;

}
 类似资料:
  • 问题内容: 我已经将图像内的边框设置为none。我现在想将该图像放在其包含div的中心。我曾尝试使用,但没有用。 我敢肯定,我忽略了一些愚蠢的事情,但是我想得到stackoverflow社区的帮助,所以这并不需要我花一个小时盯着屏幕来弄清楚。非常感谢。 这是CSS … 问题答案: 尝试将图片的属性设置为:

  • 问题内容: 这可能是一个愚蠢的问题,但是由于居中对齐图像的常规方法不起作用,所以我想问一下。如何在容器div内居中对齐(水平)图像? 这是HTML和CSS。我还包括了缩略图其他元素的CSS。它以降序运行,因此最高的元素是所有内容的容器,最低的元素是所有内容的内部。 好的,我添加了不带PHP的标记,因此应该更容易理解。这两种解决方案似乎都无法在实践中起作用。顶部和底部的文本不能居中,并且图像应在其容

  • 问题内容: 是否可以将div中的背景图像居中放置?我已经尝试了几乎所有内容-但没有成功: 这可能吗? 问题答案:

  • 我试图使用jfree图表库生成一个圆环图或环形图。环形图已成功生成,但唯一的问题是环形内的居中文本未显示。以下是示例片段。图表生成代码 和水平居中相关的代码如下所示 我用的是jfreechart verison 1.5.0

  • 问题内容: 我试图在此页面上将新闻滑块(位于div底部容器中)居中: http://www.luukratief- design.nl/dump/parallax/index.html 我已经有了 仍然不起作用。 有什么建议么? 问题答案: 在仅中心元素的 在线内容 ,而不是元素本身。 如果它是一个 块_元素(一个是),则需要设置;否则,如果它是一个[ _内联_元素],则需要在 _其父 元素上设置

  • 问题内容: 在隐藏其父级Div的同时如何显示子Div?能做到吗? 我的代码如下: 问题答案: 我认为这是不可能的。 您可以使用javascript将元素拉出,或复制元素然后显示。 在jQuery中,您可以复制一个元素 然后附加到任何适当的可见元素。