当前位置:
  1. 首页 »
  2. 笔记 »
  3. 正文

图片缩放大小左右上下控制隐藏

零分 520

网页插入图片代码:

<img src=“//img.32xp.com/photo_20150608230123.jpg”>

这种,显然不适合网页的布局,需要对图片进行缩放,一种是直接设置图片大小,一种是在外添加一个层控制超出隐藏

直接设置图片大小,以200X200为例:

<img src=“//img.32xp.com/photo_20150608230123.jpg” width=“200” height=“200” title=“缩放200X200”>

效果:

可以达到图片的缩放,只是,图片严重变形了!那就在外面添加一个DIV层超出隐藏看看效果!

<div style=“width:200px;height:200px;overflow:hidden;margin:20px;”>
<img src=“//img.32xp.com/photo_20150608230123.jpg” title=“超出隐藏”>
</div>

效果:

效果也并不满意,图片太大的话,图片明显只是显示了一个小小的部分,显示不出图片的内容,那就在给图片加一个缩放,为了更好的体现效果,给外层加一个边框!

<div style=“width:200px;height:200px;overflow:hidden;margin:20px;border:1px solid #ff0000;”>
<img src=“//img.32xp.com/photo_20150622134552.png” tyle=“width:200px;height:auto;” title=“缩放200X200,超出显示”>
</div>

效果:

这样看好像是不错了,不过,这个是高>宽的显示,如果是宽>高的话,效果似乎又不大满意了!如图:

还要一个判断,判断图片是的宽高,再对图片是设定高还是设定宽,要判断图片宽高首先就是获取图片的宽高,PHP为例,用getimagesize函数!看下获取的内容

