首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >布局问题:中心两个固定列

布局问题:中心两个固定列
EN

Stack Overflow用户
提问于 2015-03-02 23:47:46
回答 1查看 32关注 0票数 1

我如何定位标签#2和标签#3在panel div的中心,因为标签#1和标签#4分别是左右浮动的。

当浏览器宽度达到一定高度时,我还想将标签#2和标签#3移到标签#1和标签#4下面。所以标签#1和标签#4应该在一起,标签#2和标签#3就在它们下面。

参见这里的示例:http://jsfiddle.net/p7ws5cxx

代码语言:javascript
复制
html, body {
  font-family:'Helvetica Neue', Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
}
#panel {
  width: 100%;
  background: #ddd;
  display: block;
  height: auto;
  float: left;
}
.box-1, .box-2, .box-3, .box-4 {
  border: 2px solid #aaa;
  background: #fff;
  padding: 1em;
  width: auto;
  float: left;
  border-radius: 2px;
  display: inline-block;
}
.center-box {
  margin: 0 auto;
  float :left;
  border: 1px solid blue;
  text-align: center;
}
.box-4 {
  float: right;
}
@media screen and (max-width: 568px) { 
  .box-1, .box-4 {
    width: 50%;
    float: left;
  }
  .center-box {
    margin: 0 auto;
  }
}
代码语言:javascript
复制
<div id="panel"> 
    <span class="box-1">Label #1</span>
    <div class="center-box"> 
        <span class="box-2">Label #2</span>
        <span class="box-3">Label #3</span>
    </div> 
    <span class="box-4">Label #4</span>
</div>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-03 00:06:54

假设允许更改HTML元素的顺序,则可以通过float.box-1/.box-4转换为left/right并将其他框显示为内联元素来实现布局。

然后,为了在面板的中心对齐它们,我们可以将text-align: center添加到.center-box元素中。

还请注意,在内联流中,有一个whitespace between inline-level elements。消除差距的一个选项是将父级的font-size设置为0,然后将其重新设置为子级的默认值。

代码语言:javascript
复制
*, *:before, *:after {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

html, body {
    font: 500 14px 'Helvetica Neue', Arial, sans-serif;
}
#panel {
    background: #ddd;
}
#panel:after,
#panel:before {
    content: "";
    display: table;
}
.box-1, .box-2, .box-3, .box-4 {
    border: 2px solid #aaa;
    background: #fff;
    padding: 1em;
    border-radius: 2px;
}
.box-1 {
    float: left;
}
.box-4 {
    float: right;
}
.box-2, .box-3 {
    display: inline-block;
    vertical-align: top;
    font-size: 14px;
}
.center-box {
    border: 1px solid blue;
    text-align: center;
    font-size: 0;
}

@media screen and (max-width: 568px) { 
    [class^="box-"] {
        width: 50%;
    }
}
代码语言:javascript
复制
<div id="panel"> 
    <span class="box-1">Label #1</span>
    <span class="box-4">Label #4</span>
    <div class="center-box"> 
        <span class="box-2">Label #2</span>
        <span class="box-3">Label #3</span>
    </div> 
</div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28821580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档