WEBサイト制作の勉強

WEBサイト制作の勉強の為の解説ブログです。

cssプラグインを使ってハンバーガーメニューを作る

f:id:yachin29:20170417125330p:plain

前回の授業では擬似要素(before・after)を使ってハンバーガーメニューの3本線を作りましたが、スニペットを使う事で簡単に作る事が出来ます。



jonsuh.com



アイコンの切り替えはjQueryでclass「is-active」をトグルさせるだけで良いので自身で記述してしまいましょう。


<p class="hamburger " id="btn">
  <span class="hamburger-box">
    <span class="hamburger-inner"></span>
  </span>
</p>

スマートフォンでのナビメニュー

ナビゲーションメニューの押し易さ(使い易さ)というのはページ全体の使い易さに繋がる為、非常に大切です。
PCレイアウトの場合は、ある程度大きい面積の中でホバーアクションと組み合わせる事で、ある程度の解り易さは確保出来ます。
スマホでは制限された面積の中でメニューを作らないといけない為、PC以上に解り易いメニューの作成を心掛ける必要があります。

もちろん今現在、「ハンバーガーメニュー」がスマホ時のメニューのスタンダードになっていますが、しかし必ずしも全ての状況でハンバーガーメニューが良いという訳ではなく、色々なパターンから適切なスマホ用のナビを選べるようになりましょう。


ドロップダウン
f:id:yachin29:20180417114648p:plain

Apple(日本)



ドロワー(右から)
f:id:yachin29:20180417114736p:plain

Yahoo! JAPAN


アニメーション
f:id:yachin29:20180417114900p:plain

西武鉄道Webサイト



固定ナビ
f:id:yachin29:20180417114611p:plain

NTTドコモ ホーム








www.genius-web.co.jp


www.i3design.jp


pantograph.co.jp

スプリットレイアウトの作成

f:id:yachin29:20170215112552p:plain


スプリット=分割するデザインレイアウトのことです。画面を縦2つに分割して見せることで左右の対比が生まれます。
「スプリットレイアウト」の中でも、デザイン上のスプリットレイアウトのみのスクロール一体タイプと、CSSで画面半分を固定表示にして、残りの半分のみスクロールさせるスクロール分割タイプに大別されます。
さらには画面を4分割や5分割など、色々なパターンがあります。





www.nodai.ac.jp


www.haluta.jp


minico.handmade.jp

レスポンシブサイトの制作

今回のレスポンシブサイトの制作ポイント

1、cssファイルは外部リンクでリンクさせ、適切なリセットをかける事
2、webアイコン(Google Fonts)(Font Awesome)を使う事
3、3つあるコンテンツ部分のホバーにアニメーションを追加




使用するテキスト

Ristorante Felica


Home
Concept
Menu
Access


Ristorante Felicaは、
食とアートと音楽が交差する空間を創造します。
シェフ・矢島が提供するのは、イタリア料理に「東京」の
エッセンスを取り入れたモダンイタリアン。
店内は、新進気鋭のアーティストとコラボレーションしたアートギャラリー。
心地よいチルアウトミュージックが流れる空間でくつろぎのひとときをお過ごしください。


Concept
画像
仮テキスト

Menu
画像
仮テキスト

Access
画像
仮テキスト


©️ Ristorante Felica


作例
Cafe de Felica




2月4日作業分
index.html

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>レスポンシブサイトの作成</title>
<meta name="viewport" content="width=device-width">
<link href="https://fonts.googleapis.com/css?family=Cinzel&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<header>
<div class="header-inner">
<h1>Ristorante Felica</h1>
<nav class="g-nav">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Concept</a></li>
<li><a href="#">Menu</a></li>
<li><a href="#">Access</a></li>
</ul>
</nav>
</div>
</header>

<div class="main-visual">
<img src="img/main.jpg" alt="">
</div>

<div class="lead">
<h2>Ristorante Felicaは、
食とアートと音楽が交差する空間を創造します。</h2>
<p>シェフ・矢島が提供するのは、イタリア料理に「東京」のエッセンスを取り入れたモダンイタリアン。<br>
店内は、新進気鋭のアーティストとコラボレーションしたアートギャラリー。<br>
心地よいチルアウトミュージックが流れる空間でくつろぎのひとときをお過ごしください。</p>
</div>


<div class="wrapper">
<div class="block">
<a href="#">
<h3>Concept</h3>
<p class="block-photo"><img src="img/01.jpg" alt=""></p>
<p class="block-txt">つれづれなるまゝに、日暮らし、硯にむかひて、心にうつりゆくよしなし事を、そこはかとなく書きつくれば、あやしうこそものぐる</p>
</a>
</div>

<div class="block">
<a href="#">
<h3>Menu</h3>
<p class="block-photo"><img src="img/02.jpg" alt=""></p>
<p class="block-txt">つれづれなるまゝに、日暮らし、硯にむかひて、心にうつりゆくよしなし事を、そこはかとなく書きつくれば、あやしうこそものぐる</p>
</a>
</div>

