4

フォーメーションの同じ行に 3 つの div を表示しようとしています: 左 - 中央 - 右

たとえば、1 つの div を左揃え、次の div を中央揃え、最後の 1 つを右揃えにします。

誰もこれを行う方法を知っていますか? 左右に 2 つの div を配置していますが、真ん中に中央の div を導入すると、右端の div が新しい行に移動します。

4

5 に答える 5

1

次を使用できます:display:flex;

コードを作成し、その仕組みを理解するのに役立つツール: http://the-echoplex.net/flexyboxes/

あなたの場合の例は次のようになります:

.flex-container {
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -webkit-box-direction: normal;
    -moz-box-direction: normal;
    -webkit-box-orient: horizontal;
    -moz-box-orient: horizontal;
    -webkit-flex-direction: row;
    -ms-flex-direction: row;
    flex-direction: row;
    -webkit-flex-wrap: nowrap;
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
    -webkit-box-pack: justify;
    -moz-box-pack: justify;
    -webkit-justify-content: space-between;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -webkit-align-content: stretch;
    -ms-flex-line-pack: stretch;
    align-content: stretch;
    -webkit-box-align: start;
    -moz-box-align: start;
    -webkit-align-items: flex-start;
    -ms-flex-align: start;
    align-items: flex-start;
    }

.flex-item:nth-child(1) {
    -webkit-box-ordinal-group: 1;
    -moz-box-ordinal-group: 1;
    -webkit-order: 0;
    -ms-flex-order: 0;
    order: 0;
    -webkit-box-flex: 0;
    -moz-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    -webkit-align-self: auto;
    -ms-flex-item-align: auto;
    align-self: auto;
    }

.flex-item:nth-child(2) {
    -webkit-box-ordinal-group: 1;
    -moz-box-ordinal-group: 1;
    -webkit-order: 0;
    -ms-flex-order: 0;
    order: 0;
    -webkit-box-flex: 0;
    -moz-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    -webkit-align-self: auto;
    -ms-flex-item-align: auto;
    align-self: auto;
    }

.flex-item:nth-child(3) {
    -webkit-box-ordinal-group: 1;
    -moz-box-ordinal-group: 1;
    -webkit-order: 0;
    -ms-flex-order: 0;
    order: 0;
    -webkit-box-flex: 0;
    -moz-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    -webkit-align-self: auto;
    -ms-flex-item-align: auto;
    align-self: auto;
    }

/*
    Legacy Firefox implementation treats all flex containers
    as inline-block elements.
*/

@-moz-document url-prefix() {
.flex-container {
    width: 100%;
    -moz-box-sizing: border-box;
    }

}

を偽造する他の方法horizontal-align-content:justify(これは構成されたルールです)。 http://codepen.io/gcyrillus/pen/Babcs

古い IES に適応するための CSS がほとんどない

.justify {
  text-align:justify;
  line-height:0;
}
.justify:after, .justify span.ie {
  content:'';
  display:inline-block;
  width:100%;
  vertical-align:top;
}
.justify > div {
  text-align:left;
  line-height:1.2em;
  display:inline-block;
  *display:inline;
  zoom:1;
  width:50%;
  border:solid;
}
.justify > div:nth-child(odd) {
  width:20%;
}

Float と display:table についてはすでに説明しました:)

于 2013-06-24T15:29:03.830 に答える
1

これを行う簡単な方法の 1 つは、任意のフレームワークを使用することです。例: 960gs -> http://960.gs/ .

このフレームワークを使用すると、ページに列を設定できます。例: http://960.gs/demo.html

于 2013-06-24T15:08:05.390 に答える
0

では、div を使用してテーブルを作成しますか? :)

それは次のようなものでなければなりません:

<div style="float:left; width:20%;"></div>
<div style="float:left; width:20%;"></div>
<div style="float:left; width:20%;"></div>

これはcssルールにあるはずですが、おそらく各divの幅を変更したいと思うでしょう

于 2013-06-24T15:09:08.980 に答える
0

次のようなことができます。

body {                    /* or parent element of below child elements */
    position: relative;
}
.left-col {
    float: left;
    width:25%;
    height:100px;
    background-color:blue;
    position:absolute;
    top:0;
    left: 0;
}
.center-col {
    width: 10%;
    height:100px;
    margin: 0 auto;
    background-color: cornflowerblue;
    text-align:center;
}
.right-col {
    width: 25%;
    height:100px;
    background-color:green;
    text-align: right;
    position:absolute;
    top:0;
    right: 0;
}

働くフィドル

3 つの要素の幅の合計が 100% を超えないように注意する必要があります。これらの要素にボーダーを使用する場合は、各要素の子要素を作成position: absoluteしてそれらに与えます。このようなもの:

.childDiv{
    position: absolute;
    top: 2px;                 /* acts as border-top for parent element*/
    bottom: 2px;              /* border-bottom */
    left: 2px;                /* border-left */
    right: 2px;               /* border-right */
    background-color: black;  /* acts as border-color for parent element */
}
于 2013-06-24T15:37:13.800 に答える