レスポンシブ対応でWeb制作することが多くなった。
だがしかし、一般的に使われる「レスポンシブWebでデザイン」というフレーズに違和感を覚えている。
その実態は「ひとつのHTMLファイルで、ビューポートをセットして、CSSのメディアクエリーである横幅サイズをPCとスマホ用の起点として見た目を切り替えること」を指すケースがほとんどだからだ。
本来の「レスポンシブWebデザイン」とは、幅広いデバイス(たとえばスマホやタブレット、デスクトップ)に対して、見た目や操作性が最適化されたウェブデザインの手法のことである。
極端なことを言ってしまえば、メディアクエリを使わずにHTMLファイルを用意して、どのデバイスからのアクセスか判別して出し分けることも、立派な「レスポンシブWebデザイン」のはずだ。
イーサン・マルコッテは、A List Apartの2010年5月の記事で、レスポンシブウェブデザイン (Responsive Web Design, RWD) という用語 (フルードグリッド、フレキシブルイメージ、メディアクエリを意味すると定義) を新造した。
Wikipedia「レスポンシブウェブデザイン」の記事内から抜粋
なるほど。「メディアクエリ」だけでなく、「フルードグリッド」「フレキシブルイメージ」も含まれてしっくりきた。
そもそも彼は「デスクトップやスマホだけでなく、それ以外のデバイス別にコンテンツを用意したとして、それらすべてをサポートしつ続けることができますか?」と問題提起している。
その解決手段のひとつとして「メディアクエリ」の利用を提案。
彼は、(当時)デスクトップでの閲覧を想定した固定ではないフレキシブルなデザインだけでは、今後の対応は足りないと危惧。その例としてスマホを取り上げ、メディアクエリーを用いた実装例が紹介されている。
記事元:Responsive Web Design · An A List Apart Article
重要なポイントは、2つあると思う。
利用側は、どのように閲覧するかは様々(たとえば、スマホ、タブレット、デスクトップ、印刷物など)であることが前提。
また、イーサン・マルコッテの記事の最後には、こうも書かれている。ユーザーの目的によってはデバイスごとに異なるコンテンツを提供するほうがよいケースもあるかもしれない。それはつまり、「フルードグリッド」「フレキシブルイメージ」「メディアクエリ」のデザイン手法以外のことも考える必要がある、ということだ。
「メンテナンス」が煩雑しないようにする手段の一つとして「メディアクエリー」が紹介されているわけだが、もし「メディアクエリー」を使わなくても、利用側にとって「見やすい・使いやすい」ことを担保しつつ「メンテンナス性」が向上するなら?
常に課題意識として持ち合わせるべきだと思う。
WordPressのような容易にコンテンツをカスタマイズできるCMSの普及によって選択肢は増えている。
イーサン・マルコッテの記事に紹介された「手法」を指すか、「マインド」を指すかで捉え方は変わる。
「フルードグリッド」「フレキシブルイメージ」「メディアクエリ」のデザイン手法を用いて制作すること。
「幅広いデバイスに対して、運営側・利用側の双方にとって最適化する」にフォーカスし、それを解決すること。
現場では、スマホでもPCでもそれなりに見えることを「レスポンシブに対応している」と言われる。違和感を感じたとしても、一旦受け入れ、レスポンシブWebデザインとしては「フルードグリッド」「フレキシブルイメージ」「メディアクエリ」の考えを持って返答する。このスタイルがもっともスマートでスペシャルで、みんながハッピーだと思います。
どんなデザイン手法を用いたとしても、忘れてはならないのは、それは「ユーザーにとって最適か」どうかということ。
たとえば、iPhoneで考えてみる。iPhone 5/7/7 Plus。それぞれ異なる解像度のデバイスだ。たとえばどのような見せ方が「最適」なのだろう?
解像度が大きいほど情報量を多く見せるのがいいのか、どのデバイスも同じ比率で見せるのがいいのか、とか。縦向き、横向きは?とか。
もちろんターゲット・ユーザーと提供する内容によって、答えは異なる。
あらゆるデバイスや閲覧の仕方にひとつずつ「最適化」しましょう、という話しではなく、費用対効果と運用面に配慮し「ターゲット・ユーザー」を明確にイメージしましょう、ということ。
デザインする場合はもちろん、デザインをコーディングする場合においても、「ターゲット・ユーザー」を意識しながら制作することは、より良い成果物につながります。
5年くらい前に購入した書籍「インタラクションデザイン」。この書籍内ではたくさんの事例が紹介されている。残念ながらその多くは現在閲覧することができなくなっていた・・・
WordPressを自作する上でもはや欠かせないプラグインの一つが、「Advanced Custom Fields」。 名前を変更しようと思って、Wor・・・
配列の場合 /** * 配列の重複を削除する * * @param {array} ary* * @return {array} 処理後のary・・・
5年以上前と比べると、アップデートが簡単で驚く。とくに記事にするまでもないと思いつつ、一応備忘録。 インストールすると、既存のディレクトリはそのままに別・・・
プラグインを更新中に、誤って、違うページにアクセスしまいました。すると、管理画面だけでなく、公開中のすべての画面が「briefly unavailable f・・・
Gulp。いつもは正常に動いている環境をそのままコピーして再利用するようにしている。そうすることで、案件ごとに毎回環境作りをする手間を省くことができ、何よりG・・・
書籍「LEAN UX リーン思考によるユーザエクスペリエンス・デザイン」から抜粋。 「前提の宣言」「MVPの作成」「実験の実行」「フィードバックとリサー・・・
LEAN UX は、コラボレーションと部門/領域横断的な手法によって、製品の本質を素早く明らかにするための実践的手法であり、これによって文書への過度な依存を減・・・
オブジェクト指向 クラス定義 JavaScriptは厳密にはクラスがない、プロトタイプベースのオブジェクト指向言語。ES6でclass構文が導入さ・・・
書籍「メンテナブルJavaScript」と Google JavaScript Style Guide 和訳 を参考に自分なりのJavaScriptスタイルガ・・・
めっちゃ参考になるページを見つけた。 絞り込みをするたびに色々ググっていたが、これがあればほとんどのことが解決できそうな気がする。 参考: これは便利!Word・・・
まずはサンプル。 これは、overflowをautoにした要素のスクロール位置を変更するサンプルです。 これは、overflowをautoにした要素のスクロ・・・
http://localhost:8888/ での参照ではなく、http://localhost/ で参照できるようにします。 MAMPの設定を変更する M・・・
iframeで呼び出した際、iframe自体はスクロールさせずに高さを取得してiframe全体を表示させます。 サンプル:iframeの高さを自動調整するデモ・・・
【2020年07月13日】 macOS Catalina(10.15.5) / Adobe iLLustrator 2020(24.2.1) にて動作確認済・・・
<?php $args = array( 'paged' => 1, 'posts_per_page' => 20, 'post・・・
やりたいこと カテゴリー一覧ページで、そのカテゴリー一覧ページに属する記事一覧を取得するためにループさせるのとは別に、タイトルやカテゴリー別にデザインを変・・・
ポイントを使ったり、増やしたりしたときに、結果のポイント数に差し替えるのではなくて、カウントアップしたり、カウントダウンして動的に動かそうと思って作ってみた。・・・
MAMPを使用していて、日時の情報を制御しようとしたとき、取得している日時が日本時間ではないことに気がついた。 時差を計算してPHPでプログラミングしていたが、・・・
WordPressの管理画面。「投稿」や「固定ページ」の一覧は、公開日順に並んでいる。ところが、カスタム投稿を追加した場合、公開順ではなく名前順に並んでいること・・・