未経験からでもWEBエンジニアになれるブログ(さぼり気味)

可能な限り楽して生きていきたい。好きなものだけ食べて痩せたい。控えめに行っても玉の輿乗りたい。ほんとはプライベートブログにしたい。何もしてないのに尊敬されたい。家から出たくない。

HTML/CSS-13日目

 

 

はじめてセルフのジェルネイルに挑戦したんですが、

 

二度としたくないと思いました。

 

 


-------------------------------------------------------------

 

 

 

 

 

 

今日はこないだからやってる2段組レイアウトを少しいじってから、ナビメニューを作ってみます。

 

 


幅を%指定する

 

 


CSSで幅を指定するとき、pxをメインで使用して来ましたが、今回はで指定してみようと思います。

 


pxは絶対値と呼ばれ、ブラウザのサイズが変わってもサイズは変動しません。

しかし%を使えば、(例外もありますが)サイズを変動させることができます。


%は、

 

f:id:mocha0426:20170727131818p:plain

 

こんな感じで使います。


じゃあこの場合、widthは何に対しての90%になるのか?という話ですが、

 

%が指定されたセレクタのひとつ外の要素


この場合、wrapperはbodyに内包される子要素です。
なので、これはbodyに対して90%で出力されます。

 

要するにbodyのサイズが変われば、wrpperのサイズも常にその90%を保って変動するということです。

 

しかし、親要素のサイズがpxで指定されていると、親要素のサイズは変わらないので、(今回でいうbody)、wrapperの90%も変動はしません。

 

このサイズによって変動する設定を持つサイトを、
レスポンシブサイトといいます。

 

PC用サイトをスマホで快適に見られるようにと、最近ではよく使用されています。

 

------------------------------------------------------------------

 

ナビメニューを作る

 


目指すのはこの形です。
たて向きと横向きの2種類のメニューを作ります。

 


f:id:mocha0426:20170727131942p:plain

 

 


この画像、横並びメニューの項目5が色違いますよね。
これはカーソルを乗せたときに色の変化が起こるように指定しています。

 


これも作っていきましょう。

 

 

 

HTMLはこんな感じ。

 

f:id:mocha0426:20170727132016p:plain

 

 

 

 


では、ここからCSSを記述します。

 

f:id:mocha0426:20170727132042p:plain


まず、リストのマーカーを消します。
line-heightについては、IE6以前のバグ対策用だそうです。

 

f:id:mocha0426:20170727132058p:plain


一気に増えた

 


各要素についてのコメントは記載していますが、

 

line-height: 34px;

これについて、ボタンの高さと行の高さは同じです。

 

heightで指定することも可能ですが、そうすると文字が中心に来ないので、また別で文字の高さを指定することになります。

 

また今回はline-heightにpxという単位がついていますが、これは一行のみの文字列を上下中央におきたいときに使用します。複数行のときは単位をつけずに調整しましょう。面倒そう。

 

 

text-decoration: none;

下線はHTML側の<a>タグで自然に発生するので、ここで消しといてあげましょう。

 

 

f:id:mocha0426:20170727132135p:plain

 

 

ブラウザではこうなります。

 

 

 

CSSに少し細工。

f:id:mocha0426:20170727132150p:plain


ボックスの内側に陰をつけました。

 


その下にhoverという擬似クラスを与え、カーソルが乗ったときの挙動を指定します。

 

 


.Atype ul li a{....}


このセレクタの指定方法を子孫セレクタ表記といいます。


.Atypeクラスの中の、<ul>の中の、<li>の中にある、<a>に作用してくださいねという指定方法です。

 

 

これでたて型メニューが完成しました。

 

f:id:mocha0426:20170727132238p:plain

 

 

少し立体感ない?

 

f:id:mocha0426:20170727132253p:plain

 

項目1にカーソルを乗せました。
へこんだっぽくない?

 

 

 

 

 

 

 

 

 

 


次は横並びのやつを作ります。

 

 

f:id:mocha0426:20170727132319p:plain

 


これであらかじめ全体の幅を指定しておきます。これをしないと、ブラウザの幅が狭くなったときに横幅を保ってくれません。

 

heightについて、このulの中にある子要素はfloatで左に浮かせます。そうすると、親要素であるulは、浮いているこのリストのボタンを認識できなくなります。

 

これを回避するため、前回はclearを使って解決しましたが、
今回はあらかじめ親要素に高さを持たせることで解決していきます。

 

 

f:id:mocha0426:20170727132347p:plain


さらに記述します。
floatで先頭を左に、後続の要素を右に回り込ませます。

 

f:id:mocha0426:20170727132358p:plain

 


ここはもうさっきのたて並びと同じ。色だけ変えていきます。

 


hoverプロパティを書いていきます。



f:id:mocha0426:20170727132418p:plain

 


これもさっきと同じ。

 

 

f:id:mocha0426:20170727132446p:plain


完成しました。

 

f:id:mocha0426:20170727132509p:plain


へこんだ感じになってない?