1

簡単に言うと、2 つの要素が両側に浮かび、垂直方向に中央に配置されたヘッダーが必要です。

ここに画像の説明を入力

非浮動要素でこれを行うことから始めて、なんとかこの例を作成しました。

float:leftしかし、またはを追加するとfloat:right、垂直方向のセンタリングが失われます (もうフローの一部ではないため、その理由は理解できます)。

これを達成するための最良の方法は何だろうか。CSS の完全な再設計は喜んで受け入れられます。

前もって感謝します!

4

4 に答える 4

1

特にインライン要素を扱っていない場合は、垂直方向のセンタリングが苦痛になる可能性があります。この場合、 を利用することをお勧めしdisplay:table-cellます。

HTML

       <div id="wrapper">
            <div class="cell">
                <div class="content">
                    Content Goes here
                </div>
            </div>
            <div class="cell">
                <div class="content2">
                    <div class="redbox">
                    </div>
                </div>
            </div>
        </div>

CSS

            #wrapper {
                color: white;
                display: table;
                border: 1px solid darkblue;
                background: blue;
                width: 100%;
            }

            .cell {
                display: table-cell;
                vertical-align: middle;
                height: 200px;
            }

            .content {
                float: left;
            }

            .content2{
                float: right;
            }

            .redbox {
                border: 2px solid darkred;
                background: red;
                height: 75px;
                width: 75px;
            }

例: http://jsfiddle.net/YBAfF/

于 2012-12-10T10:41:34.277 に答える
1

親divに追加text-align:rightすると、子要素が右側に配置されます。ここで float:left を追加します#text

#parent {
  border: 1px solid black;
  display: block;
  line-height: 400px;
  height: 400px; text-align:right

}

#text {
  display: inline-block;
  border: 1px dashed black;
  height: 100%; text-align:left; float:left
}

#logo {
  border: 1px dashed black;
  height: 90%;
  line-height: 90%;
  vertical-align: middle;
  display: inline-block;
}

#logo img {
  border: 1px dashed red;
  height: 100%;
}
​

デモ

于 2012-12-10T10:20:53.363 に答える
0

中央に配置する要素の周りにラッパーを追加し、ラッパー内にフロートさせる必要があります。そんな感じ:

HTML

<div class="center">
  <p class="left">Some text goes here</p>
  <img src="/path/toimage" alt="My image" class="right">
</div>

CSS

.center {
  margin:0 auto;
  width: 400px;
}
.right {
  float: right;
}
.right {
  float: left;
}

もちろん、これは非常に単純な例です。必要に応じて値とCSSを変更できます。

于 2012-12-10T10:14:07.157 に答える
0

以下は、 jsfiddleのサンプルと同じコードです。要素の高さを設定すると、同じ行の高さをネストされた要素に設定でき、要素はその高さに拡張されます。コンテンツを垂直方向に中央揃えにします。

HTML

<div id="wrapper">
<div id="left">left</div>
<div id="right">right</div>
</div>​

CSS

#wrapper{
    margin:0 auto;
    width 960px;
    background: #eee;
    height:50px;
}
#left{
    float:left;
    background:#ccc;
    line-height:50px;
}
#right{
    float:right;
    background:#ddd;
    line-height:50px;
}

</p>

于 2012-12-10T10:11:53.287 に答える