こんにちは。
このh1で囲む理由は何でしょうか?
意味論的な話です。
たとえば、 <h1> 要素はセマンティック要素で、「ページの最上位の見出し」の役割 (または意味) をまとったテキストを提供します。
Semantics (セマンティクス) - MDN Web Docs 用語集: ウェブ関連用語の定義 | MDN
ですので、そのロゴが「ページの最上位の見出し」の役割を持っているならそうすべきでしょうし、そうでないのであればそうすべきではないでしょう。
__下記のヘッダーの中のaタグにline-height: 1px;が記述されているのですが
何のための記述でしょうか?__
見た目が違います。
サンプル
個人的にはこれはバッドノウハウだと思いますが、どのような影響があるのか理解して採用するならば、それはそれでいいと思います。
コメントを受けて追記
__これは、aタグには元々の高さが設定されていないため
1pxの高さを付けてh1要素と高さを揃えているのでしょうか?__
説明が難しいです。
私見ですが、これについては無理に理解しようとせず、とりあえず以下だけを覚えておくことをお勧めします。
「インライン要素は地雷なので、とにかく使用を避ける」
ですので、個人的にはline-height: 1px
はバッドノウハウで、display: block
を用いるべきだと思っています。
どうしても理解したいのであれば、以下をお読みください。
画像は特に何も指定しなければ、文字のようなものとして扱われます。
画像1枚がとても大きな文字1文字、と理解していただければ、それほど外さないと思います。
ところで、アルファベットには下にはみ出す文字があることをご存じかと思います。このはみ出している部分をディセンダーと呼び、ディセンダーを分けるラインをベースラインと呼びます。
ディセンダー - Wikipedia
文字領域にはこのディセンダーが含まれており、たいていの日本語の文字にはディセンダー領域にグリフが存在しないため、たいていの文字は下に余白があります。
ところで、さきほど「画像は文字のようなもの」と書きましたが、画像にもベースラインがあるのだろうか?という疑問が出てきますよね。
これは、画像のマージン領域下端と決められています。マージンがない場合は、画像の下端です。
さて、vertical-align
というプロパティはご存じでしょうか?
これはインラインの垂直そろえをするものなのですが、何も指定しなければvertical-align: baseline
となります。
これは、行の中の文字はベースラインでそろえる、というものです。
これで、下に隙間ができる理由が分かったかと思います。
画像のベースラインはマージンがなければ画像の下端ですが、行のベースラインはディセンダー部分の余白の上にあり、そこに揃えられることになるのです。つまり、画像はディセンダー部分の余白の上に置かれます。
さて、line-height: 1px
の効果について、これでお分かりかと思います。
つまり、行の高さをつぶすことによって強制的にディセンダー部分の余白もつぶしているのです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/26 06:18
2021/02/26 16:54 編集