栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使图像完全填充div而无需拉伸

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使图像完全填充div而无需拉伸

自动调整图像大小以适应Div-使CSS正常工作

这是一种方法,从以下HTML开始:

<div >    <h4>Portrait Style</h4>    <img src="http://placekitten.com/150/300"></div>

和CSS:

.container {    height: 300px;    width: 240px;    background-color: red;    float: left;    overflow: hidden;    margin: 20px;}.container img {    display: block;}.portrait img {    width: 100%;}.landscape img {    height: 100%;}

当您将图像定向为人像时,需要将宽度缩放到100%。相反,当图像为横向时,您需要缩放高度。

不幸的是,CSS中没有针对图像长宽比的选择器组合,因此您不能使用CSS来选择正确的缩放比例。

另外,由于图像的左上角固定在包含块的左上角,因此您没有简单的方法来使图像居中。

jQuery助手

您可以使用以下jQuery操作来根据图像的纵横比确定要设置的类。

$(".container").each(function(){    // Uncomment the following if you need to make this dynamic    //var refH = $(this).height();    //var refW = $(this).width();    //var refRatio = refW/refH;    // Hard pred value...    var refRatio = 240/300;    var imgH = $(this).children("img").height();    var imgW = $(this).children("img").width();    if ( (imgW/imgH) < refRatio ) {         $(this).addClass("portrait");    } else {        $(this).addClass("landscape");    }})

对于中的每个图像

.container
,获取其高度和宽度,进行测试
width<height
,然后设置适当的类。

另外,我添加了一个检查,以考虑到包含块的长宽比。以前,我隐式地假定了正方形视图面板。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/568290.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号