<div class="block">
<a href="#">
<h3>Access</h3>
<p class="block-photo"><img src="img/03.jpg" alt=""></p>
<p class="block-txt">つれづれなるまゝに、日暮らし、硯にむかひて、心にうつりゆくよしなし事を、そこはかとなく書きつくれば、あやしうこそものぐる</p>
</a>
</div>
</div><!--/.wrapper-->
<footer>
<p><small>&copy; Ristorante Felica</small></p>
</footer>
</body>
</html>


スタイルシート

@charset "utf-8";

/* ress.css • v1.2.2
 * MIT License
 * github.com/filipelinhares/ress
 */html{box-sizing:border-box;-webkit-text-size-adjust:100%}*,:after,:before{background-repeat:no-repeat;box-sizing:inherit}:after,:before{text-decoration:inherit;vertical-align:inherit}*{padding:0;margin:0;box-sizing:border-box}audio:not([controls]){display:none;height:0}hr{overflow:visible}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}summary{display:list-item}small{font-size:80%}[hidden],template{display:none}abbr[title]{border-bottom:1px dotted;text-decoration:none}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}code,kbd,pre,samp{font-family:monospace,monospace}b,strong{font-weight:bolder}dfn{font-style:italic}mark{background-color:#ff0;color:#000}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}input{border-radius:0}[role=button],[type=button],[type=reset],[type=submit],button{cursor:pointer}[disabled]{cursor:default}[type=number]{width:auto}[type=search]{-webkit-appearance:textfield}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto;resize:vertical}button,input,optgroup,select,textarea{font:inherit}optgroup{font-weight:700}button{overflow:visible}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:0;padding:0}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button:-moz-focusring{outline:1px dotted ButtonText}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}button,select{text-transform:none}button,input,select,textarea{background-color:transparent;border-style:none;color:inherit}select{-moz-appearance:none;-webkit-appearance:none}select::-ms-expand{display:none}select::-ms-value{color:currentColor}legend{border:0;color:inherit;display:table;max-width:100%;white-space:normal}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}img{border-style:none;vertical-align: bottom}progress{vertical-align:baseline}svg:not(:root){overflow:hidden}audio,canvas,progress,video{display:inline-block}@media screen{[hidden~=screen]{display:inherit}[hidden~=screen]:not(:active):not(:focus):not(:target){position:absolute!important;clip:rect(0 0 0 0)!important}}[aria-busy=true]{cursor:progress}[aria-controls]{cursor:pointer}[aria-disabled]{cursor:default}::-moz-selection{background-color:#b3d4fc;color:#000;text-shadow:none}::selection{background-color:#b3d4fc;color:#000;text-shadow:none}ul,ol{list-style:none;}a{text-decoration:none;}.wrapper{overflow:hidden;}body{overflow-y:scroll;}
 

header{
border-bottom: 4px solid #de7330;
padding-top: 20px;
}
.header-inner{
max-width: 1260px;
margin: 0 auto;
display: flex;
justify-content: space-between;
}
h1{
color: #de7330;/*メインカラー*/
font-family: 'Cinzel', serif;
font-size: 40px;
}
.g-nav>ul{
display: flex;
}
.g-nav li{
margin: 0 20px;
}
.g-nav a{
display: block;
padding: 20px;
text-align: center;
color: #de7330;
font-weight: bold;
font-size: 18px;
font-family: 'Cinzel', serif;
}
.g-nav a:hover{
text-decoration: underline;
}

/*メインビジュアル部分*/
.main-visual{
max-width: 1260px;
margin: 40px auto 60px;
}
.main-visual>img{
max-width: 100%;/*フルードイメージの設定*/
}

/*リード文部分*/
h2{
text-align: center;
}
.lead>p{
max-width: 800px;
margin: 20px auto 80px;
}

/*block部分*/
.wrapper{
max-width: 1260px;
margin: 0 auto 80px;
display: flex;
justify-content: space-around;
padding: 20px 0;
}
.block{
width:30%;
padding: 20px;
box-sizing: border-box;
transition: 0.2s;
}
.block:hover{
box-shadow: 0 0 15px #aaa;
}
.block h3{
color: #de7330;
font-family: 'Cinzel', serif;
font-size: 30px;
margin-bottom: 10px;
}
.block-photo{
overflow: hidden;
margin-bottom: 10px;
}
.block-photo>img{
max-width: 100%;
transition: 0.5s;
}
.block:hover img{
transform: scale(1.2);
}
.block-txt{
color: #222;
}


footer{
width: 100%;
height: 100px;
background: #de7330;
color: #FFF;
}
footer>p{
text-align: center;
padding-top: 20px;
}

レスポンシブデザイン基礎

f:id:yachin29:20150520224634p:plain

レスポンシブWebデザイン(RWD)の制作

レスポンシブWebデザインでは、あらゆるデバイスに対して単一のWebページ(HTML)を使い、スクリーンサイズ(画面幅)を基準にCSSだけを切り替えてレイアウトを調整します。小さいスクリーンに対しては小さいスクリーンで見やすく操作しやすいレイアウトを、大きいスクリーンに対しては大きいスクリーンに適したレイアウトを提供します。





レスポンシブWebデザインは、「フルードグリッド(Fluid Grid)」「フルードイメージ(Fluid Image)」「メディアクエリー(Media Query)」の3つの技術的な要素で構成されます。

●フルードグリッド

 フルードグリッドは、Webページの要素を罫線や升目に沿って配置する「グリッドデザイン(Grid Design)」と、ブラウザーの横幅が変わってもレイアウトを維持したまま要素のサイズを調整する「フルードデザイン(Fluid Design)」を合わせたものです。レスポンシブWebデザインでは、最初にグリッドデザインによって部品や表示領域をpx単位で配置していき、レイアウトが整った後に、値を%に変換してフルードデザインに変更します。

●フルードイメージ

 フルードイメージは、レイアウトの大きさに追随して画像のサイズを拡大・縮小する手法で、CSSのみで実装できます。イギリスのコンサルティングファームClearleftのリチャード・ルター(Richard Rutter)氏によって提唱されました。

●メディアクエリー

 メディアクエリーは、画像解像度、ウィンドウの幅、デバイスの向きなどの指定条件にあわせて別々のCSSを適用する技術です。レスポンシブWebデザインではメディアクエリーを使ってスクリーンサイズに応じたCSSに切り替えます。

●ブレイクポイント

 ブレイクポイントとはデバイスサイズによってCSSを個別に適用させるために指定した画面サイズの値のことです。メディアクエリで指定します。ブレークポイントのデバイスサイズの値は特に決まっている訳ではなく、また、何分割にするのかも自由です。

メディアクエリーを使ったCSSの切り替えでは、CSSを切り替える条件である「ブレイクポイント(Break Point)」を決め、それぞれの条件に沿ったスタイルシートを記述していきます。

ブレイクポイントは決まった数や値がある訳ではありません。
例えばBootstrap3ではブレイクポインが4つあり、
1200px以上がPC(大画面)用
1199px~992pxがPC用
991px~768pxがタブレット
767px以下がスマホ
に分かれていましたが、

バージョンアップしたBootstrap4ではブレイクポイントが5つあり、
1200px以上がPC(大画面)用
1199px~992pxがPC用
991px~768pxがタブレット
767px~544pxがスマホ
543px以下がスマホ(小さいサイズ)用
に分かれました。これによって例えばiPhone 5, 6のポートレートランドスケープ時に、表示を切り替えることができるようになり、より柔軟にモバイル最適化が行えるようになりました。




今回のブレイクポイントは

ブレイクポイントは絶対的に決まった数値ではなく、その時々の要件や主要のデバイスサイズによって変わっていくので、数字を暗記するのではなく、意味を理解する必要があります。

CSSメディアクエリーの書き方

今回は1つのCSSファイル内にブレイクポイント毎にメディアクエリーを設定する方法で記述します。

@media screen and (max-width:959px){

}

省略形

@media (max-width:959px){

}

レスポンシブサイトには必ずhtmlにレスポンシブ用のmetaを追加しなければ正しく表示されないので、以下のmeta要素を必ず覚えましょう

<meta name="viewport" content="width=device-width">

CSS演習問題

f:id:yachin29:20170810015813p:plain


今回の制作の仕様

  1. header要素の幅960px高さは350px
  2. header画像は自身で制作し、「CAFE de FELICA」の文字を画像に入れる
  3. ボタンは5つを均等の幅で設置し、高さは50px
  4. コンテント要素の幅650px 高さ500px
  5. フッター要素の高さ50px
  6. コンテント要素内の文章は回り込みをさせる
  7. 各要素の空き・色は適宜
  8. ナビゲーションボタンをホバーした際に文字色と背景色が変わるように


使用するテキスト

CAFE de FELICA


毎日食べたい、おうちみたいなごはんやおやつ

CAFE de FELICAは、あなたのもうひとつの「おうち」になりたいごはんやさんです。
毎日食べたくなるような、どこかホッとするごはんにおやつ、飲みものを揃えて、ゆっくりくつろげる空間でお迎えします。
気軽なおひるごはんに、お茶の時間に、会社帰りの晩ごはんに、
「ただいま」を心よりお待ちしています。ただいま、夏限定のメニューを多数ご用意しております。
ぜひお越しください。

コピーライトマーク CAFE de FELICA


使用する画像
f:id:yachin29:20170810020015j:plain

header画像は自身で用意する事(サイズ960px X 350px)


f:id:yachin29:20170901172657j:plain