PSDファイルでデザインが規定されている場合の、レスポンシブデザインを実装する手順について

See the Pen used レスポンシブ by nakanishi (@nakanishi) on CodePen.

PSDファイルでデザインが規定されている場合、大きく分けて2つの実装パターンがある。

1つは全ての要素の「幅、高さ」をPSDファイルで指定されたpxで固定するパターンで、その場合、ラッパーのマージンがAUTOで変化する。つまり画面幅の変化に対して、「追従して変化するのは」ラッパーのマージンだけ、ということになる。(またラッパーに対してmin-width: –px で、それ以上小さくならないように指定することも多い。) これはユーザーのブラウザ横幅が、ある一定値よりも大きいほうでバリエーションが多いことを想定できる場合、つまりPC版で主に使われる。(900pxとか970pxとか1200pxとか、比較的大きい幅で見る人が多いであろう状況)

このパターンの実装は比較的容易で、各要素の幅をPSDファイルで指定されたpxに設定し、マージンも規定されたpxで設定すればよい。(特に画像パーツの幅、高さは全て指定してよい)

次に2つめのパターンとして、スマートホン版等、どんな横幅でも同じ見た目にするには、全ての要素を%で指定する。

このパターンの場合、width を指定すれば、margin: auto は効く。ただしposition: absolute、relative 等を設定した場合、margin: auto は効かない。しかし、margin-left: –% も left: –% も効く。そのため、中央に配置したい場合は、left: 23%等、マージン幅の全体に占める割合を指定することで配置する。

また画像そのものをレスポンシブにするには次の記事を参照

WebStormのショートカットキー

WebStom のショートカットのリストが英語なので、どの英単語が、どの機能なのかぱっと見わからないので困っていたが、公式サイトにわかりやすく分類された一覧表があった。ラッキー。これを元にショートカットを編集していく。

随時追加します。

ショートカットの設定ファイル

WebStomのショートカットの設定ファイルは次の場所にある。「WebStorm→Preferrence→Keymap」

設定ファイルを簡単に Git で共有するには次の記事を読んで下さい。

WebStorm の設定を複数の端末で共有する

虫眼鏡マークで機能を検索して、ダブルクリックすると編集できる。必要のないものはリムーブし、新たにaddすればいい。

ネストの開閉 Folding

ネストの開閉はFoldingのカテゴリーにまとめられている。畳み込み関係

  • expand 開く
  • collapse 閉じる
  • ノーマルバージョン 今いるラインだけを開閉する
  • Recursively 今いるラインと含まれる階層全てを開閉する

自分用メモ

expand command + (+)
expand recursively command + shift + (+)
collapse command + (-)
collapse recursively command + shift + (-)
置換 command + R
最近使ったファイルの検索 command + E
一行削除 comm + L
一行複製 comm + D
行の始端、終端に移動 comm + 左右
単語の始端、終端に移動 Alt + 左右
移動する時に、移動した範囲を選択する Shift を移動に加える
複数行を選択 shift + 上下
タブを1段階「減らす」 shift + tab
上下の行を入れ替える shift + comm + 上下
単語単位で選択範囲を広げる 早い!!! alt + 上下

ウィンドウ系

エディターに戻る ESC
ツールウィンドウを閉じて、エディターに戻る ESC + SHIFT
最後に開いたツールウィンドウに戻る F12

 

Todo fixme コメント

エディター内で、「コメント用タグ スペース todo スペース 内容」と入力すると  Todo リストとして認識してくれる。例えば .sass 内なら次のように。

// todo あとで直す

これは TODO 設定から細かくエディット可能。デフォルトでは todo と fixme というワードを認識してくれる。追加で以下の画像では test というワードで TODO リストに追加されるように設定してみた。

すると以下のように TODO リストに追加される。

開発中に必要だが、デプロイ時には必ず消しておきたいコメントは、TODO リストとして認識されるようにすることで、消し忘れを撲滅できる。また、書きながら、ここ後で直さなくてはというコメントも気軽に入れられる。

Live Template と JavaScript Postfix Completion

emmet のように、登録しておいた文字列の後に tab を押したらテンプレートを展開してくれる。かなりの頻度で ES6 の class 構文で export/import する書き方を検索しているので、登録した。

