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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

Q&A

解決済

2回答

20139閲覧

CSS/Bootstrap : Tableの中央揃え(vertical-align)が効かない

innjera

総合スコア132

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

0グッド

0クリップ

投稿2016/11/09 03:33

編集2016/11/09 03:52

bootstrap 4を使用しています。
table内の、テキストを中央揃えにしたいのですが、text-alignは効いても、vertical-alignが効きません。誤りをご指摘頂けますと幸甚です。

イメージ説明

html

1<div class="col-lg-7 col-xs-12"> 2 <table class="table table-sm table-bordered"> 3 <tr> 4 <th class="p-details"><h6>出品者</h6></th> 5 <td class="p-details"><h6><%= link_to @product.user.user_name, [:user, @product.user] %>さん</h7> 6 <%= link_to "不要画面テスト", [@product.user, :user_products] %>さん</h7></td> 7 </tr> 8 <tr> 9 <th class="p-details"><h6>カテゴリー</h6></th> 10 <td><h6>イヤリング</h6></td> 11 </tr> 12 <tr> 13 <th class="p-details"><h6>ブランド</h6></th> 14 <td><h6><%= @product.brand%></h6></td> 15 </tr> 16 <tr> 17 <th class="p-details"><h6>商品の状態</h6></th> 18 <td><h6><%= @product.status == 1 ? "新品同様" : 2? "目立つ傷あり" : "test" %></h6></td> 19 </tr> 20 <tr> 21 <th class="p-details"><h6>発送予定</h6></th> 22 <td><h6><%= @product.dispatch == 1? "即日" : 2? "1週間以内" : "test" %></h6></td> 23 </tr> 24 <tr> 25 <th class="p-details"><h6>コメント</h6></th> 26 <td><h6><%=@product.memo%></h6></td> 27 </tr class="p-details"> 28 <tr> 29 <th><h6>掲載日</h6></th> 30 <td><h6><%= @product.posted_at.strftime("%Y/%m/%d %H:%M")%></h6></td> 31 </tr> 32 </table> 33 </div><!--col-->

css

1.p-details{ 2 height: 1.5rem; 3 line-height: 1.5rem; 4 text-align: center; 5 vertical-align: middle; 6} 7

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

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

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

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

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

guest

回答2

0

詳細度の影響で効いていないのだと思います。
こんな感じで親要素のclassも追加して指定してみてください。

css

1.table .p-details{ 2 height: 1.5rem; 3 line-height: 1.5rem; 4 text-align: center; 5 vertical-align: middle; 6}

投稿2016/11/09 03:44

gin

総合スコア2722

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

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

innjera

2016/11/09 03:52

早速有難う御座います!ご教示頂いた通りに、やってみたのですが、写真(追加で加えました)の様に、やはり効かないです・・
gin

2016/11/09 03:58

おや?thはtext-alignも効いてないですか? とりあえずhtmlが生成された状態のものを掲載してもらえますか? あと</h7>はコーディングミスなのでそこは修正してください。
gin

2016/11/09 04:02

またイヤリングなどにtext-align:center;が効いているということは上記のコードでは指定していないスタイルがあたっています。 別のところで上書きされてそうですね。
innjera

2016/11/09 04:54

コメント有難う御座います。実は写真が誤っていまして、text-align:center;は全てのセルに効いております。少し今取り込んでおり、写真・コードを修正できないため、追ってご指摘頂いた事項を対応致します。
gin

2016/11/09 05:54

とりあえず画像の状態だとどれもテキストが1行しかないので「vertical-align: middle;」が効いているのかどうか判別できないので修正する際は複数行入っている「th」も用意ください。
innjera

2016/11/09 06:20

承知しました。ご丁寧に有難う御座います。大変助かります。現在コードを書けない場所におりますが、本日中に対応致しますので、お手隙の際に、見て頂けますと幸甚です。
innjera

2016/11/09 12:13

akusanoさんに回答いただいた通り、h要素を抜いたところ、解決しました。。。 色々と有難う御座いました。 ちなみに、ruby (rails)で制作しているのですが、「htmlの生成」ですが、Google Chromeのデベロッパーツールにて出てくる画面をキャプチャするといったやり方以外にあるのでしょうか?(質問がずれていたら申し訳ありません)
gin

2016/11/09 12:26

ソースは右クリックで出てくる「ソースを表示」でいいと思います。 ぐちゃぐちゃならある程度整形したほうがいいですが… あと補足ですがtable内に書いてダメな要素はないです。 あくまで「見出し」として使う要素なので使い方はいいとは言えないですが…<h6>も書いて大丈夫です。 <h6>を取って縦中央に来たというのであれば別のCSSで<h6>になんらかの指定がされていたということだと思います。 私のところでは<h6>ありきで縦中央になりますし。
innjera

2016/11/09 13:21

早速有難う御座います。なるほど、勉強になります。 試しに、pやh1-h7で試してみましたが、やはりダメでした。。特にh要素に指定はしていないですし、bootstrapのデフォルト設定に原因があるのでしょうか・・・?
innjera

2016/11/09 13:22

調べていたら、bootstrapはデフォルトでp要素の下辺マージンを1remに設定している、というのがありました。。これでしょうか・・・?
gin

2016/11/09 13:31

取ると縦中央にいくんですよね~ <h7>はないタグ(h1からh6まで)なのでそれで効かないとは…不思議ですね… 実物を見てみないことには…w margin-bottomは影響しますがそれでも1文字分ですからね… あとpですしw ちなみにbootstrap.cssを読み込んだ状態でも上記のコードだけだと縦中央に来ますよ~ 回答した.table .p-details {}でやってますよね? じゃないとbootstrap.cssの.tableのthにはvertical-align: top;が付いてるので上付きになりますが。
innjera

2016/11/09 14:00

申し訳ありません、、今、<h7>等を改めて加えてみたところ、問題なくverticle-alignが効きました! .table .p-details {}の半角スペースを抜いて.table.p-details {}で書いていたことが問題の様です・・ご指摘頂いていた点、全てそのとおりでした、、早々にご回答頂いていたのに申し訳ないです。。
gin

2016/11/09 14:18

私のに限らず回答を試すときは下手に手を加えずいったんそのままコピペでやったほうがいいです。
innjera

2016/11/09 14:58

おっしゃる通りです。以後留意します。すみませんでした。。。
guest

0

ベストアンサー

h6を全部削除してみてください。

投稿2016/11/09 06:07

aKusano

総合スコア3763

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

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

innjera

2016/11/09 12:04

コメント有難う御座います!修正できました。tableタグにh要素等を入れてはいけないのですね・・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問