通常在Banner的时候需要居中,而且Banner通常都是比较宽的。如果当前页面比Banner宽,那么text-align:center
即可。
不过当页面缩小的时候,图片的左边就会抵住窗口左边,不会随着窗口的缩小而左移。
DEMO演示:当父元素小于图片宽度的时候 图片不居中
上面的演示大家可以改变窗口来看。
解决的方法有三种:
这个是最先想到的,就是把图片作为背景来设置到Banner上面。
<style>
.banner{
background: url(banner.jpg) center top no-repeat;
height:200px;
}
</style>
<div class="banner"></div>
优点:便签少 缺点:需要手动设定Banner的高度
<style>
.banner{
overflow: hidden;
position: relative;
}
.banner img{
position: absolute;
left: 50%;
margin-left: -640px;
}
</style>
<div class="banner">
<img src="banner.jpg">
</div>
<style>
.banner{
overflow: hidden;
position: relative;
}
.banner img{
position: relative;
left: 50%;
margin-left: -640px;
}
</style>
<div class="banner">
<img src="banner.jpg">
</div>
修正之后的:
上面三种方法的DEMO演示:超过父元素依然居中的图片
##总结:
方法二和三的原理类似,就是用先偏离父元素宽度的50%,这时候图片的左边缘到达了父元素的中间,然后通过负的margin值把图片拉到中心,值是图片宽度的一半,这样图片的中轴线就和父元素的中心线重合了,达到了居中的效果,而父元素的overflow:hidden
超出隐藏,保证了不会出现横向的水平滚动条。