2016-08-04 22 views
2

divに問題があります。私は、リンク "Go"を右揃えにし、親divの垂直中央にしたいと思います。私はいくつかの方法を試みたが、まだ成功していない。あなたは、より良いアイデアを持っていると私は私の問題を解決できる方法を知っていればdivを親divの右側と中央に配置する方法

div.row { 
 
    position: relative; 
 
    border-bottom: 1px dotted #999999; 
 
} 
 
div.list div.name { 
 
    float: left; 
 
    width: 40%; 
 
} 
 
div.list div.info { 
 
    float: left; 
 
    width: 60%; 
 
} 
 
div.list div.action { 
 
    display: inline-block; 
 
    text-align: right; 
 
    vertical-align: middle; 
 
}
<div class="list"> 
 
    <div class="row"> 
 
    <div class="name"> 
 
     <span>1</span> 
 
     <br /> 
 
     <a href="1.php">1</a> 
 
     <br />(2015-09-30) 
 
    </div> 
 

 
    <div class="info"> 
 
     <b>Place:</b> 
 
     <br />Now 6 
 
     <br />Later 32 
 

 
     <div class="action"> 
 
     <a href="1go.php">Go</a> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

だから、私は聞くのが大好きだ:

そして、ここでは、あなたは私のHTMLとCSSのコードを見ることができます。

可能であれば、私はクロスブラウザソリューションを探しています。今回はJavaScript/jQueryが許可されていません。

+0

あなたはクロスブラウザを言うCSSは、古いブラウザのバージョンが含まれますか? Flexboxははるかに簡単な解決策ですが、IEの古いバージョンには問題があります。 – Cameron

+0

[div内の要素の垂直方向の配置]の可能な複製(http://stackoverflow.com/questions/79461/vertical-alignment-of-elements-in-a-div) – Cameron

+0

フレックスボックスなし、ありがとう。ページがIE 7で動作していればうれしいでしょう。 – xms

答えて

1

ダイナミックな高さとクロスブラウザ機能を備えた親の場合、表示:table-cell内のdisplay:table-divを使用して、古いCSS2トリックを使用する必要があります。 This explains it in more detail

HTML

<div class = "info-left"> 
    <b>Place:</b> 
    <br />Now 6 
    <br />Later 32 
    </div> 

.info{ 
    display: table; 
} 

div.info div.action{ 
    display: table-cell; 
    vertical-align: middle; 
} 

Here's a fiddle

+0

'margin-top:17px;'は親divの高さを知らないのであまり良くありません。それはこれまでに何でもできます。 – xms

+0

これを考慮に入れて更新しました –

+0

ありがとうございました! 'display:table;'と 'display:table-cell;'なしでこれを行うことは可能でしょうか?これがIE 7でうまくいくなら、それは素晴らしいことでしょう。 – xms

関連する問題