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

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

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

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

CSS

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

Q&A

解決済

2回答

1183閲覧

css beforeの使い方について

kato00

総合スコア71

HTML

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

CSS

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

0グッド

0クリップ

投稿2018/04/08 10:45

質問は表題の通りです。

下記htmlのsample1とsample2は同じ構造で、
適用しているcssも同じものです。

html

1<div class="service"> 2 <img src="img/service/service_text1.png" /> 3 <p> 4 sample1</p> 5 <ul> 6 <li>sample</li> 7 <li>sample</li> 8 <li>sample</li> 9 <li>sample</li> 10 </ul> 11</div><!--service閉じタグ--> 12 13<div class="service"> 14 <img src="img/service/service_text2.png" /> 15 <p> 16 sample2 17 </p> 18 <ul> 19 <li>sample</li> 20 <li>sample</li> 21 <li>sample</li> 22 </ul> 23</div><!--service閉じタグ--> 24

css

1.service{ 2 border: 1px solid rgb(78, 171, 70); 3} 4 5.service p{ 6 color: rgb(60, 126, 187); 7} 8 9.service li{ 10 float: left; 11 margin-right: 30px; 12} 13 14.service li::before{ 15 content: "●"; 16 color: rgb(43, 121, 164); 17} 18

ですが、なぜかsample2だけがボックスからはみ出てしまいます。
画像添付いたします。
ボックスを緑のボーダーで囲ってあります。

イメージ説明

下記検証のコードです。

イメージ説明

原因が分からず苦戦しております。
その他必要情報がありましたら追記致しますのでおっしゃってください。
お分かりになる方、宜しくお願いします。

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

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

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

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

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

defghi1977

2018/04/08 10:58

::beforeが問題なんじゃなくてfloatが悪さをしています. clearfixで調べてみましょう.
sousuke

2018/04/08 11:13 編集

テストコードに変な文字が入っているのが気になります。
guest

回答2

0

ベストアンサー

このソースだと、sample1の方もボックスからはみ出てしまうのが正常じゃないかなと思ったので、sublime textで開いてみたんですけど、
4つ目の<li>の前に、制御文字が入っています。(添付していただいたソースの画像のliの3つ目と4つ目の間)
この制御文字のため、sample1のulに高さが保持されています。
テキストエディタによって、表示されないツールもあるっぽいので、画像貼っておきますね。

イメージ説明

それを消すと、liにfloatがかかっているため、sample1もsample2も、どちらもボックスから溢れてしまうと思います。
floatの解除は、clearfixを使いましょう。

css

1 .service ul:after{ 2 clear: both; 3 content: ''; 4 display: block; 5 } 6 7

投稿2018/04/08 11:35

編集2018/04/08 14:02
kszk311

総合スコア3404

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

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

kszk311

2018/04/08 11:50

floatの解除にclearfixと書きましたが、overflowでもいけるのでお好みで。
kszk311

2018/04/08 12:15 編集

なぜ入るのか原因がわからないですね。 多分ツールの問題ですかね?
sousuke

2018/04/08 13:56

質問とは関係なく純粋な興味なのですがkszk311氏のcssでセミコロンが2つあるのは何かの記法でしょうか?
kszk311

2018/04/08 14:01

あ、いえ、ミスでした。 HTMLについては普段sublimeを使わないもので…。 ありがとうございます、直しておきますね。
kato00

2018/04/09 06:21

みなさんご回答ありがとうございます!! kszk311さんの回答で直りました! 制御文字、前からなぜか入ってしまって苦戦してたのですが、私もsublime textで開いてみたら制御文字の確認ができました。ご提示頂いたclearfixも正常に動きました!本当にいつもいつもありがとうございます!!
guest

0

上でdefghi1977がおっしゃっていますがfloatをclearしてないのが原因だと思います。
ただ横に並べたいのであればflexを使ったほうがいいです。

投稿2018/04/08 11:14

sousuke

総合スコア3828

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問