css布局居中实例:css如何实现背景图片垂直居中显示

发布时间:2019-10-31编辑:脚本学堂
css实现背景图片居中显示的方法,css实现背景图片居中与文字内容居中的例子,css让介绍文字、图片内容左右上下居中的方法教程。

一、css网页背景图片居中

方法1:用像素设定,很多都用这种,但是也是最麻烦的:
 

<div style="width:800px;height:600px;background:url(/images/logo.gif) no-repeat 250px 270px;border:1px solid #cccccc;"></div>

方法2:用50%设定,很方便:
 

<div style="width:800px;height:600px;background:url(/images/logo.gif) no-repeat 50% 50%;border:1px solid #cccccc;"></div>

方法3:用center设定(注:第2个center可以省略,因为默认就是center):
 

<div style="width:800px;height:600px;background:url(/images/logo.gif) no-repeat center center;border:1px solid #cccccc;"></div>

二、div+css布局居中:背景图片居中与文字内容居中

在div css布局的页面里,从布局内容到页面里文章文字居中都是非常重要的,而css来设置居中也是非常简单的。

1、首先,使用css属性让整体布局的居中:
设置对象的父级内容居中,这里一个页面的为父级是什么呢?我们可以想象整个页面的内容是由<html></html>和<body></body>这两个包含,那根据较近父级我们就设置body的CSS来实现居中问题,可以向在内容里居中有text-align:center;具体css的居中代码为:
body{text-aligh:center; }  但是即使这样也会出现问题,因为你没有设置布局有多宽“width  ”,一旦你内容布局中在最外层css控制中,设置了float:属性,那布局将会向你设置的float:方向靠,解决方法,除了设置body的居中的css属性外,还需对布局对象设置居中 ,而且或定义宽度是多少,假如网页宽度为700px,最外层css样式为的class="weicheng",那设置应该这样“.weicheng{margin:0 auto; width:700px;}  ”即可而这个元素在IE下有用,经过试验在火狐等浏览器下只除了此父级(body)设置text-aligh:center;居中 是无法让布局居中,那我们还需要对该对象设置个“margin:0  auto ; ”即内容上下为0距离,而左右为“auto  ”自动,这样就可以设置实现网页布局居中(这里设置margin:5px auto; 一样效果不影响实验)。

完整实例为:
 

复制代码 代码示例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>www.divcss5.com的CSS div的布局居中实例</title>
<style type="text/css">
<!--
body{ text-align:center; }
.waicheng {color: #0066CC; margin:5px auto; width:700px; height:200px; border:1px solid #000000;}
-->
</style>
</head>
<body>
<div class="waicheng">我是css中的居中的实验;我的布局外层有一个边为1px黑色边,我宽700px,高为200px,设置了与顶部内容距离为5PX</div>
</body>
</html>

2、使用css属性让网页的背景居中:
这里居中就包括了左右居中与上下居中,居中代码如下:
 

body{BACKGROUND:  #FFF url(/img/css-logo.gif) no-repeat center;}  //让css-logo.gif

这个图片设置背景不重复(no-repeat ),并将居中(center)这个居中是左右居中,而垂直不需要设置,自动会居中。

3、css让介绍文字、图片内容左右上下居中方法教程
我们知道左右就中好办,直接用text-align:center; 即可让文字与图片内容居中,但是垂直呢,假如我们在高度为120px的高度下垂直居中,图片居中是vertical-align:middle;css属性,文字居中就要靠设置行高方法居中文字内容,这里我们设置为120px的高度这需要设置个line-height:120px;这样就通过css属性类样式来实现文字与图片的上下左右居中。

整个网站居中的代码:
 

复制代码 代码示例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>www.divcss5.com的CSS div的完整居中实例</title>
<style type="text/css">
<!--
body{ text-align:center; margin:0 auto; background: url(/img/css-logo.gif) no-repeat center;}
.waicheng {color: #0066CC; margin:5px auto; width:700px; height:120px; line-height:120px; border:1px solid #000000; }
.waicheng img {vertical-align:middle;}
-->
</style>
</head>
<body>
<div class="waicheng">我是css中的居中的完整居中实例;我的布局外层有一个边为1px <img src="/img/css-logo.gif" alt="图片内容居中" /></div>
</body>
</html>

三、css如何实现图片垂直居中

在曾经的 淘宝UED 招聘 中有这样一道题目:css教程
“使用纯CSS实现未知尺寸的图片(但高宽都小于200px)在200px的正方形容器中水平和垂直居中。”
当然出题并不是随意,而是有其现实的原因,垂直居中是 淘宝 工作中最常遇到的一个问题,很有代表性。

题目的难点在于两点:
1.垂直居中;
2.图片是个置换元素,有些特殊的特性。

一个权衡的相对结构干净,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;
 border: 1px solid #eee;
}

.box img {
 /*设置图片垂直居中*/
 vertical-align:middle;
}
" />