实现图片水平垂直居中

简介:

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
< html >
< head ></ head >
< style  type = "text/css" >
.div1{
     width: 500px;
     height: 500px;
     background-color: red;
     position: absolute;
}
.div2{
     width: 300px;
     height: 200px;
     background-color: blue;
     position: absolute;
     top: 50%;
     left: 50%;
     margin-top: -100px;
     margin-left: -150px;
     overflow: hidden;
 
}
img{
     width: 0;
}
 
</ style >
< script  type = "text/javascript"  src = "jquery-2.1.1.min.js" ></ script >
< body >
< div  class = "div1" >
     < div  class = "div2" >< img  src = "c.jpg" >< div >
</ div >
 
< script  type = "text/javascript" >
$(function() {
     var $img = $("img");
     $img.css("width","100%");
     var height = $img.css("height");
     height = height.slice(0,-2);
     if (height < 200) {
         $img.css("height","100%");
     };
}) 
 
</ script >
</ body >
</ html >

重要的是js那一段。效果示例如图,第一个div设置长宽,第二个div设置一定的宽度,将图片放到里面去,overflow:hidden,这样无论图片是何种格式的,如果图片太小就填充整个div,如果太大就hidden掉。为了让图片能够显示的时候不变形,所以设置成weidth:100%,这样的话可能出现问题是当width:100%的时候,高度小于第二个div的高度200px,所以此时需要判断下图片高度是否大于200px,如果小于那就将高度设置成100%。楼主本来想着只用css,不用js是否能实现的,搞了半天不行,无奈选择用js动态实现这样的过程,泪奔泪奔,泪奔.


然后一个知识点需要记录一下,margin-top.margin-left设置成50%的时候,它的值始终只是父级元素的宽的50%,记住,是父级的width,如果父级width是500,height是200,设置子级元素margin-top:50%,margin-left:50%,那么得到的将是margin-top:250,margin-left:250.



wKioL1YDl67hT4MdAAEtuU47ZvM038.jpg

本文转自  陈小龙哈   51CTO博客,原文链接:http://blog.51cto.com/chenxiaolong/1697831



相关文章
|
前端开发
DIV+CSS文字与图片上下垂直居中-div css居中
DIV+CSS文字与图片上下垂直居中-div css居中
72 0
css3文字阴影和盒子阴影
css3文字阴影和盒子阴影
|
前端开发
CSS使图片居中的三种方法
CSS使图片居中的三种方法
152 0
|
前端开发
css实现文字的条纹阴影效果
css实现文字的条纹阴影效果
115 1
|
前端开发
css如何显示文字垂直居中
css如何显示文字垂直居中
71 0
|
前端开发
前端|CSS盒阴影和文字阴影
前端|CSS盒阴影和文字阴影
112 0
div盒子水平垂直居中以及表格的居中的方法
div盒子水平垂直居中以及表格的居中的方法
150 0
已知宽高实现盒子水平垂直居中
已知宽高实现盒子水平垂直居中
130 0
已知宽高实现盒子水平垂直居中
宽高不定实现盒子水平垂直居中
宽高不定实现盒子水平垂直居中
143 0
宽高不定实现盒子水平垂直居中
面试官:你能实现多少种水平垂直居中的布局(定宽高和不定宽高)
我们在日常的开发中,经常会遇到这样一个问题,就是如何实现居中水平垂直居中对齐。并且在面试中也会出现这样的问题,但是我们往往回答的不是很全部,而导致没有得到面试加分。接下来我们通过不同的方式来实现,让我们成功破解这道面试。
143 0