$imgarr=getimagesize(“//img.32xp.com/photo_20150608230123.jpg”); print_r($imgarr);

得到的数组:

可以得到图片的宽高,还有其他的一些参数,这里只要宽高就可以了!

给图片加上一个判断:

<div style=“width:200px;height:200px;overflow:hidden;margin:20px;border:1px solid #ff0000;”>
<img src=“//img.32xp.com/photo_20150608230123.jpg” <?php $imgarr=getimagesize(“//img.32xp.com/photo_20150608230123.jpg”); if($imgarr[0]>$imgarr[1]){echo ‘style=“height:200px;width:auto;”‘;}else{{echo ‘style=“width:200px;height:auto;”‘;}} ?>  title=“缩放200X200,超出隐藏”>
</div>
<div style=“width:200px;height:200px;overflow:hidden;margin:20px;border:1px solid #ff0000;”>
<img src=“//img.32xp.com/photo_20150622134552.png” <?php $imgarr=getimagesize(“//img.32xp.com/photo_20150622134552.png”); if($imgarr[0]>$imgarr[1]){echo ‘style=“height:200px;width:auto;”‘;}else{{echo ‘style=“width:200px;height:auto;”‘;}} ?>  title=“缩放200X200,超出隐藏”>
</div>

效果:

这样看起来,不论是图片宽>高还是高>宽,都可以充满整个DIV层!如果还不满意,接下来就控制图片左右上下居中,对超出的部分进行隐藏,用margin-left和margin-height;

<div style=“width:200px;height:200px;overflow:hidden;margin:20px;border:1px solid #ff0000;”>
<img src=“//img.32xp.com/photo_20150608230123.jpg” <?php $imgarr=getimagesize(“//img.32xp.com/photo_20150608230123.jpg”); if($imgarr[0]>$imgarr[1]){$imgbig=round($imgarr[0]*200/$imgarr[1]); echo ‘style=“height:200px;width:auto;margin-left:-‘.round(($imgbig-200)/2).'”‘;}else{$imgbig=round($imgarr[1]*200/$imgarr[0]);echo ‘style=“width:200px;height:auto;margin-top:-‘.round(($imgbig-200)/2).'”‘;} ?>  title=“缩放200X200,超出隐藏”>
</div>
<div style=“width:200px;height:200px;overflow:hidden;margin:20px;border:1px solid #ff0000;”>
<img src=“//img.32xp.com/photo_20150622134552.png” <?php $imgarr=getimagesize(“//img.32xp.com/photo_20150622134552.png”); if($imgarr[0]>$imgarr[1]){$imgbig=round($imgarr[0]*200/$imgarr[1]); echo ‘style=“height:200px;width:auto;margin-left:-‘.round(($imgbig-200)/2).'”‘;}else{$imgbig=round($imgarr[1]*200/$imgarr[0]);echo ‘style=“width:200px;height:auto;margin-top:-‘.round(($imgbig-200)/2).'”‘;} ?>  title=“缩放200X200,超出隐藏”>
</div>

这样就实现了图片居中超出左右/上下超出的隐藏了!

附:淘宝详情页主图缩放左右/上下居中的代码

<div style=“width:200px;height:200px;overflow:hidden;margin:20px;border:1px solid #ff0000;”>
<img src=“//img.32xp.com/photo_20150608230123.jpg” <?php $imgarr=getimagesize(“//img.32xp.com/photo_20150608230123.jpg”); if($imgarr[0]>$imgarr[1]){$imgbig=round($imgarr[1]*200/$imgarr[0]); echo ‘style=“width:200px;height:auto;margin-top:’.round((200-$imgbig)/2).'”‘;}else{$imgbig=round($imgarr[0]*200/$imgarr[1]);echo ‘style=“height:200px;width:auto;margin-left:’.round((200-$imgbig)/2).'”‘;} ?>  title=“缩放200X200,超出隐藏”>
</div>
<div style=“width:200px;height:200px;overflow:hidden;margin:20px;border:1px solid #ff0000;”>
<img src=“//img.32xp.com/photo_20150622134552.png” <?php $imgarr=getimagesize(“//img.32xp.com/photo_20150622134552.png”); if($imgarr[0]>$imgarr[1]){$imgbig=round($imgarr[1]*200/$imgarr[0]); echo ‘style=“width:200px;height:auto;margin-top:’.round((200-$imgbig)/2).'”‘;}else{$imgbig=round($imgarr[0]*200/$imgarr[1]);echo ‘style=“height:200px;width:auto;margin-left:’.round((200-$imgbig)/2).'”‘;} ?>  title=“缩放200X200,超出隐藏”>
</div>

效果:

记一次宝塔MySQL无法启动的问题

去顺丰送快递之后,一直就没有管理打开网站,好像不去之前也没怎么更新 难得休息,打算更新下企业模板,发现无法打开。显示链接数据库失败。 进入宝塔后台,发现MySQL停止了运行。 第一时间启动MySQL,但是发现一直启动失败。 之后更新了下宝塔,更新了下MySQL,还是无法启动。 百度了一番,发现原来我是真的看不懂那些日志。 只好找些看得懂的来测试。 删除了两个文件 /www/server/data/ib_logfile0 /www/server/data/ib_logfile1 无法启动,注释了innodb_开头配置 #innodb_data_home_dir = /www/server/dat
笔记 1,257

网站设置开灯(亮模式/白天)和关灯(暗模式/黑夜)效果

在很早之前,这个效果叫做开灯/关灯,现在叫做白天/黑夜,曾经有那么一段时间没有看到过这种效果,现在又很多网站/APP都喜欢这种切换白天/黑夜模式。 实现效果:设置2套或者多套色调模板,和之前的那种换皮肤大差不差。所以博客新主题也设置了这么一个效果,样式布局基本没怎么改变,后台设置页升级了一下,很多东西都不再“写死”,可以自由设置! 白天模式效果: 黑夜模式效果: 感觉黑夜的色调比较好看。 总体涉及到的原理: 1、设计2套或者多套CSS样式,可以在body里添加一个class,后面保留class/ID样式名称不变,在不同的样式里给设计一个区域,通过body里的class名调用不同的样式CSS。
笔记 2,416

记一次网页源码顶部空白行的问题处理

正常来说,网页源码顶部如非UFT-8 bom编码的问题,基本不会影响网站的正常运行,但如php生成xml的话,就会出现问题。 因更换了主题(新主题暂时未上线,只是测试),发现xml无法正常显示,查看源码,顶部多出了一行空白行,本地运行正常。 查找原因,基本每个PHP问题都排查了,未发现任何问题,将主题上传到另外一个网站运行,发现正常。基本可以排除是主题的原因,剩下的可能是插件的问题。 查看了插件的源码,发现真的是插件的问题,PHP插件文件底部多出了几行,删除多出的行,重新运行,空白行不见了! 记录下,防止下次又因同样的原因而花时间去排查!
笔记 2,536

wordpress禁用REST API导致古腾堡编辑器发布文章出错问题

wordpress禁用REST API,在function.php中加入以下代码: add_filter("json_enabled", "__return_false"); add_filter("json_jsonp_enabled", "__return_false"); add_filter("rest_enabled", "__return_false"); add_filter("rest_jsonp_enabled", "__return_false"); remove_action("init", "rest_api_init"); remove_action("rest_ap
笔记 1,380

wordpress 后台主题设置选项按钮(button、input submit)点击屏蔽提交事件禁止刷新

wordpress 后台主题设置选项按钮(button、input submit)点击屏蔽提交事件禁止刷新 如果在设计主题或者插件后台设置选项时,wordpress后台的按钮(button、input submit)默认是提交操作,如只是响应JS事件,需要屏蔽提交,防止页面刷新。e.preventDefault(); 完整示例: $("button.copy").on("click",function(e){ e.preventDefault(); JS操作 });
笔记 1,262