レスポンシブWebデザイン(RWD)で使うと便利なCSSプロパティを紹介します.一般に,display: none;
やwidth: 100%;
は非常に使います.ここに挙げる5つのプロパティを知るだけで,設計・表現の幅が広がります.
1.flex-direction
display: flex;
とした要素の並ぶ向きを変更するプロパティ.横に並んでいるメニューやアイコン群を,縦に並べたいときに使います.display: flex;
で左にある要素を,flex-direction: column;
とすると上に持っていけます.逆に,display: flex;
で左にある要素を下から並べたいときも大丈夫,flex-direction: column-reverse;
で実現できます.
2.min-width / min-height
横幅がPCに比べ狭い端末では,width
を%
やvw
で指定しているとき,横に縮みすぎることがあります.この要素は少なくとも200px
くらい横幅は欲しい… との願いが,min-width
で実現できます.どんなに横幅が狭くても,width
の最小値を決められます.height
も同様に,少なくとも350px
は欲しいとき,min-height: 350px;
とします.RWDとはいえpx
を使う機会も多いものです.
3.overflow
スマホで横揺れ.RWDで最も恰好悪い実装です.文字列や写真のサイズが大きいとき,縦にスクロールできるが横にはスクロールできなくしたい.そのときに,overflow: hidden;
を使いスクロールできなくします.また,コンテンツが長くなったときだけスクロールバーを出すには,overflow: auto;
と書きます.横方向のみスクロールを止めるには,overflow-x: hidden;
です.
4.word-wrap / word-break
英語の文字列にハイフンやスラッシュをスペースを含めず書くと,改行がなされず文字列が横へ出てしまいます.また,スマホサイズで長い文字列が横のサイズに収まらないと,横揺れの原因になります.word-wrap: wrap;
として単語単位で改行するか,word-break: break-word;
で強制的に改行させます.例えばtext-align: left; width: 80%;
と組み合わせれば,右に作ったエリアと重なりません.
5.position
スマホでスクロールしても出現位置を固定するとき,position: fixed;
を使います.どんなにスクロールしても左上にアイコンをくっつけておきたい,下にメニューバーを表示させたい.position: fixed;
にtop: 0; left: 0;
やbottom: 0;
を組み合わせます.しかし,くっつけずにスクロールに連動させたくなったら… 簡単です.position: absolute;
に書き換えるだけです.