メディアクリエ
 

CSSでレイアウトをデザイン!その2

 
前回は、リセットCSSとCSSを記載する考え方などを
記載いたしました…。
 

そこで、たまたま昨日まで本格的なデザインのCSSを記載しておりましたので、
前回の補足という事で、レイアウトと実際には
メディアクリエをいくつ使用したのか記載してみたいと思います。

 

それでは、最近流行のヘッダーwidth100%

 

早速下記画像を参考にご説明いたします….。
 
 
ワイヤーフレーム

 
上記はパソコンで見た場合の、簡単なワイヤーフレームになりますが、
昨日までお仕事で作成していたデザインになります。
 

そこで、前回ご説明いたしましたCSSとは
多少異なってきます…。
 

上記の場合、ヘッダーがwidth:100%で、ヘッダーの背景画像を考慮すると1280px、
ヘッダーインナーが960px…。
 

しかも、ヘッダートップはステッキーヘッダーで、
ヘッダー下のグローバルナビゲーションも、スクロールすると
position: fixed;でトップのステッキーヘッダーのすぐ下に付いたまま
スクロールするという使用です…。
 

コレ!実は結構大変だったりしますが、
今回はあくまでも、検索に有効であったり、
ページの表示速度が速くなる事を気にして、コーディングを行いました。
 

では考え方を記載してみます。
まずはッ…、
 

スマートフォン用のコーディングの考えから

 

ステッキーヘッターが2重に重なることを考えますとッ…、
jQueryを使用すれば、簡単に実装することが出来ます。
 

しかしながら、これではファーストビューでjQueryを読み込ませることになるので、
ページの表示速度を考えますと、あまり好ましくありません。
 

そこで、スマートフォン用のCSSでは、ヘッダーのトップは、
position: fixed;固定でレイアウトをおこなっていきます。
 

次にグローバルナビ、コレはスマートフォンなのでIEブラウザで
閲覧することはありませんので、position: sticky;で調整を行います。

 
そして次ッ…、
 

パソコン用のコーディング!

 

パソコン用のコーディングの場合、IEもまだ気にしなくてはイケませんので、
position: sticky;が使えません!!
 

なので、仕方なくjQueryを使用するわけです…。
jQueryであれば、IEでも問題なくステッキーヘッダーのすぐ下に付けることは可能です。
 

しかしこの場合、スタイルシートに記載するIDやClassが
スマートフォン用とパソコン用で、重複するキーワードが出てきて、
スマートフォンでもjQueryを読み込んでしまいます。
 

なので、jQueryのユーザーエージェントを使用して、
iphone、アンドロイドは読み込まないよう条件分岐をおこないます。
 

これであれば、パソコンとは異なり、非力なCPUでも
表示速度が落ちることな無いかと思います…。
 

少し初心者の方には難しく、専門的になり過ぎですが、
今回はご勘弁願います。
 

このブログをスタートする頃、記載いたしました、
ホームページを沢山の方に見て頂くことを目的としますと、
上記の事柄も非常に重要で、いずれ理解できる時が来ると思います。
 

メディアクリエをいくつ使用したのか

 

今回のコーディングで、スタイルシートの行数は、
ざっと1,000行…。
 

そして、使用したメディアクリエは4つ!
 

・@media screen and (max-width: 767px){} スマホのみに対応させるブレークポイント
・@media screen and (max-width: 320px){} iphone5だけに対応させるブレークポイント
・@media screen and (min-width: 768px){} ipad縦に対応させるブレークポイント
・@media screen and (min-width:1024px){} ipad横に対応させるブレークポイント
・@media screen and (min-width:1025px){} 上記以上のブラウザPCに対応させるブレークポイント

 

まさに順番もこのままですが、少しご説明を加えますと、
 

(max-width: 767px) で共通で記載したCSSの下に、
スマートフォンに対応させる、ハンバーガーメニュー用のCSSです。
 

(max-width: 320px) は、iphone5で見た際のフォントサイズの調整と、
一部、高さの調整です。
 

(min-width: 768px)は、ipad用ですが、サイトの横幅が、ヘッダーインナーでも960pxですからね、
前回記載し忘れました「技」の登場です…。
 

 
body {width:100%;min-width:980px;_display: inline;_zoom:1;}
 

 
これで、768pxのブラウザに対して100%のサイズを980pxで表示させています。
 

(min-width:1024px)は、ipad横ですが、1024pxですが、
ヘッダートップが100パーセントで、ヘッダーインナーが960pxですが、
ヘッダーの背景画像を1280pxで、バランスが崩れないよう使用しましたので、
ここでもまた、多少調整が必要でした…。
 

@media screen and (min-width:1025px)は、PC用ですが、
ヘッタートップ内の画像のバランスを多少調整いたしました。
 

では、下記に記載行数をまとめてみます…。
 

 
メディアクリエなし共通CSS       : 138行
@media screen and (max-width: 767px) : 380行
@media screen and (max-width: 320px) : 18行
@media screen and (min-width: 768px) : 405行
@media screen and (min-width:1024px) : 19行
@media screen and (min-width:1025px) : 22行
 

 
CSS記載総数、982行とデザインに変化を付けた割には、少ない行数になっていると思います。
 

コレ!実際に作成を行いましたページをお見せしたい所ですが、
コンプライアンスの都合上、今回は残念ながらお見せすることは出来ません。
 

また、スタイルシートは書けるけど苦手だなッ…、という人は、
テンプレート化したシートを使わずに、
HTMLのマークアップから、マークアップ全体を見渡し、
少ないIDとClassで、スタイルシートが記載できるようになる事が好ましいと思います。
 

前回、今回とCSS同様、多少複雑になってしまいましたので、
初心者の方には、かなり理解しがたい内容になってしまったことを
お詫びいたします。
 

次回からは、考え方でなく、実践編を初心者の方に分かり易く
記載しようと思っております…。

 
 

それでは、また次回…。