如果我有:
#logo {
width: 400px;
height: 200px;
}
Run Code Online (Sandbox Code Playgroud)
然后
<img id="logo" src="logo.jpg"/>
Run Code Online (Sandbox Code Playgroud)
将拉伸以填补该空间.我希望图像保持相同的大小,但是它要占用DOM中的那么多空间.我是否需要添加封装<div>
或<span>
?我讨厌为样式添加标记.
cle*_*tus 98
是的,你需要一个封装div:
<div id="logo"><img src="logo.jpg"></div>
Run Code Online (Sandbox Code Playgroud)
有类似的东西:
#logo { height: 100px; width: 200px; overflow: hidden; }
Run Code Online (Sandbox Code Playgroud)
其他解决方案(填充,边距)更繁琐(因为您需要根据图像的尺寸计算正确的值),但也不能有效地允许容器小于图像.
而且,对于不同的布局,上述内容可以更容易地进行调整.例如,如果您想要右下方的图像:
#logo { position: relative; height: 100px; width: 200px; }
#logo img { position: absolute; right: 0; bottom: 0; }
Run Code Online (Sandbox Code Playgroud)
小智 37
您可以添加img
到您的CSS,它将自动裁剪图像
Sam*_*ody 28
加载图像作为div的背景.
代替:
<img id='logo' src='picture.jpg'>
Run Code Online (Sandbox Code Playgroud)
做
<div id='logo' style='background:url(picture.jpg)'></div>
Run Code Online (Sandbox Code Playgroud)
所有浏览器都会裁剪掉不适合的图像部分.
这有几个优点,包括一个隐藏溢出的元素:
url(pic) center top;
小智 23
CSS3对象适合
我不确定webkit,IE和firefox实现了多远.但是Opera就像魔术一样
object-fit
使用SVG内容,但通过preserveAspectRatio=""
在SVG本身中设置属性也可以实现相同的效果.
img {
height: 100px;
width: 100px;
-o-object-fit: contain;
}
Run Code Online (Sandbox Code Playgroud)
克里斯·米尔斯演示了它http://dev.opera.com/articles/view/css3-object-fit-object-position/
#logo {
width: 400px;
height: 200px;
/*Scale down will take the necessary specified space that is 400px x 200px without stretching the image*/
object-fit:scale-down;
}
Run Code Online (Sandbox Code Playgroud)
做一个div并给它一个班级.然后在其中放一个img.
<div class="mydiv">
<img src="location/of/your/image" ></img>
</div>
Run Code Online (Sandbox Code Playgroud)
设置div的大小并使其相对.
.mydiv {
position: relative;
height:300px;
width: 100%;
overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud)
然后设计你的形象
img {
width: 100%;
height: auto;
overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud)
希望有所帮助
归档时间: |
|
查看次数: |
271237 次 |
最近记录: |