SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

連載記事

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

翔泳社では、「独習」「徹底入門」「スラスラわかる」「絵で見てわかる」「一年生」などの人気シリーズをはじめ、言語や開発手法、最新技術を解説した書籍を多数手がけています。プロジェクトマネジメントやチームビルティングといった管理職向けの書籍も豊富です。

ITエンジニアとしてのスキルアップ・リスキリングに、ぜひお役立てください。

書籍に関する記事を見る

'); googletag.cmd.push(function() { googletag.pubads().addEventListener('slotRenderEnded', function(e) { var ad_id = e.slot.getSlotElementId(); if (ad_id == 'div-gpt-ad-1659428980688-0') { var ad = $('#'+ad_id).find('iframe'); if ($(ad).width() == 728) { var ww = $(window).width(); ww = ww*0.90; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/728+","+ww/728+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/728+","+ww/728+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/728+","+ww/728+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/728+","+ww/728+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(90*ww/728)+"px;width:"+728+"px;}", 0 ); } else { if ($(window).width() < 340) { var ww = $(window).width(); ww = ww*0.875; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/320+","+ww/320+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/320+","+ww/320+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/320+","+ww/320+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/320+","+ww/320+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(180*ww/320)+"px;width:"+320+"px;}", 0 ); } } } }); }); } else { document.write('
'); document.write('
'); }
Yahoo! JAPANの制作チームによる、さまざまなWebサイト最適化手法

HTML5とCSS3を使ってスマートフォン向けサイトを構築
- iPhone版Yahoo!JAPANトップの開発事例紹介

Yahoo! JAPANの制作チームによる、さまざまなWebサイト最適化手法 第2回


 スマートフォン版Yahoo! JAPANトップでは、CSS3やCSSアニメーション、タッチセンサー、Geolocation APIなどを効果的に使用しています。今回はこれらの新技術を具体的な事例を挙げながら紹介しようと思います。

はじめに

 スマートフォン版Yahoo! JAPANトップでは、ユーザーへ高品質なユーザーエクスペリエンスを提供するために、対象端末をiOSとAndroid OSのスマートフォン端末に絞り、最新のブラウザ仕様に基づいたサイト構築を行っています。

図1 スマートフォン版Yahoo! JAPANトップ
図1 スマートフォン版Yahoo! JAPANトップ

 画像の使用を抑えるためCSS3や、ネイティブアプリケーションに近づけるためCSSアニメーションや、タッチセンサー、Geolocation APIなどを効果的に使用しています。今回はこれらの新技術を具体的な事例を挙げながら紹介しようと思います。

CSSグラデーション

 今まで画像を使わなければできなかった表現も、CSSだけで表現できます。白から黒への単純なグラデーションや、グラデーションの位置を細かく指定することによる複雑なグラデーションを表現することが可能です。