https://www.jetbrains.com/help/webstorm/2017.1/live-templates-2.html

Postfix Completion は JS 用にもとから登録されているもので、個人的には「”大声.log”でタブ」とすれば「console.log(“大声”)」になるのが便利。他にも頻繁に使う if 文なども登録されているので毎回書くやつは書かなくていい。

float position z-index の考察 / 仮説

こんなふうになっているのではないか…仮説…

See the Pen used box float absolute2 by nakanishi (@nakanishi) on CodePen.

See the Pen used box float absolute3 by nakanishi (@nakanishi) on CodePen.

See the Pen used box float absolute4 by nakanishi (@nakanishi) on CodePen.

See the Pen used box float absolute5 by nakanishi (@nakanishi) on CodePen.

See the Pen used box float absolute6 by nakanishi (@nakanishi) on CodePen.

CSSの世界は3層ある

層が上のほうがかならず表示的に上に来る。position層だけはz-indexで表示順を操作できる。

  1. ノーマル層。position: static かつ float: none。 ぶつかり合って、同じ位置は占有できないので、弾かれる。親要素から唯一見える。(position: relativeは例外的にここに存在する。)
  2. float層。ぶつかり合って弾かれるが、1の層の上でおきているので、1の層とは干渉しないし、上に表示される。親要素からは消える。
  3. position層。平面的な世界で、ぶつかりあうことはなく、同じ位置に何個でも置ける。表示順はz-indexで指定する。top,left、z-indexが効く。親要素からは消える。(relativeだけは消えない。例外)
position / float none left / right
static  1層へ  2層へ
relative top,right等効く。1層へ top,right等効く。2層へ
absolue, fixed top,right等効く。3層へ  floatは効かない

標準位置

  • position: static
  • float: none
  • top、left等: auto (0とは違う)

バックグラウンドイメージ背景の画像を画面幅100%にする方法

See the Pen Responsive background-image by nakanishi (@nakanishi) on CodePen.

ポイントは疑似要素にパディングを与えて、親要素の高さを動的に決定することである。疑似要素のパディングが、親要素に対して一定の比率を保つことで、結果として元画像の縦横比をキープしたまま、画像を伸縮することができる。

親要素にmarginがなくても、子要素にmarginがあると、結果的に親要素にmarginがあるような挙動になる

See the Pen used child-margin by nakanishi (@nakanishi) on CodePen.

一生懸命、隣り合った親要素のマージンを調べても、何故隙間が空くのかわからない。マージンは0だ。

その場合は、子要素にマージンがついている可能性がある。いくら親要素を確認しても、子要素のマージンによって生じる親要素同士の隙間の原因はわからない。

子要素のマージンが親要素に影響があることに注意したい。

ES5, CoffeeScript, ES6の記法の違い

ES5, CoffeeScript, ES6の記法の違いが混乱するのでまとめた。

ES5 CoffeeScript ES6
参考資料 詳しい
標準ブラウザで 読める 読めない (要トランスコンパイル) 読めないものも多くある (実務レベルでは要トランスコンパイル/主としてBabelを用いる)
 記法デモ Class構文 JQuery.cssの書き方 Class構文 ES5と6の違い
セミコロン いる いらない いる
function(){内容} function(){内容} ()=> 改行インデント 内容 ()=>{内容}
 function(引数){内容}   function(引数){内容} (引数)=> 改行インデント  内容  (引数)=>{内容}
関数の実行 call(); call()

引数がないときは必ず()が必要

call();
関数の実行(引数あり) call(“start”); call “start”

引数があるときは()を省略可能

call(“start”);

jQuery 標準デザイン講座 30 Lessons を受講する

cxscjfpuoaaciqm

業務で日常的に使う機能を実装するために必要なJavaScriptやjQueryのコードに関しては、その場で考えている場合ではない。前もって出来るようしておき、「これ!進研ゼミでやったところだ!」とならねばなるまい。

ということでジュンク堂書店でこの本を買ってきた。「jQuery標準デザイン講座」である。数あるjQueryの参考書の中から、なぜこれを選んだのか。決め手は、色である。黄色が好きな人に悪い人はいない。良心こそ、人類の持ちえる最高の機能である。

不必要にアニメーションするサイトを作るための技術を身につけたい。