この記事では、CSS を使用して検索付きナビゲーションバーを作成する方法を紹介します。
以下の例はすべてレスポンシブ対応です。
まずは効果画像をご覧ください:

検索バーを作成する
HTML コード
<div class="topnav">
<a class="active" href="#home">ホーム</a>
<a href="#about">概要</a>
<a href="#contact">お問い合わせ</a>
<input type="text" placeholder="検索..">
</div>
CSS コード
/*上部ナビゲーションバーに黒い背景色を追加する*/
.topnav {
overflow: hidden;
background-color: #e9e9e9;
}
/*ナビゲーションバーのリンクのスタイルを設定する*/
.topnav a {
float: left;
display: block;
color: black;
text-align: center;
padding: 14px 16px;
text-decoration: none;
font-size: 17px;
}
/*ホバー時にリンクの色を変更する*/
.topnav a:hover {
background-color: #ddd;
color: black;
}
/*現在選択されている要素を強調表示する*/
.topnav a.active {
background-color: #2196F3;
color: white;
}
/*ナビゲーションバーの検索ボックスのスタイルを設定する*/
.topnav input[type=text] {
float: right;
padding: 6px;
border: none;
margin-top: 8px;
margin-right: 16px;
font-size: 17px;
}
/*画面幅が 600px 未満の場合は、メニュー項目と検索ボックスを垂直に積み重ねて表示する*/
@media screen and (max-width: 600px) {
.topnav a, .topnav input[type=text] {
float: none;
display: block;
text-align: left;
width: 100%;
margin: 0;
padding: 14px;
}
.topnav input[type=text] {
border: 1px solid #ccc;
}
}
試してみる »
その他の例
HTML コード
<div class="topnav">
<a class="active" href="#home">ホーム</a>
<a href="#about">概要</a>
<a href="#contact">お問い合わせ</a>
<input type="text" placeholder="検索..">
</div>
CSS コード
/*上部ナビゲーションバーに黒い背景色を追加する*/
.topnav {
overflow: hidden;
background-color: #e9e9e9;
}
/*ナビゲーションバーのリンクのスタイルを設定する*/
.topnav a {
float: left;
display: block;
color: black;
text-align: center;
padding: 14px 16px;
text-decoration: none;
font-size: 17px;
}
/*ホバー時にリンクの色を変更する*/
.topnav a:hover {
background-color: #ddd;
color: black;
}
/*現在選択されている要素を強調表示する*/
.topnav a.active {
background-color: #2196F3;
color: white;
}
/*ナビゲーションバーの検索ボックスのスタイルを設定する*/
.topnav input[type=text] {
float: right;
padding: 6px;
border: none;
margin-top: 8px;
margin-right: 16px;
font-size: 17px;
}
/*画面幅が 600px 未満の場合は、メニュー項目と検索ボックスを垂直に積み重ねて表示する*/
@media screen and (max-width: 600px) {
.topnav a, .topnav input[type=text] {
float: none;
display: block;
text-align: left;
width: 100%;
margin: 0;
padding: 14px;
}
.topnav input[type=text] {
border: 1px solid #ccc;
}
}
試してみる »