1

我正在尝试将一些文本水平居中在 div 中。

CSS:

#parent {
      background-color: #eee;
      height: 48px;
      text-align: center;
}
#colLeft {
      background-color: #ff8b8b;
      height: 48px;
      display: inline;
      float: left;
}
#colRight {
      background-color: #c3d0ff;
      height: 48px;
      display: inline;
      float: right;
}

HTML:

<div id="parent" style="width:100%">
      <div id="colLeft">left left left left</div>
      Title
      <div id="colRight">right</div>
 </div>

 <div style="width:100%; text-align:center">
      Title - this one is really centered.
 </div>

但是考虑到#colLeft占用的空间,文本“标题”似乎居中,因此相对于浏览器宽度而言,它并没有真正居中。

有没有一种方法可以让文本真正居中,无论#colLeft占用多少空间?

4

3 回答 3

1

这不是真的推荐,但你可以做这样的事情JS Fiddle

#parent {
      background-color: #eee;
      height: 48px;
      text-align: center;
}
#colLeft {
      background-color: #ff8b8b;
      height: 48px;
      display: inline;
      float: left;
}
#colRight {
      background-color: #c3d0ff;
      height: 48px;
      display: inline;
      float: right;
}
.title{
    position: absolute;
    width: 100px;
    left: 50%;
    margin-left: -50px;
}

<div id="parent" style="width:100%">
      <div id="colLeft">left left left left</div>
    <div class="title">Title</div>
      <div id="colRight">right</div>
 </div>

 <div style="width:100%; text-align:center">Title - this one is really centered.</div>​

你做标题position:absolute。给它一个宽度。left: 50%. margin-left:减去宽度的一半。它将保持中心位置。但我真的不建议这样做......

于 2012-12-16T21:59:26.347 回答
1

如果你用这样的 div 包围 Title:

<div style="position: absolute;left: 50%">Title</div>

你很擅长 Webkit。

于 2012-12-16T22:02:42.243 回答
0
<div align="left" style="border:5px solid white; text-align:center; position:relative">

<div align="left" style="border:4px solid brown; float:left; width:100px; position:absolute"><span>left</span></div>
<div align="left" style="border:4px solid brown; right:0; width:200px; position:absolute"><span>right</span></div>

<span>really centered</span></div>
于 2012-12-16T22:23:29.927 回答