内联元素的水平对齐改进

时间:2012-10-28 19:45:47

标签: css html

在我的页面上,我在标题区域中有两个元素。我希望第一个元素在标题区域的中间居中,第二个元素一直推到标题区域的右侧。我使用此代码实现了预期的效果:

<div id="header-area" style="text-align:center;width:100%;">
  <div id="partition1" style="display:inline-block;width:33%;"></div>
  <div id="partition2" style="display:inline-block;width:33%;">
    <div id="element1" style="display:inline;width:400px;height:100px;">
      <h3 style="display:inline;width:400px;">Main title Goes Here</h3><br/><br/>
      <p style="display:inline;width:400px;">Subtitle goes here</p>
    </div>
  </div>
  <div id="partition3" style="display:inline-block;width:33%;text-align:right;">
    <div id="Element2" style="display:inline;width:150px;vertical-align:middle;">
      <button onclick="history.back();" style="height:45px;width:100px;">
      Back</button>
    </div>
  </div>
</div>

您会注意到我将header-area分区为三个空格并对齐element1&amp; element2在各自的分区中。如何在不分区header-area的情况下实现相同的布局?

1 个答案:

答案 0 :(得分:3)

有几种方法可以做到这一点。这是两个:

选项#1:浮动

HTML:

<div id="header">
    <div class="right">Element on right end</div>
    <div class="center">Center-Aligned Element</div>
</div>

CSS:

#header {
    text-align: center;
}

#header div.center {
    margin: 0 auto;
    text-align: center;
    width: 30%;
}

#header div.right {
    float: right;
    text-align: right;
}

选项#2:绝对位置

HTML:

<div id="header">
    <div>Center-Aligned Element</div>
    <div class="right">Element on right end</div>
</div>

CSS:

#header {
    text-align: center;
}

#header div {
    text-align: center;
    width: 30%;
    margin: 0 auto;
}

#header div.right {
    position: absolute;
    top: 0;
    right: 0;
    text-align: right;
}

使用元素的示例:

HTML:

<div id="header">
    <h3>Main Title Goes Here</h3>
    <p>Subtitle Goes Here</h3>
    <button>Element on right end</button>
</div>

CSS:

#header {
    text-align: center;
}

#header h3,
#header p {
    margin: 0 auto;
    text-align: center;
    width: 30%;
}

#header button {
    position: absolute;
    top: 0;
    right: 0;
}