CSSでテキスト欄と検索ボタンを横並びにする方法

@ハクト 2023-06-14 10:41:52に投稿

今回はCSSでinput要素とボタンを横並びにした検索ボックスの作成方法について解説します。

フレックスボックスを利用すると簡単に要素の横並びが可能です。

上記を利用して角丸にした検索ボックスを実装していきましょう。

テキスト欄とボタンを横並びにする

「search-box」クラスに「display:flex;」を指定し横並びに。「button」タグ内に「fontawesome」の虫眼鏡アイコンを指定します。

<div class="search-box">
    <input type="text" placeholder="検索ワード">
    <button type="submit">
        <i class="fas fa-search fa-fw"></i>
    </button>
</div>

 

.search-box {
    display: flex;
    width: 100%;
}

テキスト欄とボタンを角丸にする

「border-radius」でテキスト欄は左上と左下、ボタンは右上と右下を角丸に。「flex-grow: 1;」でテキスト欄を伸長させます。

.search-box input[type="text"] {
    flex-grow: 1;
    padding: 0.7rem 0 0.7rem 0.8rem;
    border: 1px solid #333947;
    border-radius: 1.5rem 0 0 1.5rem;
}
.search-box button {
    cursor: pointer;
    padding: .8rem .9rem .8rem .8rem;
    border-radius: 0 1.5rem 1.5rem 0;
    border: none;
    background-color: #333947;
    color: #fff;
    font-size: .75rem;
}

 

枠とアイコンを青色にする

テキスト欄のフォーカス取得時に「border」プロパティで枠線を青に。ボタンホバー時にアイコンの色も青くしてます。

.search-box {...}
.search-box input[type="text"] {...}
.search-box button {...}

.search-box input:focus {
    outline: 0;
    border: 1px solid #4ab6f6;
}

.search-box button:hover {
    color: #4ab6f6;
}

 

全てのコード

コードを表示

.search-box {
    display: flex;
    width: 100%;
}

.search-box input[type="text"] {
    flex-grow: 1;
    padding: 0.7rem 0 0.7rem 0.8rem;
    border: 1px solid #333947;
    border-radius: 1.5rem 0 0 1.5rem;
}

.search-box button {
    cursor: pointer;
    padding: .8rem .9rem .8rem .8rem;
    border-radius: 0 1.5rem 1.5rem 0;
    border: none;
    background-color: #333947;
    color: #fff;
    font-size: .75rem;
}

.search-box input:focus {
    outline: 0;
    border: 1px solid #4ab6f6;
}

.search-box button:hover {
    color: #4ab6f6;
}

@ハクト

サービス作り・デザイン好き。70年代生まれのWEBエンジニア。WEBパーツをCSSでカスタマイズしてコピペできるサービスを運営中「Pa-tu」。実装したWEBパーツやツールを利用してWEB情報やライフハックを発信してます。

Twitter