サンプル1
.sample1 {
  background: -webkit-gradient(linear, left top, left bottom,
    from(#fff),
    to(#000)
  );
}
サンプル2
.sample2 {
  background: -webkit-gradient(linear, left top, left bottom,
    from(#b9c3e4),
    color-stop(0.03, #b9c3e4), /* topから 3% の位置で #b9c3e4 */
    color-stop(0.03, #93a3d5), /* topから 3% の位置で #93a3d5*/
    color-stop(0.48, #5a77af), /* topから48% の位置で #5a77af*/
    color-stop(0.52, #3a57a0), /* topから52% の位置で #3a57a0*/
    to(#1e3a95)
  );
}
図2-1 サンプル1 実行結果
図2-1 サンプル1 実行結果
図2-2 サンプル2 実行結果
図2-2 サンプル2 実行結果

 なお、CSSグラデーションはiPhoneのiOS 2.x以下の端末で表示されないため、注意が必要です。そのため、もしiOS2.x以下へも対応させる場合は、background-colorでも併記し代用するか、User-AgentのOSバージョンに応じて画像のグラデーション版CSSに上書きをする必要があります。スマートフォン版Yahoo! JAPANトップでは後者を選択しています。

 グラデーションの設定値はデザイナーから受け取ったPhotoshopデータ上のグラデーション情報をそのまま利用できます。デザインを少ない工数で再現することができます。

図3 グラデーションエディタ
図3 グラデーションエディタ

 CSSグラデーションを利用するもうひとつのメリットは、WebKitブラウザにおいて非常になめらかで高品質のグラデーションが得られるということです。2010年6月に発売されたiPhone 4は今までの4倍の解像度をもっているため、通常の画像を表示させるとテキストなどと比べてピクセルが荒く見えてしまいます。そこで、CSSグラデーションを使うと端末のグラフィックエンジンで処理されるため、解像度にあった高品質のグラデーションを得ることが可能です。

角丸の表現

 画像を使わずにブロック要素に角丸の効果を適用できます。top, bottom, left, rightの指定を組み合わせることで一部分のみ角丸にすることも可能です。スマートフォン版のYahoo! JAPANでは、ボタンやトグルスイッチなどiPhoneのデザインパーツをいくつか採用していますが、iPhone上で使われるデザインパーツのほとんどが丸みを帯びています。サイト上で表現されるボタンのほとんどはa要素にCSSを当て、作られています。

サンプル(角丸の表現)
-webkit-border-radius: 10px;
図4 サンプル 実行結果
図4 サンプル 実行結果

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます
  • ・翔泳社の本が買える!
    500円分のポイントをプレゼント

メールバックナンバー

次のページ
テキストシャドウ

この記事は参考になりましたか?

Yahoo! JAPANの制作チームによる、さまざまなWebサイト最適化手法連載記事一覧
この記事の著者

藤木 裕介(ヤフー株式会社)(フジキ ユウスケ)

ヤフー株式会社 R&D統括本部 制作本部 ウェブデベロップメント部 所属。1984年生まれ、神奈川県横浜市出身。美術大学にて情報デザイン等を学び、2007年にヤフー株式会社デザイナー職の新卒採用にて入社。同社では、スマートフォン版Yahoo! JAPANトップのマークアップを担当。HTML5...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/5619 2011/06/08 09:53
" ); }

おすすめ

アクセスランキング

  1. 1
    AWSがLambdaの新機能を発表、EC2の柔軟性とサーバレス性を両立 NEW
  2. 2
    「Python 3 エンジニア認定データ分析試験」、2026年1月に改定へ NEW
  3. 3
    「JITコンパイラ」 ~マンガでプログラミング用語解説 NEW
  4. 4
    そもそもログとは何か? ログの役割と目的、出力内容と形式を『実務で役立つ ログの教科書』から解説 NEW
  5. 5
    NVIDIA RTX AI PC対応のローカルAIエージェント「Hyperlink」をNexa.aiが公開 NEW
  1. 6
    AWS「IAM Policy Autopilot」をOSSで公開、IAMポリシーを自動生成しAIに提供 NEW
  2. 7
    LLMアプリケーションのベストアーキテクチャを探る──トークンの過剰利用や複雑な構成、入出力の制御をどう解決するか NEW
  3. 8
    ノーコードでMCPサーバーを構築、homulaが「Agens Skills」提供開始 NEW
  4. 9
    Google Workspaceが先週のアップデート内容まとめを発表、OAuth同意画面やデータ管理で新機能を拡充 NEW
  5. 10
    日本IBM、AIエージェント主導の開発ツール「Project Bob」を発表——要件定義から実装までを自律実行

アクセスランキング

  1. 1
    AWSがLambdaの新機能を発表、EC2の柔軟性とサーバレス性を両立 NEW
  2. 2
    「Python 3 エンジニア認定データ分析試験」、2026年1月に改定へ NEW
  3. 3
    「JITコンパイラ」 ~マンガでプログラミング用語解説 NEW
  4. 4
    そもそもログとは何か? ログの役割と目的、出力内容と形式を『実務で役立つ ログの教科書』から解説 NEW
  5. 5
    NVIDIA RTX AI PC対応のローカルAIエージェント「Hyperlink」をNexa.aiが公開 NEW
  6. 6
    AWS「IAM Policy Autopilot」をOSSで公開、IAMポリシーを自動生成しAIに提供 NEW
  7. 7
    LLMアプリケーションのベストアーキテクチャを探る──トークンの過剰利用や複雑な構成、入出力の制御をどう解決するか NEW
  8. 8
    ノーコードでMCPサーバーを構築、homulaが「Agens Skills」提供開始 NEW
  9. 9
    Google Workspaceが先週のアップデート内容まとめを発表、OAuth同意画面やデータ管理で新機能を拡充 NEW
  10. 10
    日本IBM、AIエージェント主導の開発ツール「Project Bob」を発表——要件定義から実装までを自律実行
  1. 1
    Linux Foundation、「Linuxカーネル開発 初心者向けガイド」日本語版を無料公開
  2. 2
    VS CodeでPython開発環境を構築しよう
  3. 3
    VSCodeでGitHub Copilotのタスク管理が可能に
  4. 4
    MCP Python SDKで天気予報サーバーを開発──実装から動作確認まで徹底解説
  5. 5
    マネーフォワード流Cursorでの開発自動化方法。「コンテキストエンジニアリング」で一歩先の生産性へ
  6. 6
    GoogleがAI駆動開発を支援するIDE「Antigravity」を無料公開
  7. 7
    Claude Codeでレビュー負荷軽減──KINTOテクノロジーズが実践する「説明補助ツール」としての生成AI活用術
  8. 8
    Google、Gemini API向けのRAGシステム「File Search Tool」を発表
  9. 9
    Googleがコード理解を支援する「Code Wiki」を公開、リポジトリ更新に合わせたドキュメントの自動生成など
  10. 10
    立教大学など、LLMが「存在しない規則性」を検出する現象を発見

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

メールバックナンバー

アクセスランキング

  1. 1
    AWSがLambdaの新機能を発表、EC2の柔軟性とサーバレス性を両立 NEW
  2. 2
    「Python 3 エンジニア認定データ分析試験」、2026年1月に改定へ NEW
  3. 3
    「JITコンパイラ」 ~マンガでプログラミング用語解説 NEW
  4. 4
    そもそもログとは何か? ログの役割と目的、出力内容と形式を『実務で役立つ ログの教科書』から解説 NEW
  5. 5
    NVIDIA RTX AI PC対応のローカルAIエージェント「Hyperlink」をNexa.aiが公開 NEW
  1. 6
    AWS「IAM Policy Autopilot」をOSSで公開、IAMポリシーを自動生成しAIに提供 NEW
  2. 7
    LLMアプリケーションのベストアーキテクチャを探る──トークンの過剰利用や複雑な構成、入出力の制御をどう解決するか NEW
  3. 8
    ノーコードでMCPサーバーを構築、homulaが「Agens Skills」提供開始 NEW
  4. 9
    Google Workspaceが先週のアップデート内容まとめを発表、OAuth同意画面やデータ管理で新機能を拡充 NEW
  5. 10
    日本IBM、AIエージェント主導の開発ツール「Project Bob」を発表——要件定義から実装までを自律実行

アクセスランキング

  1. 1
    AWSがLambdaの新機能を発表、EC2の柔軟性とサーバレス性を両立 NEW
  2. 2
    「Python 3 エンジニア認定データ分析試験」、2026年1月に改定へ NEW
  3. 3
    「JITコンパイラ」 ~マンガでプログラミング用語解説 NEW
  4. 4
    そもそもログとは何か? ログの役割と目的、出力内容と形式を『実務で役立つ ログの教科書』から解説 NEW
  5. 5
    NVIDIA RTX AI PC対応のローカルAIエージェント「Hyperlink」をNexa.aiが公開 NEW
  6. 6
    AWS「IAM Policy Autopilot」をOSSで公開、IAMポリシーを自動生成しAIに提供 NEW
  7. 7
    LLMアプリケーションのベストアーキテクチャを探る──トークンの過剰利用や複雑な構成、入出力の制御をどう解決するか NEW
  8. 8
    ノーコードでMCPサーバーを構築、homulaが「Agens Skills」提供開始 NEW
  9. 9
    Google Workspaceが先週のアップデート内容まとめを発表、OAuth同意画面やデータ管理で新機能を拡充 NEW
  10. 10
    日本IBM、AIエージェント主導の開発ツール「Project Bob」を発表——要件定義から実装までを自律実行
  1. 1
    Linux Foundation、「Linuxカーネル開発 初心者向けガイド」日本語版を無料公開
  2. 2
    VS CodeでPython開発環境を構築しよう
  3. 3
    VSCodeでGitHub Copilotのタスク管理が可能に
  4. 4
    MCP Python SDKで天気予報サーバーを開発──実装から動作確認まで徹底解説
  5. 5
    マネーフォワード流Cursorでの開発自動化方法。「コンテキストエンジニアリング」で一歩先の生産性へ
  6. 6
    GoogleがAI駆動開発を支援するIDE「Antigravity」を無料公開
  7. 7
    Claude Codeでレビュー負荷軽減──KINTOテクノロジーズが実践する「説明補助ツール」としての生成AI活用術
  8. 8
    Google、Gemini API向けのRAGシステム「File Search Tool」を発表
  9. 9
    Googleがコード理解を支援する「Code Wiki」を公開、リポジトリ更新に合わせたドキュメントの自動生成など
  10. 10
    立教大学など、LLMが「存在しない規則性」を検出する現象を発見