我想在一个144px x 144px的div元素中显示图像。
图片总是比144px大,所以我想要对它们进行缩放。我的意思是最小的一边将会接触到div的边缘,从另一边剪切一些 - 相当于没有黑边。
如何做到这一点并在旧浏览器(如IE)上正常工作?
编辑: 更改了图片,第一张图片不正确,抱歉。 调整图像大小,使其在div内没有空白处。
编辑: 更改了图片,第一张图片不正确,抱歉。 调整图像大小,使其在div内没有空白处。
.blockOut {
position: relative;
top: -100px;
left: 100px;
background-color: white;
z-index: 2; //this is the important part for putting this div in front of the other one
}
编辑:请注意,因为您添加了一个示例,显示您想要将所有边缘涂黑,这将需要单独的div来涂黑顶部、每个侧面和底部。此外,如果您想让图像的一部分显示出来(如示例中所示),可以使用CSS透明选项。
div{height:114px;width:114px;overflow:hidden;}
div img{position:relative;left:-100px /*or whatever you want. can change it with js*/;top:-100px;}
这是掩盖只显示图像的一部分,正如您在标题中所说。但在描述中,您想要调整图像的大小。自行决定。
我的第一个回答有意地讨论了有意地遮挡图像的一部分,同时保留空间。如果您只想显示图像的一部分而不占用任何其他空间或内容,则最好的选择是使用CSS Sprite技术。
以下是一个示例:
HTML(复制并粘贴到您自己的文件中进行完整测试):
<html>
<head>
<style type="text/css">
.clippedImg {
background-image: url("http://www.grinderschool.com/images/top_main.jpg");
background-position: -75px -55px;
height: 100px;
width: 235px;
}
</style>
</head>
<body>
<div class='clippedImg'> </div>
</body>
</html>
.clippedImg {
background-image: url("http://www.grinderschool.com/images/top_main.jpg");
background-position: -75px -55px;
}
<div class='blackBox'>
<div class='clippedImg'> </div>
<div>
.blackBox {
background-color: black;
padding: 0 20px;
width: 235px;
}
如果您想通过CSS来实现您的需求,您可以使用max-height:144px; max-width:144px这些属性。但是IE6并不支持这些属性,所以您需要使用JS来替代。