<html>
<style type="text/css">
.table { display: table;}
.tablerow { display: table-row; border:1px solid black;}
.tablecell { display: table-cell; }
</style>
<div class="table">
<div class="tablerow">
<div class="tablecell">Hello</div>
<div class="tablecell">world</div>
</div>
<div class="tablerow">
<div class="tablecell">foo</div>
<div class="tablecell">bar</div>
</div>
</div>
</html>
私の理解によると、tablerowクラスを介して指定した各行に黒い境界線を描画する必要がありますが、境界線は表示されません。
行の高さを変更したかったのですが、「px」で指定した場合は動作しますが、%で指定した場合は動作しません。
.tablerow {
display: table-row;
border:1px solid black;
position: relative; //not affecting anything and the border disappears!!
//position: absolute; // if this is set,the rows overlaps and the border works
height: 40%; // works only if specified in px and not in %
}
どこかで何かがおかしいのですが、どこを理解することができません。助けてください!
追加する必要があります border-collapse: collapse;
に.table
このように機能するクラス:
<html>
<style type="text/css">
.table { display: table; border-collapse: collapse;}
.tablerow { display: table-row; border: 1px solid #000;}
.tablecell { display: table-cell; }
</style>
<div class="table">
<div class="tablerow">
<div class="tablecell">Hello</div>
<div class="tablecell">world</div>
</div>
<div class="tablerow">
<div class="tablecell">foo</div>
<div class="tablecell">bar</div>
</div>
</div>
</html>
表の行に境界線属性を含めることはできません。すべてのセルに上下の境界線を指定し、左端と右端のセルにそれぞれ左と右の境界線を持つクラスを追加することにより、各行の周囲に境界線を取得できます。
編集:border-collapse:collapse
を忘れました。それも動作します。
border
をtablecell
クラスに追加する必要があります。
また、見栄えを良くするには、border-collapse:collapse;
をテーブルクラスに追加する必要があります。
例: http://jsfiddle.net/jasongennaro/4bvc2/
[〜#〜] edit [〜#〜]
コメント通り
私はdivに境界線を適用しています、それは正しく表示されるはずですか?
はい。ただし、table
として表示するように設定すると、それがtable
として機能するため、テーブルを表示するためのcssルールに従う必要があります。
行にのみborder
を設定する必要がある場合は、border-top
およびborder-bottom
を使用してから、左端および右端のセルに特定のクラスを設定します。