Javascriptでdisplay:block,display:noneを切り替えて
要素の表示・非表示をする場合があります。
同じ方法でtable trの表示・非表示を切り替えた場合
レイアウトズレが発生します。
原因はtrタグの初期設定されているdisplayの値がblockではないことが原因です。
trの場合の初期値はblockではなく「table-row」
そのためtrの表示・非表示をする場合、displayを使ってtable-rowとnoneを切り替えると
うまくいきます。
目次
tableで使うタグのdisplay初期値
今後はまらないようにするためにはtableで使うタグのdisplay初期値を覚えておくことが必要です。
table要素 | display: table |
---|---|
thead要素 | display: table-header-group |
tbody要素 | display: table-row-group; |
tr要素 | display: table-row; |
th要素 | display: table-cell; |
td要素 | display: table-cell; |
tfoot要素 | display: table-footer-group; |
See the Pen trタグを表示・非表示 by miccyome (@miccyome) on CodePen.
コメント
コメント一覧 (3件)
[…] さくらいらぼWEB版 /個人ブログ Javascriptでdisplay:blockを使って切り替えるとtrタグのレイアウトがずれる原因 Javascriptでdisplay:block,display:noneを切り替えて要素の表示・非表示をする… […]
[…] さくらいらぼWEB版 /個人ブログ Javascriptでdisplay:blockを使って切り替えるとtrタグのレイアウトがずれる原因 Javascriptでdisplay:block,display:noneを切り替えて要素の表示・非表示をする… […]
[…] さくらいらぼWEB版 /個人ブログ Javascriptでdisplay:blockを使って切り替えるとtrタグのレイアウトがずれる原因 Javascriptでdisplay:block,display:noneを切り替えて要素の表示・非表示をする… […]