【CSS】display:tableの書き方、使い所を初心者にもわかりやすく解説

公開日: 2021.11.10
更新日: 2024.01.06
display:tableの書き方使い所を初心者にもわかりやすく解説

CSSで要素を横ならびにするには、「float」や「flexbox」などいくつかの方法があります。

「display:table」もその一つです。比較的簡単に実装可能な上、中央揃えや複数行など、さまざまな設定が可能です。

今回は「display:table」の使用法について、初学者にもわかりやすいように解説します。

比較的簡単に記述することができるので、最後まで読んで参考にしてください。

display:tableの記述法

「display:table」は文字通り、要素にtableタグの特徴を持たせるプロパティです。

記述法を解説します。

HTML
<div class="table">
<div class="cell">内容1</div>
<div class="cell">内容2</div>
<div class="cell">内容3</div>
</div>

このように外側を囲うタグと、内側の内容のタグを記述してください。

今回はdivタグを二重にしましたが、ulタグなどの使用も可能です。

このHTMLにCSSの指定を行います。

CSS
.table {
display:table;
}
.table > .cell {
display:table-cell;
}
display:tableを解説した画像

まず外側の「table」に「display:table」を記述します。これだけでは横並びになりません。「table」の内側の「cell」には「display:table-cell」という記述を行います。

「display:table」はこの2つに記述で成り立っています。

「display:table」を指定した要素がtableタグ、「display:table-cell」がtdタグとなり、横並びが実現します。

境界線と余白の指定

上記の記述だけでは、要素が横並びになるだけです。

境界線や余白を指定することで、見やすくなります。

CSS
.table {
display:table;
border-collapse:collapse; /*隣接する要素のborderを共有*/
}
.table > .cell {
display:table-cell;
border:#333333 1px solid; /*境界線を指定*/
padding:10px; /*余白を指定*/
}
display:tableにcssで装飾した時の画像

このように「cell」に境界線と余白を指定することで、表のような見た目になります。

幅の指定

「display:table」を指定した要素は、そのままでは中身の分しか幅がとられません。

幅を変えたい場合は、CSSで指定する必要があります。

CSS
.table {
display:table;
border-collapse:collapse; /*隣接する要素のborderを共有*/
width:100%; /*幅を100%に*/
table-layout:fixed; /*中の要素の幅を均等に*/
}

「table」全体の幅を100%に指定しました。幅はピクセルでも指定可能です。

「table-layout:fixed」は、「table」の子要素の幅をすべて均等にするという記述です。

幅の数値を計算する手間が省けるので、とても重宝するプロパティです。

縦の位置の指定

「display:table-cell」は縦方向の配置を指定することができます。

HTML
<div class="table">
<div>内容1</div>
<div>内容2<br>
内容2</div>
<div>内容3<br>
内容3<br>
内容3</div>
</div>
CSS
.table {
display:table;
}
.table > div {
display:table-cell;
vertical-align: middle; /*要素の縦の配置を指定*/
}
display:table-cellを使用した時の画像

「vertical-align:middle」によって、それぞれ高さのことなる3つの要素が、すべて縦に中央揃えになります。

「vertical-align」は縦の配置を指定するプロパティですが、middleの他に上配置のtop、下配置のbottomなどがあります。

2行にする

「display:table」はtableタグと同様、複数行のレイアウトを作ることも可能です。

HTML
<div class="table">
<div class="row">
<div class="cell">内容1</div>
<div class="cell">内容2</div>
<div class="cell">内容3</div>
</div>
<div class="row">
<div class="cell">内容4</div>
<div class="cell">内容5</div>
<div class="cell">内容6</div>
</div>
</div>
CSS
.table {
display:table;
border-collapse:collapse; /*隣接する要素のborderを共有*/
}
.table .row {
display:table-row;
}
.table .cell {
display:table-cell;
border:#333333 1px solid; /*境界線を指定*/
padding:10px; /*余白を指定*/
}
display:tableで2行にした時の画像

「display:table-row」がtableタグにおけるtrタグにあたり、1行となります。

その中にひとつひとつのセルにあたる「display:table-cell」を記述していく形です。


プログラミングやパソコンを使って働きたい!

そのように考え、成長しているIT業界への転職を考えている方も増えてきました。

『IT業界に興味はあるけど、よくわからない…』
『パソコンとかそもそも苦手なのに私なんかにできるのかな』
『エンジニアって聞くけど難しそう』

反対にこのような声も聞く事があります。

そう考えている方は、一度ぜひ転職に成功したエンジニアの方のインタビューをご覧ください!

\プログラミングを学んで/
人生を変えた3名

インタビュー記事一覧 >

まとめ

「display:table」は要素を簡単に横並びにできる上に、独自の特徴を多く備えています。

幅の均等化、縦位置の指定、2行のレイアウトなどはとても便利です。

ぜひ、この記事を参考に「display:table」を試してみてください。

関連記事

資料請求

  • 短期集中で最速エンジニア転職を実現-転職成功者インタビュー一覧

    DMM WEBCAMPでは転職成功率98%を実現しています。本資料では、元警察官や元ラーメン屋など様々なバックグラウンドを持つ卒業生の声をお届けします。

    資料をダウンロードする
  • IT技術がもたらす3つの変化と身につけるべきスキル

    IT技術の発展により、今後10~20年程度で47%の仕事がなくなると言われています。どのような変化が訪れ、私達はどのようなスキルを身につけるべきかを解説します。

    資料をダウンロードする
  • 未経験がフリーランスエンジニアになる方法-年収アップで自由な働き方を手に入れる

    働き方改革やリモートワークの影響でフリーランスという働き方の人気は高まりつつあります。フリーランスエンジニアとして活躍するために必要な情報をお届けします。

    資料をダウンロードする

© 2024 WEBCAMP MEDIA Powered by AFFINGER5