`

div居中可能存在的问题及解决方案

阅读更多
CSS 如何使DIV层水平居中

今天用CSS碰到个很棘手的问题,DIV本身没有定义自己居中的属性,

网上很多的方法都是介绍用上级的text-align: center然后嵌套一层DIV来解决问题.

可是事实上这样的方法科学吗?

经过网络搜索和亲自实验得出以下结论:

正确的也是对页面构造没有影响的设置如下:

对需要水平居中的DIV层添加以下属性:



margin-left: auto;

margin-right: auto;



经过这么一番设置问题似乎解决了,在FF中已经居中了,可是在IE中看竟然还是没有居中!

郁闷了一下午,就是找不出问题所在,还特地比较了网上的文章竟然一模一样.

问题到底出在哪里呢?

感谢网友乐天无用帮忙找出了这个邪门问题的原因.

原来是L-Blog默认没有在HTML前加上DTD,于是IE就以HTML而不是XHTML来解释文档.

问题并不在CSS而在XHTML网页本身.

需要加上这样的代码才能使得上述设置有效果:

<!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请查阅相关文档.

以上测试均基于Windows XP SP2版IE6和FireFox 1.0最终版.


如何使DIV居中


主要的样式定义如下:

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; 就可以了。



如何使图片在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"



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

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

<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;然后插入文字,就垂直居中了。



CSS+DIV控制页面中元素垂直居中代码 全局和区域垂直居中


<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>


另一方法:

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

相关推荐

    css3代码属性Flexbox实现内部div上下居中效果

    在布局的传统解决方案中,都是基于盒状模型,依赖display属性、position属性、float属性,这种方式比较传统,对于那些特殊布局来说非常不方便,比如,垂直居中就不容易实现。 尤其是现在移动设备如此多的今天,...

    控制DIV中文字绝对居中的简单方法

    搞了这么久,以前不知道怎么弄,老是用表格,今天终于搞清楚了。。。 水平居中:&lt;div align=center&gt;Content&lt;/div&gt; ...不过对于垂直居中,却要设置固定高度,有点不方便,暂时想不到什么方法来解决自适应高度。

    CSS中让DIV居中的代码

    CSS 如何使DIV层水平居中 今天用CSS碰到个很棘手的问题,DIV本身没有定义自己居中的属性, 网上很多的方法都是介绍用上级的text-align: center然后嵌套一层DIV来解决问题. 可是事实上这样的方法科学吗? 经过网络搜索和...

    div图片垂直居中 如何使div中图片垂直居中

    div相对与table对于图片的垂直居中支持的并不好,特别对于不同浏览器的兼容性来说,这里我们看下一个简洁的css解决方法: 在曾经的 淘宝UED 招聘 中有这样一道题目: “使用纯CSS实现未知尺寸的图片(但高宽都小于200px...

    CSS中怎么让DIV居中亲自实验得出的结论

    CSS 如何使DIV层水平居中 今天用CSS碰到个很棘手的问题,DIV本身没有定义自己居中的属性, 网上很多的方法都是介绍用上级的text-align: center然后嵌套一层DIV来解决问题. 可是事实上这样的方法科学吗? 经过网络搜索和...

    div水平垂直居中的完美解决方案

    很多情况需要用到div的居中,下面是脚本之家编辑参考一些网站整理的一篇文章。希望对朋友们有所帮助。

    纯css多种方法实现div中单行文字、多行文字及嵌套div垂直水平居中

    学习过程中经常遇到要居中的问题,水平居中问题比较好解决,而垂直居中问题因为vertical-align经常失效,所以不容易实现,今天将自己总结的一些方法归纳于这边。 1.div中单行文字垂直水平居中。条件:外层div高度...

    图片上下左右居中不变形解决方案

    resizepic 根据图片的实际比例适用外层div的大小,或左右居中显示 或上下居中显示。 完美解决图片缓存后不执行onload事件的情形。兼容 ie ff 谷歌

    Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法

    这两天要用到正好练练手,比想象中碰到的问题要多,比如: ie6背景透明 ie6居中显示 还有对js对象的理解 openID=显示按钮,conID=需要显示的div,closeID=关闭按钮 解决了: 1.可以遮挡ie6下的select元素 但是在ie6下div...

    div垂直居中-CSS元素垂直居中方法的探究

    针对学员疑问“div垂直居中?”引出的“CSS元素垂直居中一系列方法的探究”的针对性课程,课程包含两方面:1、文本垂直居中的解决方案;2、块级元素垂直居中的解决方案。

    chrome居中但ie不居中的解决方法

    今天用CSS碰到个很棘手的问题,DIV本身没有定义自己居中的属性, 网上很多的方法都是介绍用上级的text-align: center然后嵌套一层DIV来解决问题. 可是事实上这样的方法科学吗? 经过网络搜索和亲自实验得出以下结论: ...

    css教程:DIV垂直居中的办法

    经过今天一翻改进,终于找出了解决DIV垂直居中的办法。 &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;&lt;...

    不固定宽度和高度的情况下CSS调整div居中的方法总结

    而怎么样才能让这个div居中显示呢?其实这种情况解决的办法也是有很多种,js,css都可以实现。这里主要介绍一下采用css的方法,有什么问题还请各位看官指出。 方法一:用一个“ghost”伪元素(看不见的伪元素)和 ...

    css3代码属性Flexbox实现内部div上下居中效果.zip

    在布局的传统解决方案中,都是基于盒状模型,依赖display属性、position属性、float属性,这种方式比较传统,对于那些特殊布局来说非常不方便,比如,垂直居中就不容易实现。 尤其是现在移动设备如此多的今天,需要...

    如何使div垂直水平居中的css代码

    主要的样式定义如下,这也是最简单的方法: body {TEXT-ALIGN: center;... ” 需要说明的是,如果你想用这个方法使整个页面要居中,建议不要套在一个DIV里,你可以依次拆出多个div,只要在每个拆出的

    让横向排列的几个浮动(float:left)的子div居中显示

    div设置成float之后,在父div中设置text-align:center,就无法使子div居中显示,下面有个不错的解决方法,大家可以参考下

    CSS设置DIV垂直居中的N种方法 兼容IE浏览器

    在说到这个问题的时候,也许有人会问CSS中不是有vertical-align属性来设置垂直居中的吗?... Tips: 完美解决方案在文末! 一、单行垂直居中 如果一个容器中只有一行文字,对它实现居中相对比较简单,我们只需

    div垂直居中的N种方法 单行/多行文字(未知高度/固定高度)

    接下来将介绍下:div垂直居中的N种方法包括:单行垂直居中/多行未知高度文字的垂直居中/多行文本固定高度的居中/在InternetExplorer中的解决方案等等感兴趣的你可不要错过了哈,或许本文所提供的方法对你有所帮助

    css实现div水平、垂直居中兼容chrome、ie8

    主要介绍了使用css实现的div水平、垂直居中并且兼容chrome、ie8,具体示例如下,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics