13

我有一个例如宽度为 450 像素的图像和一个只有 300 像素的容器。当图像的宽度不恒定时,是否可以使用 CSS 在容器内居中图像(某些图像可能是 450 宽,其他 600 等)。还是我需要用 JavaScript 将其居中?

4

3 回答 3

28

这有什么好处?http://jsfiddle.net/LSKRy/

<div class="outer">
    <div class="inner">
    <img src="http://3.bp.blogspot.com/-zvTnqSbUAk8/Tm49IrDAVCI/AAAAAAAACv8/05Ood5LcjkE/s1600/Ferrari-458-Italia-Nighthawk-6.jpg" alt="" />
    </div>
</div>

.outer {
    width: 300px;
    overflow: hidden;
}

.inner {
    display: inline-block;
    position: relative;
    right: -50%;
}

img {
    position: relative;
    left: -50%;
}
于 2013-02-12T17:10:12.990 回答
2

命题 1:

.crop {
    float:left;
    margin:.5em 10px .5em 0;
    overflow:hidden; /* this is important */
    border:1px solid #ccc;
}
/* input values to crop the image: top, right, bottom, left */
.crop img {
    margin:-20px -15px -40px -55px;
}

提案 2:

.crop{
    float:left;
    margin:.5em 10px .5em 0;
    overflow:hidden; /* this is important */
    position:relative; /* this is important too */
    border:1px solid #ccc;
    width:150px;
    height:90px;
}
.crop img{
    position:absolute;
    top:-20px;
    left:-55px;
}

命题 3:

.crop{
    float:left;
    position:relative;
    width:150px;
    height:90px;
    border:1px solid #ccc;
    margin:.5em 10px .5em 0;
}
.crop p{
    margin:0;
    position:absolute;
    top:-20px;
    left:-55px;
    clip:rect(20px 205px 110px 55px);
}

命题 4(保持学校效率):

.container {
    width:400px;
    height:400px;
    margin:auto;
    overflow:hidden;
    background:transparent url(your-image-file­.img) no-repeat scroll 50% 50%;
}

当然,您需要调整 .css 以满足您自己的需要

继续。

于 2013-02-12T17:14:28.807 回答
-3

but instead of hiding part of theimage why don't you put it like

<div id="container" style="width: 300px">
  <img src="yourimage" width="100%">
</div>
于 2013-02-12T17:00:31.870 回答