プログラミング覚え書き

WEB製作覚え書き

ノート代わりに勉強した内容をまとめています。

CSS:スマホサイトコーディング

 

〈手順1〉viewportを記述

viewportとは

表示領域の横幅などを変更させて見やすい環境を提示するための記述(仮想表示領域)。

通常、スマートフォン表示領域の横幅は960px。小さくて見づらいので最適な横幅の仮想表示領域を指定する。

 

htmlのheadタグ内にviewportを記述する

<meta name="viewport" content="width=device-width, initial-scale=1.0">

viewportで指定できる値

content属性内にカンマ区切りで指定する

f:id:midori_x:20200105200718p:plain

f:id:midori_x:20200105200752p:plain

f:id:midori_x:20200105200831p:plain

 

 

〈手順2〉メディアクエリを設定する

メディアクエリとは

f:id:midori_x:20200105224520p:plain

 

メディアクエリで使える値

 f:id:midori_x:20200105224731p:plain

f:id:midori_x:20200105224801p:plain

 

CSSに書き入れる場合

後述の「HTMLに書き入れる場合」よりもこちらが主流。

 理由:各HTMLファイルにlinkタグを設定するのが手間だから。

 

スマホ用のデザイン定義

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

定義文

}

PC用のデザイン定義

@media screen and (min-width: 481px) {

定義文

}

 

HTMLに書き入れる場合

PCファースト

<!– PCでもスマホでも読み込まれるCSS -->

<link rel="stylesheet" href="共通cssファイルパス" media="screen">

<!-- スマホ画面サイズで読み込まれるCSS -->

<link rel="stylesheet" href="スマホcssファイルパス" media="screen and (max-width:480px)">

モバイルファースト

<!– PCでもスマホでも読み込まれるCSS -->

<link rel="stylesheet" href="共通cssファイルパス" media="screen">

<!– PC画面サイズで読み込まれるCSS -->

<link rel="stylesheet" href=“PC用cssファイルパス" media="screen and (min-width:481px)">

 ブレイクポイントとは

f:id:midori_x:20200105231044p:plain

f:id:midori_x:20200105231114p:plain

 

〈手順3〉スマホサイト用の定義文を記述

width指定をautoにする

要素名 { width: auto; }

⇒横スクロールバーが出なくなる

 

min-widthの指定を0にする

要素名 { min-width: 0; }

 

画像の最大幅を100%にする

img { max-width : 100% !important; height : auto !important; }

 

float を解除

要素名 { float: none; }

 

display: inline-block; を解除

要素名 { display: 元の要素の表示方法; }

 

左右マージンはなるべく使用しない

要素名 { margin-left: 0; margin-right: 0; }

 

スマホを横にした時に文字サイズが変わる対応

body { -webkit-text-size-adjust: 100%; }

 

半角英数字のみURLを強制改行

a や .url { word-break: break-all; }

 

テーブルとpreタグに横スクロールバーを表示

テーブルを囲ったdivのグループ名 { overflow: auto; }

pre { overflow: auto; }

段組みを作成するときはflexを積極採用

親要素名 { display: flex; }

子要素名 { width: 50%; }

 

どうしてもはみだしてしまうものには

要素名 { overflow: hidden; }

 

PC表示時のみ、スマホ表示時のみ のコンテンツ

HTML

<要素名 class="pc">PC用コンテンツ</要素名>

<要素名 class="sp">スマホ用コンテンツ</要素名>

CSS

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

  .pc { display: none; }

}

@media screen and (min-width: 481px) {

  .sp { display: none; }

}