CSS居中技巧

时间:2020-03-06 14:52:12  来源:igfitidea点击:

我最喜欢的仅使用CSS将xhtml元素居中的公式如下:

display: block;
position: absolute;
width: _insert width here_;
left: 50%;
margin-left: _insert width divided by two & multiplied by negative one here_

支持它的浏览器中还有一个更简单的margin:auto方法。还有其他人有巧妙的方法来强制内容在其容器中居中显示吗? (垂直居中的加分点)

编辑哎呀,在左边距中忘记了其中一个的"负"部分。固定的。

解决方案

我不得不说,这似乎是过大的杀伤力。对于旧的浏览器,我倾向于将容器设置为text-align:center;,对于现代的浏览器,将容器设置为'margin:auto;`,然后将其保留为这样。然后重置元素中的text-align(如果它包含文本)。

当然,有些东西需要设置为块,而宽度需要设置...但是,我们到底想尝试设置需要大量修改的样式吗?

<div style="text-align:center">
     <div style="width:30px; margin:auto; text-align:left">
         <!-- this div is sitting in the middle of the other -->
     </div>
</div>

div #centered{
 margin: 0 auto;
}

根据我的经验,这似乎是最可靠的。

只要我们确保IE处于标准模式,Margin:auto就可以在所有浏览器中使用。

它比其他文档更挑剔,并且要求doctype必须是文档中的第一个文档,这意味着文档之前不能有空格(空格,制表符或者换行符)。

如果这样做,margin:auto是必经之路! :)

请注意,margin:auto;仅当浏览器可以计算要居中的项目的宽度和父容器的宽度时,此方法才有效。在许多情况下,设置width:auto;有效,但在某些情况下则无效。

使用50%方法的绝对定位会产生严重的副作用,即如果浏览器窗口较窄,则该元素会导致某些内容出现在浏览器的左侧,而无法滚动到该内容。

坚持自动保证金,他们要可靠得多。

如果我们在"标准"模式下工作(应该使用),那么我们可能会在意的所有浏览器都支持它们。

如果确实需要支持Internet Explorer 5.5及更早版本,则可以使用text-align hack。

试试这个;不知道它是否可以在IE中使用,但是在Fx中可以正常使用。它仅使用CSS(没有JavaScript)在DIV块居中放置页面(没有JavaScript),没有margin-auto,并且DIV块中的文本仍然保持对齐。我只是想找出垂直居中是否也可以那样工作,但到目前为止还没有成功。

<html>
<head>
<title>Center Example</title>
<style>
.center {
   clear:both;
   width:100%;
   overflow:hidden;
   position:relative;
}
.center .helper {
   float:left;
   position:relative;
   left:50%;
}
.center .helper .content {
   float:left;
   position:relative;
   right:50%;
   border:thin solid red;
}
</style>
</head>
<body>
<div class="center">
   <div class="helper">
      <div class="content">Centered on the page<br>and left aligned!</div>
   </div>
</div>
</body>
</html>

坚持保证金:0自动;用于水平对齐;
如果还需要垂直对齐,请使用position:absolute;最高:50%;边距顶部:-(width / 2)px;但是请注意,如果容器的宽度大于屏幕的宽度,则使用"位置:绝对"方法,容器的一部分将从屏幕的左侧掉落。

这是CSS技巧的便捷书签

http://css-discuss.incutio.com/

也包含许多居中技巧。

body {
    text-align: center;
}
#container {
    width: 770px;
    margin: 0 auto;
    text-align: left;
}

在所有常用的浏览器中都可以很好地工作。如前所述,margin:0 auto;不适用于所有半当前版本的IE。