🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
HTML

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

CSS

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

Q&A

解決済

2回答

770閲覧

模写コーディング 無駄な余白

AlsaKolpiiya

総合スコア9

HTML

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

CSS

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

0グッド

0クリップ

投稿2021/02/28 09:44

header-rightの高さは指定していないはずなのに赤丸の部分に余分な余白が生まれて上手く模写できません。原因は何か教えて頂けると助かります。イメージ説明

html

1<body> 2 <header> 3 <div class="header-container"> 4 <div class="header-left"> 5 <a href="#"><img src="logo.svg" alt=""></a> 6 </div> 7 <div class="header-right"> 8 <ul class="header-list"> 9 <a href="#"><li class="about">About</li></a> 10 <a href="#"><li class="bicycle">Bicycle</li></a> 11 </ul> 12 </div> 13 </div> 14 </header> 15</body>

css

1header{ 2 background-color: aqua; 3 height: 60px; 4 padding:0px 250px; 5} 6.header-container{ 7 background-color: blue; 8 padding:10px 0px; 9 height:60px 10} 11.header-left{ 12 background-color: brown; 13 width: 120px; 14 float: left; 15} 16.header-right{ 17 background-color: chartreuse; 18 float:right; 19} 20 21.header-list li{ 22 text-decoration: none; 23 float: right; 24 color: #24292e; 25 font-size: 14.4px; 26 flex: auto; 27} 28 29.header-list{ 30 list-style: none; 31 display: flex; 32} 33 34.bicycle{ 35 margin-left: 40px; 36}

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

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

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

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

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

guest

回答2

0

ベストアンサー

画像の赤線で囲んだ部分の余白は、UL要素のブラウザのデフォルトの上下マージンです。(Chromeの場合1em)

UL要素の .header-list に下記のようにマージンを0にするスタイルを付加すれば余白はなくなります。

css

1.header-list{ 2 list-style: none; 3 display: flex; 4 margin: 0; /* 追加 */ 5}

このようなデフォルト値はブラウザ毎に異なったりする場合があるのでいろいろ厄介です。
そのために、このデフォルト値を打ち消すリセットCSSを使うのが一般的な手法です。
下記などを参考にリセットCSSの導入を検討されることをお勧めしておきます。

2021年、モダンブラウザに適したCSSリセットのまとめ | コリス

【2021年版】リセットCSSのガイドライン|基礎から使い方を徹底解説 | WEBCAMP NAVI

追記

今回の質問の原因は上記のとおりですが、
float を使用したレイアウトは現在では避けたほうがいいでしょう。(他の方も指摘されてますが)
前後の要素のレイアウトに悪影響を与えるので、思い通りのレイアウトにするのに非常に面倒なことになります。
CSS FlexBox あるいは CSS Grid を使ったレイアウトが現在では主流ですのでそちらの学習をされることもお勧めしておきます。

投稿2021/02/28 13:59

編集2021/02/28 14:08
hatena19

総合スコア34073

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

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

AlsaKolpiiya

2021/02/28 14:17

Flexboxですね…どうしても float=基本 Flex=慣れてる人 って意識が強くて何とかfloatを使いこなそうとしてました。無理してでも今後はFlexを使用していきます!
guest

0

※あくまで仮説です

削りまくって分かったのですが、
html 自体の高さが影響してるかもしれません。
イメージ説明

デベロッパツールで見ると分かりますがpaddingという意味での「余白」は存在せず
純粋に要素の高さとなっています。
イメージ説明

レイアウトの是非はともかく.header-rightfloat:right;を削除すると本来の高さにはなります。
他にも親要素にheightが指定されてるので、それらも含めて原因と言えます。

投稿2021/02/28 10:44

編集2021/02/28 10:45
m.ts10806

総合スコア80875

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

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

AlsaKolpiiya

2021/02/28 10:46

回答ありがとうございます! 確かに高さの指定は不要ですね… まずそこからやり直してみます!!
m.ts10806

2021/02/28 10:47

floatやpositionは色んな要素の影響を受けます。 その辺をよろしくやってくれるのがflexの印象です。 flex使いこなせは実質的にはfloat不要になるみたいで(私自身使いこなせてませんが)
m.ts10806

2021/02/28 10:57 編集

あ、書くの忘れてましたが「色々削った」には親要素すべてのheightを削ったことも含まれます。全て削ったうえで出てきたhtml自体の61.6pxでした。 1.6pxはデフォルトの余白ですね。html{padding:0;}で消えそうです。
AlsaKolpiiya

2021/02/28 14:13 編集

プロゲートやっててfloatから覚える為、なかなかFlexは馴染めませんね…YouTube等見てると上手な人は直ぐFlex使ってるので無理してでも使い続けた方が良さそうですね! html自体のpaddingを0にする発想も勉強になります! 今後とも宜しくお願い致します<(_ _)>〈 ゴン!〕
m.ts10806

2021/02/28 20:51

Progateでの講義を妄信しすぎるのも良くないとは思います。 柔軟な発想ができなくなりますからね。 機能を知っているのなら、いろいろ試してみて挙動を確認し、自分のものになるようにしていくと良いと思います。 ※ただ、昨今は自前で全部書くことは少なく、CSSフレームワークを基盤に⁺αを自分で作りこんでいくパターンが多い印象です。もちろん「機能を知っているか否か」で使いこなし具合に差はできます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問