4

高さ 60px の要素があり、その中に画像やいくつかのスパンなどの他の要素があり、それらを高さ 60px の要素内で垂直方向に揃えるのに問題があります。モックアップと CSS は次のとおりです。

<div class="member">
    <img src="images/pic.png" alt="John Smiths's Profile Picture" class="pic">
    <span class="name"><a href="">John Smith</a></span>
    <span class="skills">PHP, MySQL, Javascript, C#, Java</span>
</div>

#sidebar .member {
    height: 60px;
    margin-bottom: 10px;
    vertical-align: center;
}

#sidebar .member .name {
    font-size: 15px;
    font-weight: bold;
}

#sidebar .member .pic {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    float: left;
    margin-right: 10px;
}

#sidebar .member .skills {
    display: block;
    font-size: 12px;
    overflow: hidden;
}

私はそれをjsfiddleに載せました:http://jsfiddle.net/CYFyx/2/

ご覧のとおり、要素内の.member要素が一番上に押し上げられています。次のように縦に並べる必要があります。

ここに画像の説明を入力

すでに試しvertical-align: middle;ましたが、うまくいきませんでした。

4

4 に答える 4

5

vertical-align: middletd テーブル レイアウトでのみ使用できます。したがって、スパンの周りに div を追加する必要があります

<div class="cell">
    <span class="name"><a href="">John Smith</a></span>
    <span class="skills">PHP, MySQL, Javascript, C#, Java</span>
</div>   

このプロパティで

#sidebar .member .cell {
    display: table-cell;
    vertical-align: middle;
    height: 50px;
}

ここでテストできます: http://jsfiddle.net/Tn2RU/

于 2012-11-13T20:22:18.610 に答える
2

を使用して垂直方向に整列できるdivにそれらすべてを入れてみてください

position:relative; 
margin-top: auto; 
margin-bottom: auto; 
height: XXpx;
于 2012-11-13T20:18:39.467 に答える
1

親要素の幅と子の幅を設定して、次の行に移動する必要があります。

もう1つの可能性は、親要素をに設定してからすべての子position:relativeに使用position:absoluteし、単純に正確に配置しtop:20px;、次のものtop:40px;などにすることです.

この 2 番目のソリューションを使用すると、すべての子要素の正確なピクセル位置を取得できます。

それはあなたに最高の結果をもたらすでしょう。

于 2012-11-13T20:20:27.823 に答える
1

それらを div に入れて、上部にパディングを追加することもできます。

HTML

<div id="block">
        <span class="name"><a href="">John Smith</a></span>
        <span class="skills">PHP, MySQL, Javascript, C#, Java</span>
</div>

CSS

#block {
 padding-top:5px;  
}

jsフィドル

于 2012-11-13T20:25:13.757 に答える