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

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

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

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

Firefox

Mozilla Foundationによって作られた無料、オープンソース、クロスプラットフォームなウェブブラウザ

CSS

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

Q&A

3回答

3406閲覧

firefoxでcssがはみでる

abababaa

総合スコア43

CSS3

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

Firefox

Mozilla Foundationによって作られた無料、オープンソース、クロスプラットフォームなウェブブラウザ

CSS

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

2グッド

1クリップ

投稿2020/02/03 03:21

編集2020/02/04 01:18

前提・実現したいこと

2カラムのCSSがありそこで画像と解説があり、オペラとクロームは線の中に納まっていますが、firefoxでもcssがはみ出ないようにしたいです

なぜはみでるのかも教えてください

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

firefoxでcssがはみ出る
コードはこちらです↓

<div class="comfirm_box"> <div class="comfirm"> <h2>最終確認</h2> </div> <ul class="yesno"> <li class="yes"> <img src="https://www.pakutaso.com/shared/img/thumb/KAZUKIhgfdrfgh_TP_V.jpg" alt=""> <h2>入場</h2> <p>ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ</p> </li> <li class="yes"> <img src="https://www.pakutaso.com/shared/img/thumb/KAZUKIhgfdrfgh_TP_V.jpg" alt=""> <h2>退場</h2> <p>ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ </p> </li> </ul> </div>
* { box-sizing: border-box; margin: 0%; padding: 0%; } img { object-fit: contain; width: 100%; height: 100%; } li { list-style: none; } .comfirm_box { display: flex; flex-direction:column; align-items: stretch; } .comfirm { text-align: center; padding: 15px; color: #111; background: whitesmoke; } .yesno { grid-template-columns: 1fr 1fr; margin: 50px; display: grid; grid-gap: 50px; } .yes { color: #000000; padding: 15px; background-color: #fff; border:1px solid #111; } ‘‘‘
s8_chu👍を押しています

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

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

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

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

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

Lhankor_Mhy

2020/02/03 03:28

途中で質問登録してしまったのでしょうか。 これで全部なら、とりあえずCSSをご提示ください。
guest

回答3

0

パーセント値は、当該要素の包含ブロックに対して計算されます (参考)。恐らく、このグリッド項目内の img 要素において、パーセント値は auto として振舞わず、包含ブロックの大きさは再解決されません (参考)。また CSS Grid Layout Module Level 1 によれば、グリッド領域の各グリッド項目に対する包含ブロックはグリッド領域です (参考)。よって、パーセント値を考慮せずにグリッド領域の高さが決まり、それに基づいてパーセント値によるサイズが決定する、 Firefox が行っているような動作が正しいと考えられます。

以上を踏まえ、 Firefox の挙動が正しいという前提で回答をします。この問題を解決するためには、以下のような方法があります:

  • 他の回答にあるように height, object-fit プロパティを削除する
  • 各要素に適切な高さを設定する

今回は実現したい挙動が質問文に書かれていないため具体的な回答は出来ませんが、 Google Chrome や Opera と同じ動作を実現したいのであれば、 img 要素の height, object-fit プロパティを削除することが簡単な問題の解決方法だと思います (動作確認用リンク)。

HTML

1<div class="comfirm_box"> 2 <div class="comfirm"> 3 <h2>最終確認</h2> 4 </div> 5 <ul class="yesno"> 6 <li class="yes"> 7 <img src="https://www.pakutaso.com/shared/img/thumb/KAZUKIhgfdrfgh_TP_V.jpg" alt=""> 8 <h2>入場</h2> 9 <p>ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ</p> 10 </li> 11 <li class="yes"> 12 <img src="https://www.pakutaso.com/shared/img/thumb/KAZUKIhgfdrfgh_TP_V.jpg" alt=""> 13 <h2>退場</h2> 14 <p>ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ 15 16 </p> 17 </li> 18 </ul> 19</div>

CSS

1* { 2 box-sizing: border-box; 3 margin: 0; 4 padding: 0; 5} 6 7li { 8 list-style: none; 9} 10 11img { 12 width: 100%; 13} 14 15.comfirm_box { 16 display: flex; 17 flex-direction: column; 18 align-items: stretch; 19} 20 21.comfirm { 22 text-align: center; 23 padding: 15px; 24 color: #111; 25 background: whitesmoke; 26} 27 28.yesno { 29 grid-template-columns: 1fr 1fr; 30 margin: 50px; 31 display: grid; 32 grid-gap: 50px; 33} 34 35.yes { 36 color: #000000; 37 padding: 15px; 38 background-color: #fff; 39 border: 1px solid #111; 40}

投稿2020/02/04 06:38

s8_chu

総合スコア14731

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

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

0

↓これでいいんじゃないかと思います。

css

1img { 2object-fit: contain; 3width: 100%; 4/* height: 100%; 削除 */ 5}

 
はみ出る理由ですが、height:100%とは「親要素と同じ高さ」という意味です。

<percentage>
包含ブロックの高さのパーセントで高さを定義します。

値 | height - CSS: カスケーディングスタイルシート | MDN

なので、imgだけで親要素を占めてしまいますから、そのほかの要素は当然にはみ出ることになります。Operaのレンダリングが異なる理由については、手元に環境がないので、ちょっとわかりません。

投稿2020/02/04 00:31

Lhankor_Mhy

総合スコア36960

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

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

0

cssが記載いただいていないので想像でしかご回答することができませんが、
reset.cssなどを使用してブラウザ間の差分をなくすよう設定いただいていますか?

ブラウザ間差分をなくすよう処理していないと、Chromeでは綺麗に表示されているけどFirefoxでははみ出るなんてことがあったりします。

投稿2020/02/03 05:05

vnsa7221

総合スコア348

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問