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

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

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

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

CSS

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

CSSフレームワーク

CSSフレームワークは、Webページのスタイルを指定する言語であるCSSを容易に構築するためのツールです。ツイッター社が開発した「Bootstrap」や段組レイアウトが可能な「Foundation」など様々なCSSフレームワークがあります。

Q&A

解決済

1回答

4856閲覧

テーブルに設置したドロップダウンの展開された内容とボタンが重なる原因

willii

総合スコア12

Bootstrap

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

CSS

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

CSSフレームワーク

CSSフレームワークは、Webページのスタイルを指定する言語であるCSSを容易に構築するためのツールです。ツイッター社が開発した「Bootstrap」や段組レイアウトが可能な「Foundation」など様々なCSSフレームワークがあります。

0グッド

0クリップ

投稿2019/01/16 12:41

前提・実現したいこと

オンラインの無料学習サイトでBootstrapを学習しました
そこで最近、公式サイトの日本語訳サイトを読んで、色々な組み合わせをして遊んでいます
その中で「Tables」と「Dropdowns」を組み合わせていた際の疑問です
質問に書かれているソースコードの動作確認は「Google Chrome 70」で行っています

発生している問題・エラーメッセージ

Tables」と「Dropdowns」を組み合わせるとドロップダウンを開いた際、ドロップダウンのボタンが隠れます

これは正しい動作でしょうか?もし正しい動作なら、どうすればボタンが隠れないようにできるのでしょうか?

該当のソースコード

html

1<div class="table-responsive"> 2 <table class="table"> 3 <thead> 4 <tr> 5 <th>#</th> 6 <th>Heading</th> 7 <th>Heading</th> 8 <th>Heading</th> 9 <th>Heading</th> 10 <th></th> 11 </tr> 12 </thead> 13 <tbody> 14 <tr> 15 <td>Cell</td> 16 <td>Cell</td> 17 <td>Cell</td> 18 <td>Cell</td> 19 <td>Cell</td> 20 <td> 21 <div class="dropdown"> 22 <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 23 Dropdown button 24 </button> 25 <div class="dropdown-menu" aria-labelledby="dropdownMenuButton"> 26 <a class="dropdown-item" href="#">Action</a> 27 <a class="dropdown-item" href="#">Another action</a> 28 <a class="dropdown-item" href="#">Something else here</a> 29 </div> 30 </div> 31 </td> 32 </tr> 33 34 </tbody> 35 </table> 36</div>

何か見落としている所があれば教えて頂きたいです
よろしくお願いします

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

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

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

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

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

guest

回答1

0

ベストアンサー

Bootstrap 4 で使われている Popper.js には、data-displayオプションというオプションがあり、これが Bootstrap ではデフォルトでdynamicに設定されています

JavaScript

1const Default = { 2 offset : 0, 3 flip : true, 4 boundary : 'scrollParent', 5 reference : 'toggle', 6 display : 'dynamic' 7}

これにより、ドロップダウンの下部に十分スペースが無い場合、ドロップダウンメニューがドロップダウンメニューのボタンの上に表示出来るように配置されます。ドロップダウンを常に下に表示するためには、ドロップダウンを下部に表示出来る程度の十分な領域を確保するか、data-displayオプションを無効化する必要があります。前者の具体的な手順としては、paddingプロパティやheightプロパティなどの値を調整し、結果としてドロップダウンが表示可能な領域を確保すれば良いです。後者の場合の手順は、ドロップダウンメニューのボタンにdata-display属性を設定し、その値をstaticとすれば良いです。

HTML

1<div class="table-responsive"> 2 <table class="table"> 3 <thead> 4 <tr> 5 <th>#</th> 6 <th>Heading</th> 7 <th>Heading</th> 8 <th>Heading</th> 9 <th>Heading</th> 10 <th></th> 11 </tr> 12 </thead> 13 <tbody> 14 <tr> 15 <td>Cell</td> 16 <td>Cell</td> 17 <td>Cell</td> 18 <td>Cell</td> 19 <td>Cell</td> 20 <td> 21 <div class="dropdown"> 22 <button class="btn btn-secondary dropdown-toggle" type="button" 23 id="dropdownMenuButton" data-toggle="dropdown" 24 aria-haspopup="true" aria-expanded="false" data-display="static"> 25 Dropdown button 26 </button> 27 <div class="dropdown-menu" aria-labelledby="dropdownMenuButton"> 28 <a class="dropdown-item" href="#">Action</a> 29 <a class="dropdown-item" href="#">Another action</a> 30 <a class="dropdown-item" href="#">Something else here</a> 31 </div> 32 </div> 33 </td> 34 </tr> 35 </tbody> 36 </table> 37</div>

蛇足ですが、ドロップダウンの位置はtransformプロパティにより制御されているので、.dropdown-menuに対してtransformプロパティを設定し、設定された値を上書きすることでも、解決することが出来ます。しかし、可能な限り、回答文に記述したような解決方法が好ましいと思います。


参考: Dropdowns - Options · Bootstrap

投稿2019/01/16 13:05

s8_chu

総合スコア14731

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

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

willii

2019/01/17 08:45

Bootstrapに付属したライブラリの影響でしたか。盲点でした とても理解の助けになりました 詳細な回答をしてくださりありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問