質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

3回答

403閲覧

SP上で、縦に並べたtableを中央ぞろえにしたい

yasu1110

総合スコア15

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2018/10/30 16:35

pc版では通常に表示されるtableをレスポンシブのため、縦に並べたいと思っています。
display:blockを使用して縦に配置することはできたのですが、width;100%;を指定しても長さが中途半端になり、また中央揃えにしようと思ってもうまくいきません。
何が問題でしょうか?

表のレイアウトは|列1|列2|だけの単純なものです。

html

1<div id="date"> 2<table cellspacing="0" cellpadding="0" id="date01" align="center"> 3<tr> 4<td height="41" valign="middle" class="left">内容</td> 5<td valign="middle" class="right">内容</td> 6</tr> 7</table> 8</div>

PC版

css

1#date{ 2width:100%; 3height:42px; 4border:0; 5padding:0; 6margin:10px 23px 0 23px; 7display:block; 8position:relative; 9clear:both; 10 11} 12 13tbody { 14 width: 100%; 15} 16 17#date01{ 18width:100%; 19height:42px; 20border:0; 21padding:0; 22margin:0px; 23display:block; 24position:relative; 25clear:both; 26} 27 28#date01 .left{ 29width: 50%; 30border:0; 31padding:0; 32margin:0; 33color:#ffffff; 34font-weight:bold; 35text-align:center; 36line-height:14px; 37vertical-align:middle; 38background-color:rgb(77, 209, 242); 39} 40 41#date01 .right{ 42border: 1px solid #c0c0c0; 43padding:0; 44margin:0; 45text-align:center; 46line-height:14px; 47vertical-align:middle; 48} 49

SP版

#date{ width:100%; } #date01{ margin-left:auto; margin-right:auto; } #date01 .left{ display:block; line-height: normal; width:100%; } #date01 .right{ display:block; line-height: normal; width:100%; } td{ height:40px; height:30px; }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

現状で中央寄せであれば、以下のコードを削除してみてください。

PC版・SP版

CSS

1#date{ 2 width:100%; /* ← 削除 */ 3}

PC版

CSS

1#date01{ 2 width:100%; /* ← 削除 */ 3 display:block; /* ← 削除 */ 4}

他の回答にもありますが、tableではなく、他のタグ(flexやdl・ul等)でHTMLから組み直すことを検討してみてください。

投稿2018/10/31 10:30

yoshinavi

総合スコア3523

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yasu1110

2018/10/31 11:49

ありがとうございます! 煮詰まっていて、table以外を使えばいいことに考えが及んでいませんでした。。
guest

0

長さが中途半端というのはどういう意味でしょうか?

とりあえず
.rightのborderの影響でサイズが合ってないですね
.leftに合わせるならば
.rightに

css

1box-sizing: border-box; 2```を追記してください 3要素の幅・高さにborderを含めます 4 5.rightに合わせるならば 6.leftに背景色と同じ色のborderを追加すると合います 7```css 8border: 1px solid rgb(77, 209, 242);

中央揃えにならないというのは
tdがtableに対しての事でしたら、trとtbodyの影響です

css

1display:block; 2```をそれぞれに追記して 3tdのスタイルを変更して希望のデザインを作ってください 4```css 5width: ○○px; // 希望の幅にしてください 6margin: 0 auto;

どのような表組みデザインかが分からないので不確かですが、
tableの表組みを崩すのでしたら
もしかするとtableではなくdlやulに変更すると何かと楽になるかもしれません

投稿2018/10/30 19:24

編集2018/10/30 19:30
akihiro3

総合スコア955

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yasu1110

2018/10/31 11:50

ありがとうございます! 結局単純に<p>に背景を付けました。。。
guest

0

ベストアンサー

table,trdisplaytable,table-rowだからですね。
下記でどうでしょう?

css

1 table,thead,tfoot,tbody,tr,th,td { 2 display: block; 3 }

そもそも、tableで組む内容なのかは気になりますが。
内容によっては、flexにしてflex-directionで指定しても良いかと。

投稿2018/10/30 16:48

kszk311

総合スコア3404

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yasu1110

2018/10/31 11:51

ありがとうございます! 結局tableは使わず、flexで並びを変えました! 一番早く回答いただいたので、ベストアンサーにさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問