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

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

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

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

HTML

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

CSS

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

Q&A

解決済

1回答

3355閲覧

bootstrapのグリッドデザインでmarginを入れるとカラム落ちしてしまう点を解決したいです

yujill

総合スコア12

Bootstrap

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

HTML

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

CSS

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

0グッド

0クリップ

投稿2020/02/05 03:00

編集2020/02/05 03:06

前提・実現したいこと

慶應義塾大学病院のWebサイトを摸写しています。
まずはモバイル版のページを作成しているのですが、bootstrapのグリッドデザインが思い通りに動かず苦戦しています。

ブートストラップのグリッドデザインを使ってカード4枚を2×2の表示にはしたのですが、
間に空白がないのでmarginを入れようとしたところ、表示が崩れてしまいました。

初心者の質問で恐縮ですが、ご教示いただけると幸いです。

イメージ説明

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

エラーメッセージ

該当のソースコード

html

1 <section class="purpose"> 2 <div class="container"> 3 <div class="purpose-cards row"> 4 <div class="purpose-card col-6"> 5 <p>初めて受診する方</p> 6 <p><img src="image/img_purpose/img_purpose_01.png" alt=""></p> 7 </div> 8 <div class="purpose-card col-6"> 9 <p>通院・再来の方</p> 10 <p><img src="image/img_purpose/img_purpose_02.png" alt=""></p> 11 </div> 12 <div class="purpose-card col-6"> 13 <p>入院・面会の方</p> 14 <p><img src="image/img_purpose/img_purpose_03.png" alt=""></p> 15 </div> 16 <div class="purpose-card col-6"> 17 <p>人間ドック</p> 18 <p><img src="image/img_purpose/img_purpose_04.png" alt=""></p> 19 </div> 20 </div> 21 </div> 22 </section>

CSS

1.purpose-cards { 2 margin:30px 0; 3} 4 5.purpose-card { 6 text-align: center; 7 border:solid 1px #CCCCCC; 8 padding:15px; 9} 10 11.purpose-card img { 12 margin-top:10px; 13 width:120px; 14} 15

試したこと

今回はborderの枠外に空白を入れたいので、
marginではなくpaddingで調整はできませんでした。

display:flex;
flex-wrap:wrap;
を試しても綺麗に表示されませんでした。

補足情報(FW/ツールのバージョンなど)

関係あるかわかりませんが、
CSSリセットは以下のものを使用しています

/*
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com
Twitter: @rich_clark
*/

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

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

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

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

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

guest

回答1

0

ベストアンサー

.purpose-cardの中に divブロックを入れてそれに border を設定するというのが、bootstrap を活かした設計だと思いますが、現状のHTMLのままやるなら、

css

1.purpose-card { 2 text-align: center; 3 border:solid 1px #CCCCCC; 4/* padding:15px; */ 5 margin: 15px; 6 max-width: calc(50% - 30px); 7}

bootstrapの .col-6 には max-width: 50%;が設定されているので、左右マージン分(15px*2)マイナスしておく。

補足

CSSリセットは以下のものを使用しています

bootstrap自体が独自のcssリセットを持っているので、不必要かと。
逆に不具合の原因になりそうです。

投稿2020/02/05 04:07

編集2020/02/05 04:34
hatena19

総合スコア33692

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

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

yujill

2020/02/05 04:47

ご丁寧にありがとうございます! お陰様でレイアウトを綺麗に直すことができました。 今後も同じようなことがあった場合には max-width: calc(50% - 30px); の表記活用します。 bootstrap使う時はCSSリセットいらない点についても勉強になりました! ありがとうございました
yujill

2020/02/05 04:49

ご丁寧にありがとうございました! 綺麗にレイアウトを直すことができました。 今後も同様のことがあった際には max-width: calc(50% - 30px); を活用します。 また、bootstrapではCSSいらない点も勉強になりました。ありがとうございました!
yujill

2020/02/05 04:49

間違えて2回も入力してしまいました・・・。すみません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問