jQuery实现图片垂直居中,js怎样实现图片水平垂直居中显示
来源:互联网 发布:网络架空地板的优势 编辑:程序博客网 时间:2024/06/07 05:09
转载地址http://www.wgcss.com/?p=32
做完一个项目,测试那边提出一个问题,就是用户上传的头像,可能形状不同, 可能长比宽要大,也有可能宽比长要大,但,外面的框是固定的(不然会打乱布局的哦)。
<div class="box"> <img src="http://pics.taobao.com/bao/album/promotion/taoscars_180x95_071112_sr.jpg"></div>
现在问题出来了,要是用户所传的图片比我们定死的外框要大怎么办, 用CSS把IMG定死? 这样会直接导致图片变形。这就要想法让图片等比例缩放了。
有人提出过,用CSS,只设宽或高, 这样是可以等比例缩小。这是指的设死宽或高也就是指的我们定死的外框的宽或高。但这样要是用户所传的图片比外框本来就小怎么办? 那样就会拉伸图片,照样会变形!
这个问题暂且在此不谈,因为我也还在求解中,有哪位大侠有正解,请给出答案,感激不尽。
我今天主要是谈等比例缩小,并且垂直居中的方法!
等比例缩小,可以用上面的只定义宽或高来实现,但垂直居中还要另想他法。 网上的用CSS来实现的例子。有一个,我感觉不错。
在此贴出来,供大家学习交流。
代码如下:
.box {/*非IE的主流浏览器识别的垂直居中的方法*/ display: table-cell; vertical-align:middle; /*设置水平居中*/ text-align:center; /* 针对IE的Hack */ *display: block; *font-size: 175px;/*约为高度的0.873,200*0.873 约为175*/ *font-family:Arial;/*防止非utf-8引起的hack失效问题,如gbk编码*/ width:200px; height:200px; line-height:200px;/*蜈蚣注:如果不涉及文字,用line-height是最简单的方法*/ border: 1px solid #eee; } .box img { /*设置图片垂直居中*/ vertical-align:middle; }
<div class="box"> <img src="http://pics.taobao.com/bao/album/promotion/taoscars_180x95_071112_sr.jpg"></div>
但这里有个不好的地方,就是如果box左浮动了,FF居中就会失灵。
加*float:left;可以解决。但往往我们在做项目的时候,不光是IE要浮动,FF也浮动。这样此方法就不太好了!
我们老大(我的组长), 给出了一个方法,Jquery的。 贴出他的成果, 哈哈,希望老大不要怪我。
JQ代码:
function drawpic(dom){ var _img=$(dom); if(_img.width() > _img.height())//如果图片的宽大于高 { _img.css("width","100%"); // 将图片的宽定义成100% var c=(_img.height()/2); // 定义一变量C,将图片的高度值的一半赋于C。 _img.css({"top":"50%","margin-top":-c+"px"});// 给图片定义,top:50%; margin-top:-c; /*---------------------------------------------------------------------------------------------------------- 在此我讲一下原理,图片的宽大于高,也就是说是图片是横着的,哈哈,不知道这 样说,大家能理解不。定义它的宽度是100%。这里是相对于外框的,也就是将图 片的宽度设成外框的宽度,然后定义图片top:50%;这样,图片的左上角那个点就是 外框的正中间,然后让图片margin-top一个自身的高度值,这样就实现了居中。 ----------------------------------------------------------------------------------------------------------*/ } else { _img.css({"height":"100%","margin":"0 auto"}); /*---------------------------------------------------------------------------------------------------------- 如果,图片高大于宽,也就是竖着的,这样,将图片高度设成外框的100%。宽度会 自动等比例缩小,然后让图片,margin:0 auto; ----------------------------------------------------------------------------------------------------------*/ } }
用以上方法实现的前提是,外框的宽和高是定死的。还有,在CSS中,让图片,display:block; position:relative;
不然对图片,margin:0 auto;top:50% 没用哈。
在此,我提出一个疑问,同样是如果用户上传的图片要是小外框的时候,这个方法会将图片同样拉伸变形,明天我问问老大,
有了结果再写出来,大家如果有好的办法,也请不吝赐教
- jQuery实现图片垂直居中,js怎样实现图片水平垂直居中显示
- 图片实现水平垂直居中
- jquery实现div水平垂直居中显示
- 伪元素实现图片水平垂直居中
- css图片实现水平、垂直居中
- css实现图片垂直水平居中
- css如何实现图片垂直水平居中
- 图片水平垂直居中
- 图片垂直水平居中
- 图片 垂直 水平 居中
- 图片水平垂直居中
- 图片水平垂直居中
- 实现水平居中垂直居中
- CSS实现图片垂直居中
- 单张图片水平垂直居中
- 图片水平与垂直居中
- 让图片垂直水平居中
- 图片水平垂直居中css
- 解决android post请求乱码
- x86的寄存器
- instanceof, isinstance,isAssignableFrom的区别
- Nginx + PHP (FastCGI)搭建胜过Apache十倍的Web服务器
- iOS应用程序生命周期(前后台切换,应用的各种状态)详解
- jQuery实现图片垂直居中,js怎样实现图片水平垂直居中显示
- 高内聚、低耦合
- c语言编写,从1到1000中自身的所有的约数相加等于本身的数,例如6=1+2+3
- sqlser异常 Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.原因
- HashMap与Hashtable的区别
- 第九届湖南省大学生程序设计竞赛H题 高桥,低桥(UVA 12663) BIT 树状数组
- 输入输出函数(C和指针第15章)
- NET-SNMP工具的使用
- c语言从键盘输入班级人数,及每个人的分数,计算出平均分数