SHOEISHA iD

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

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

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

CSSで作るWeb用パーツ

デザインサンプルで学ぶCSSによるスタイリング~「フォーム(検索ボックス)」編

CSSで作るWeb用パーツ(5)

フォーカス時に幅が広がる検索ボックス

 最後のサンプルは、角丸で虫眼鏡アイコンとヒントテキストがあるデザインです。

図9 フォーカス時に幅が広がる検索ボックス(sample03.html)
図9 フォーカス時に幅が広がる検索ボックス(sample03.html)

 フォーカス時には、ボックス幅が広がりピンクの光彩が出ます。

図10 フォーカス時、ホバー時のスタイル(sample02.html)
図10 フォーカス時、ホバー時のスタイル(sample02.html)

HTML5でマークアップ

 今回はボタンがないので、さらにシンプルなコードになっていますが、HTML5で追加されたplaceholder属性を使っています。プレースホルダーとは、フォームの入力欄の中に表示される入力に関するヒントを示したテキストです。

リスト11 フラットデザインの検索ボックス/HTML(sample01.html)
<form>
<input type="search" placeholder="キーワード検索">
</form>

デフォルト時のスタイリング

 まずはデフォルト時のスタイルを設定しましょう。幅は200px、1pxのグレーのボーダー、半径20pxの角丸を指定します。

 さらに、背景色をグレー、背景画像として虫眼鏡アイコンを左から10px、高さの真ん中に繰り返さずに表示するよう指定しています。アイコンの表示領域を確保するため、左パディングには40pxを指定しました。

 アニメーションの指定はCSS3のtransitionプロパティを使っています。これはCSSプロパティが変化する際のアニメーション効果をまとめて指定できるプロパティで、transition-property、transition-duration(変化の時間)、transition-timing-function(変化のタイミング)、transition-delay(変化がいつ始まるか)の各プロパティの値を、この順に半角スペースで区切って一括で指定できます。この例では、transition-propertyとtransition-propertyのみ、全プロパティが0.5秒かけて変化するよう指定しています。

リスト12 デフォルト時のスタイリング/CSS(sample03.html)
input[type="search"] {
  box-sizing: content-box;
  padding-left: 40px; /* アイコンの表示領域のためのパディング */
  height: 38px;
  width: 200px;
  border-radius: 20px;
  border: 1px solid #ccc;
  background: #eee url('search03.png') 10px center no-repeat;
  transition: all 0.5s; /* アニメーションの指定:全プロパティ、0.5秒かけて変化 */
}

フォーカス時のスタイリング

 フォーカス時は、幅500px、背景色は白、ボーダーはピンクになるよう指定しました。ピンク系の光彩は、box-shadowプロパティで指定しています。

リスト13 フォーカス時のスタイリング/CSS(sample03.html)
input[type="search"]:focus {
  width: 500px;
  background-color: #ffffff;
  border-color: #ff00cc;
  box-shadow: 0 0 5px 0 #cc6699;
}

プレースホルダーのスタイル

 執筆時点では、プレースホルダーをスタイルの適用対象とするには、ブラウザごとにベンダープレフィックスが必要です。CSS3から擬似要素はコロンが2つになりましたが、IEではコロンが1つ、またplaceholderとinput-placeholderの2種類の書式があるので注意しましょう。

プレースホルダーのベンダープレフィックスと書式
ベンダープレフィックス付き書式 対象ブラウザ
::-webkit-input-placeholder Webkit系ブラウザ(Chrome、Safari)I
::-moz-placeholder Firefox 19+
:-ms-input-placeholder Internet Explorer 10+

 サンプルでは、次のように文字色がグレーになるよう統一しました。

リスト14 Firefoxのボーダーとパディングをリセット
::-webkit-input-placeholder { /* Chrome, Safari */
  color: #666666;
}
::-moz-placeholder { /* Firefox */
  color: #666666;
}
:-ms-input-placeholder { /* IE */
  color: #666666;
}

まとめ

 本記事では、検索ボックスのスタイリング例を3つ紹介しました。フォームはブラウザごとのデフォルトスタイルにばらつきがありますが、入力欄やボタン、プレースホルダーなどをスタイリングする際もブラウザごとの対処法を覚えておくと便利です。次回は、フォーム部品のラジオボタンやチェックボックスのスタイリング方法をご紹介します。

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

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
CSSで作るWeb用パーツ連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

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

WINGSプロジェクト 宮本麻矢(ミヤモト マヤ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

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

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

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/7888 2014/07/28 14:00

イベント

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

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

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー