2017-08-21 15 views
2

テーブルセルの私の理解は、各テーブルセルの高さが最も高いテーブルセルと同じ高さに拡大することです。しかし、この例では、.col1内のimgdisplay: blockに設定され、.col2内のテキストが最後まで押し込まれると、.col2の高さは.col1以下になります。 display: blockimgから削除されている場合は、.col1.col2がテキストを中央に揃えて整列しています。私の質問は、なぜimgdisplay: blockは、表セルのレンダリング方法とテキストの配置方法を変更するのですか?差異を確認するにはimgdisplay: blockを切り替えます。テーブルセルの高さ、imgの表示:ブロック

https://codepen.io/norkuy/pen/EvQQrE

HTML

<div class="row1"> 
    <div class="col1"> 
     <img src="http://lorempixel.com/1000/800/" alt=""> 
</div> 
<div class="col2"> 
    <p><div>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Amet 
mollitia est maiores temporibus ea, sint ex repellat ipsa eveniet nesciunt. 
</div></p> 
</div> 
</div> 

<p><div>Lorem ipsum dolor sit amet consectetur adipisicing elit. Ab veniam 
praesentium delectus aliquid ea nisi porro eius rem debitis architecto quas, 
hic placeat ratione possimus voluptates perferendis at voluptatibus tenetur! 
</div></p> 

CSS

.col1, .col2 { 
    width: 50%; 
    display: table-cell; 
} 

.col2 { 
    background: black; 
    color: white; 
} 

.row1 { 
    display: table; 
    img { 
    display: block; 
    } 
} 

img { 
    max-width: 100%; 
    width: 100%; 
} 
+0

お客様のHTMLは無効です。段落にdivを含めることはできません。 – j08691

+0

vertical-alignを使用するようにしてください。テーブルセルの要素に – Dexter0015

+0

欠けているのは、あなたの行に 'table-row'の表示があるということです。 – Kejt

答えて

0

したい場合は、あなたのtable-cell要素が正常に動作し、あなたの細胞のコンテナがtable-row表示

.table { 
 
    display: table; 
 
    width: 100%; 
 
} 
 
.row { 
 
    display: table-row; 
 
} 
 

 
.cell { 
 
    display: table-cell; 
 
    width: 50%; 
 
    vertical-align: middle; 
 
    border-bottom: 1px solid #000; 
 
}
<div class="table"> 
 
    <div class="row"> 
 
    <div class="cell"> 
 
    <br/><br/>fdfsf 
 
    </div> 
 
    <div class="cell"> 
 
    dffdsf 
 
    </div> 
 
    </div> 
 
</div>
01を有していなければなりません

+0

vertical-align:middleを削除しても、問題は引き続き発生します。また、それらがdisplay:table-rowであるかどうかに関係なく発生します。 – norkuy

関連する問題