css怎么让div居中?css div不居中怎么办?

发布时间:2020-11-16编辑:脚本学堂
本文介绍了css怎么让div居中的几种方法,css div 垂直居中与css div水平居中的设置方法,并介绍了css div内容居中问题的解决方法,供大家参考。

一、css中怎么让div居中

1、css 如何使div层水平居中

div本身没有定义自己居中的属性,有些方法只是说用上级的text-align: center然后嵌套一层div来解决问题.

正确的也是对页面构造没有影响的设置如下:
对需要水平居中的DIV层添加以下属性:
 

margin-left: auto;
margin-right: auto;

在FF中已经居中了,可是在IE中看竟然还是没有居中!

原来是L-Blog默认没有在HTML前加上DTD,于是IE就以HTML而不是XHTML来解释文档.
问题并不在CSS而在XHTML网页本身。
 

需要添加上dtd语句:
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
如果希望更为严格的xhtml 1.0 strict或者xhtml 1.1请查阅相关文档.

2、如何使div居中?

主要的css样式定义:
 

body {text-align: center;}
#center { margin-right: auto; margin-left: auto; }

说明:
首先,在父级元素定义text-align: center;这个的意思就是在父级元素内的内容居中;对于ie这样设定就已经可以了。但在mozilla中不能居中。解决办法就是在子元素定义时候设定时再加上“margin-right: auto;margin-left: auto; ”

注意,如果想用这个方法使整个页面要居中,建议不要套在一个DIV里,可以依次拆出多个div,只要在每个拆出的div里定义MARGIN-RIGHT: auto;MARGIN-LEFT: auto; 就可以了。

3、如何使图片在div中垂直居中,用背景的方法。

例子:
 

body{background: url(http://www.w3cn.org/style/001/logo_w3cn_194x79.gif) #fff no-repeat center;}


关键就是最后的center,这个参数定义图片的位置。还可以写成“top left”(左上角)或者"bottom right"等,也可以直接写数值"50 30"

4、如何使文本在DIV中垂直居中

如果是文字,便不能用背景方法,可以用增高行距的办法变通实现垂直居中。

css样式:
 

<html>
<head>
<style>
body{text-align: center;}
#center{ margin-right: auto;
margin-left: auto;
height:200px;
background:#f00;
width:400px;
vertical-align:middle;
line-height:200px;
}
</style>
</head>
<body >
<div id="center"><p>test content</p></div>
</body>
</html>

说明:
vertical-align:middle;表示行内垂直居中,我们将行距增加到和整个DIV一样高line-height:200px;然后插入文字,就垂直居中了。

5、css+div控制页面中元素垂直居中(全局和区域垂直居中)

css样式代码:
 

<style type="text/css" media=screen>
body
{
text-align: center;
}
#a
{
width: 200px;
height: 400px;
background: #000;
}
#b
{
margin-top: expression((a.clientHeight-50)/2);
width: 50px;
height: 50px;
background: #FFF;
}
#c
{
position: absolute;
left: expression((body.clientWidth-50)/2);
top: expression((body.clientHeight-50)/2);
width: 50px;
height: 50px;
background: #F00;
}
</style>
<div id="a">
<div id="b"></div>
</div>
<div id="c"></div>

方法2,实现div居中:
 

<div style="background:blue;position:absolute;left:expression((body.clientWidth-50)/2);top:expression((body.clientHeight-50)/2);width:50;height:50"></div>

二、css控制div不能居中怎么办?

多是因为没写dtd语句,不符合w3c规则。

在页面的最上方加上:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

很多css失效的问题也都是因为没有写dtd语句而引起的。

2、使用margin来让DIV居中

写法1:
 

.divtemp{ margin:0 auto; }

写法2:
 

.divtemp{ margin-left:auto; margin-right:auto; }

这样就可以让DIV居中了! 用css控制div居中很简单。