3个DIV,1个容器,水平居中对齐

时间:2017-02-10 15:29:52

标签: html css alignment flexbox

我已经将三个DIV放入容器中DIV

我想要的如下:

Demo image

我在这里:



#light-table {
  background-color: #e2e2e2;
  width: 100%;
  padding-top: 15px;
  padding-bottom: 15px;
  padding-left: 40px;
  padding-right: 40px;
  text-align: left;
  margin-top: 30px;
  margin-bottom: 30px;
}
#leftdiv {
  float: left;
  padding: 0 20px;
  /*margin:20px 0;*/
  position: relative;
  width: 25%;
  flex-basis: 25%;
}
#leftdivcontainer {
  vertical-align: middle;
  width: 100%;
  text-align: center;
}
#light-table-paragraph {
  font-family: 'Droid Serif';
  font-size: 20px;
  color: #2e2e2e;
  text-align: left;
  line-height: 40px;
}

<div id="light-table">
  <h3 id="light-table-head-style">content.</h3>
  <div id="leftdivcontainer">
    <div id="leftdiv">
      <p id="light-table-paragraph">Left</p>
    </div>
    <div id="leftdiv">
      <p id="light-table-paragraph">Middle</p>
    </div>
    <div id="leftdiv">
      <p id="light-table-paragraph">Right</p>
    </div>
  </div>
</div>
&#13;
&#13;
&#13;

请有人帮忙告诉我哪里出错了?

谢谢! 斯科特

2 个答案:

答案 0 :(得分:2)

设置包含三个小div obj1={key1: "val1", key2: "val2", key3: "val3", key4: "val4"} obj2={key5: "val5", key6: "val6"} //result should be: 0% obj1={key1: "val1", key2: "val2", key3: "val3", key4: "val4"} obj2={key1: "val1", key2: "val2"} //result should be: 50% 的div并给它75%的容器宽度,然后在内容周围设置空格如下:

display:flex
#leftdiv {
    /*float: left;*/
    padding:0 20px; 
    /*margin:20px 0;*/
    position:relative;
    /* edits */
    width:33.33%;
    flex-basis: 25%; 
}

#leftdivcontainer {
    vertical-align:middle;
    text-align: center;
    /* edits */
    width:75%;
    display: flex;
    margin: 0px auto;
    justify-content: space-around;
}

#light-table-paragraph {
    font-family: 'Droid Serif';
    font-size: 20px;
    color: #2e2e2e;
    text-align: left;
    line-height:40px;
}

#light-table {
    background-color: #e2e2e2;  
    width: 100%;  
    padding-top: 15px;
    padding-bottom: 15px;
    padding-left: 40px;
    padding-right: 40px;
    text-align: left;
    margin-top:30px;
    margin-bottom: 30px;
}

答案 1 :(得分:1)

这是我将如何做到的。

给每个.leftdiv(确实这应该是一个类,id是唯一的)33%的总视口宽度:

.leftdiv {
  float: left;
  width: 33%; 
}

并将这些div中的每个段落居中,给它75%的宽度:

.leftdiv p {
  display: block;
  width: 75%;
  margin: 0 auto !important; /* you won't need !important if your code is well structured */
}

这是一个更清洁的解决方案,因为您会注意到没有水平滚动。

Here是一个代码。

此外,你需要清除你的父div #leftdivcontainer(也做到了)。

希望这有帮助。