在每个浏览器的屏幕上居中 div

Posted

技术标签:

【中文标题】在每个浏览器的屏幕上居中 div【英文标题】:Center a div on the screen in every browser 【发布时间】:2012-11-17 15:59:02 【问题描述】:

我有一个包含我的表单的 div(作为一个蓝色框)。我需要在每个浏览器的屏幕上居中该 div。我对此进行了搜索,人们说如果我将保证金设置为auto,它应该可以工作。

但是不,这会将我的框(div)放在每个浏览器的左侧。

<html>
..
...
<body>

<div id="questionare">

<form .....
....
....
</form>
         </div>

</body>

...
....

</HTML>

在我的 CSS 上,我尝试了以下操作:

#questionare

 margin: 0 auto ;
 position:relative;
 width: 300px; 
 text-align: left;
 background:rgb(127, 177, 198);
 padding: 88px 79px 29px; 
 border-radius: 10px;
 box-shadow: 0px 5px 12px rgba(0,0,0,0.4); 
-webkit-border-radius: 10px; 
-moz-border-radius: 10px; -khtml-border-radius: 10px; 
-webkit-box-shadow: 0 5px 12px rgba(0, 0, 0, .4); 
-moz-box-shadow: 0 5px 12px rgba(0, 0, 0, .4); 
-khtml-box-shadow: 0 5px 12px rgba(0, 0, 0, .4);
 behavior: url(/PIE.htc);

-或-

#questionare
 margin-left: auto ;
 margin-right: auto ;
 position:relative;
width: 300px;

text-align: left;
background:rgb(127, 177, 198);
padding: 88px 79px 29px; 
border-radius: 10px;
box-shadow: 0px 5px 12px rgba(0,0,0,0.4); 
-webkit-border-radius: 10px; 
-moz-border-radius: 10px; -khtml-border-radius: 10px; 
-webkit-box-shadow: 0 5px 12px rgba(0, 0, 0, .4); 
-moz-box-shadow: 0 5px 12px rgba(0, 0, 0, .4); 
-khtml-box-shadow: 0 5px 12px rgba(0, 0, 0, .4);

behavior: url(/PIE.htc);



表单样式为空

form


解决办法是什么?

【问题讨论】:

您的格式不正确。请参阅我的答案以获取示例,并使用您提供的 html 和 css 看到它使用正确的格式。 【参考方案1】:

修复标签的布局,布局将正常工作。例如&lt;/div&gt; 而不是&lt; /div&gt;

在这里查看它的工作原理:http://jsfiddle.net/XscZK/

【讨论】:

感谢您的帮助,我只是看到了我的错误,我之前有一个带有位置的图像标题:absolute; 没问题。使用正确格式的代码,您的 css 和元素将按应有的方式工作。然后,您也可以以相同的方式将图像居中。【参考方案2】:

在大多数情况下,最好不要使用集中式 div 来设置其内容的样式,而是这样做。

#questionaire
position:realative;
margin:auto;
width:300px;

#questionaire_innner_div
position:relative;
float:left;
padding: 88px 79px 29px; 
width:242px;

那么你的 html 应该是这样的。

<div id="questionaire">
<div id="questionaire_innner_div">

<form>
...
...
...
</form>

</div>
</div>

【讨论】:

【参考方案3】:

除了使用其他答案中建议的 Doctype 之外, 你需要有这个css规则:

bodytext-align: center;
.wrapper
text-align: left;
margin: 0 auto;
width: 100px; /* or your desired size, or no size if you want the div to be 100% */
height: 100px; /* or your desired size, or no size if you want the div to be 100% */

将正文文本对齐设置为居中很重要,这样它就可以在所有浏览器中使用

【讨论】:

感谢您的帮助,我只是看到了我的错误,在此之前我有一个带有位置的图像标题:absolute; .【参考方案4】:

它实际上对我有用,请参阅jsFiddle。

我没有更改任何代码。

您的问题可能是您缺少doctype,迫使浏览器以怪癖模式呈现。

【讨论】:

哇!太奇怪了,现在我正在使用用户在这里推荐我的这个doctipe:ttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" rel="nofollow" target="_blank">w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd "> .我的文件也是一个 php 文件(但这不应该是问题)【参考方案5】:

尝试使用类似的 DTD

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

【讨论】:

以上是关于在每个浏览器的屏幕上居中 div的主要内容,如果未能解决你的问题,请参考以下文章

html中怎么让div层固定在屏幕中央右边500像素的位置

如何在div中垂直居中图像

css如何使div里面的文字垂直对齐

使用 CSS 跨浏览器 div 居中对齐

asp.net如何获取浏览器原点相对于屏幕的位置

html DIv里面的auto是干啥用的?