2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ProgateでHTML、CSSの道場にチャレンジ(2)

Posted at

#HTML、CSSの道場(中級)をやってみた!
引き続きProgateさんでHTML、CSSの力試ししています
中級道場、今回はヘッダー部分の作成です

ヘッダーの作成は初級の道場でもやった気がするのですが
今回はfloatあたりで少しマニアックなことをしているようです

今回の課題は以下のとおりです
●ヘッダーのレイアウト構成を考える
●要素の透過をopacity以外で行う
●行間の幅を指定する
●aタグのクリックできる範囲を広げる

いってみよう!

##ヘッダーのレイアウト構成を考える
比較的シンプルなお題です

課題では左端に社名(ロゴ)、右端にログインのリンクを作成します
ヘッダー⇒コンテナ⇒左側クラス、右側クラス
こんな感じで外から内側への構成です

 <header> ← ヘッダー全体
    <div class="container"> ← 内側の容器・・としておく 
        <div class="header-left"> ← ヘッダー左側の容器
          <img class="logo" src="●●△△.jpg">
        </div>
        <div class="header-right"> ← ヘッダー右側の容器
          <a class="login" href="#">ログイン</a>
        </div>
    </div>
   </header>

ロゴとログインリンクをそれぞれ配置するのはCSSで行う

.header-right {
  float: right; ← 要素を右寄せする
}
.header-left {
  float:left; ← 要素を左寄せする
}

左右ともに指定しないと横並びにならない
私は右しか記述しなかったため、ロゴとログインの文字がずれていました

##要素の透過をopacity以外で行う
前回の課題では「opacity」プロパティで要素を透過してました

今回は「rgba」プロパティを使用します

両者の違いは
opacity:要素の中身全てを透過させる
rgba:背景色のみを透過させる

どうして?と思い、解説を読んでみると納得
「社名であるロゴは透過させたくない。ヘッダーの背景のみ透過させたい」
なるほど そういう使い分けか~

rgbaの「rgb」はRGBカラーの意味で、最後の”a”で透過率を指定
要は前半3つの引数が透過させたい色で、4つ目の引数で透過率を指定してやる

header {
  height: 65px;
  width: 100%;
  background-color: rgba(34, 49, 52, 0.9); ← RGB(34,49,52)を0.9の透過率にする
}

##行間の幅を指定する
「line-height」プロパティは行間の幅を指定できます

ここでは少し工夫して、ロゴの位置がヘッダーの縦中央に来るために使用してます

.header-right a{
    display:block;
    line-height:65px;
    padding:0px 25px 0px 25px;
    color:white;
}

ヘッダーの高さが65pxで指定されているので上記の記述でロゴがヘッダーの縦中央に表示される
header {
  height: 65px;
  width: 100%;
}

##aタグのクリックできる範囲を広げる
前回の課題でもやったようにaタグは何もしなければインライン要素なので
文字をきっちりクリックしないとリンクに飛んでくれません

なのでここで「必殺!インライン要素をブロック要素へ!」を行います

<div class="header-right">
    <a class="login" href="#">ログイン</a>
</div>

このaタグをcssでブロック要素に変身させます

.header-right a{
    display:block; ← ブロック要素に変身!
    line-height:65px; ← ログインもヘッダーの縦中央に配置する
    padding:0px 25px 0px 25px;
    color:white;
}

とりあえず合格できたけど、今回は仕様書に記述がない部分で判定に引っ掛かりました

header {
  height: 65px;
  width: 100%;
  background-color: rgba(34, 49, 52, 0.9);
  position: fixed; ←ココ!
  top: 0; ←ココ!
  z-index: 10; ←ココ!
}

矢印で指してる箇所は「要素の検証」を使ってお手本をコピペしました
そしたら合格できたけど・・
なんだか不可解な気になった今回の力試しでした((+_+))

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?