質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.92%

HTML5,CSS3フォームからinput(text)が若干下寄りになる

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 288

実現したいこと

HTML5で検索フォームを作っていて、テキストボックスが若干、下寄りになってしまいます。
真ん中にしたいのですが、どうすればいいですか?
初心者なのでわかりやすくお願い致します。
※テキストボックスはわかりやすいように色は変えていません。
イメージ説明

発生している問題・エラーメッセージ

```

該当のソースコード

HTML
<div> <!--検索バー(フォーム)-->
<form method="get" action="#" class="search_container">
<input type="text" size="33" placeholder="キーワード検索">
<input type="submit" value="&#xf002">
</form>
</div>

CSS
/*-----------------フォーム--------------------*/
.search_container{
background: #eee;
box-sizing: border-box;
position: absolute;
border: 1px solid #999;
padding: 3px 10px;
border-radius: 20px;
height: 2.0em;
width: 260px;
overflow: hidden;
}
.search_container input[type="text"]{
border: none;
height: 1.7em;
}
.search_container input[type="text"]:focus {
outline: 0;
}
.search_container input[type="submit"]{
cursor: pointer;
font-family: FontAwesome;
font-size: 1.3em;
border: none;
background: none;
color: #3879D9;
position: absolute;
width: 2em;
height: 2.2em;
right: 0;
top: -10px;
outline : none;
}
/*------------------------------------------------------*/

/*------------------ハンバーガーメニュー-------------*/
.header {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 32px;
background-color: #fff;
box-shadow: 0 2px 6px rgba(0,0,0,.16);
}
.global-nav {
position: fixed;
right: -320px; /* これで隠れる */
top: 0;
width: 300px; /* スマホに収まるくらい */
height: 100vh;
padding-top: 40px;
background-color: #fff;
transition: all .6s;
z-index: 200;
overflow-y: auto; /* メニューが多くなったらスクロールできるように */
}
.hamburger {
position: absolute;
right: 0;
top: 0;
width: 40px; /* クリックしやすいようにちゃんと幅を指定する */
height: 40px; /* クリックしやすいようにちゃんと高さを指定する */
cursor: pointer;
z-index: 300;
}
.global-navlist { margin: 0; padding: 0; list-style: none; } .global-navitem {
text-align: center;
padding: 0 14px;
}
.global-navitem a { display: block; padding: 8px 0; border-bottom: 1px solid #eee; text-decoration: none; color: #111; } .global-navitem a:hover {
background-color: #eee;
}
.hamburgerline { position: absolute; left: 11px; width: 18px; height: 1px; background-color: #111; transition: all .6s; } .hamburgerline--1 {
top: 10px;
}
.hamburgerline--2 { top: 16px; } .hamburgerline--3 {
top: 22px;
}
.black-bg {
position: fixed;
left: 0;
top: 0;
width: 100vw;
height: 100vh;
z-index: 100;
background-color: #000;
opacity: 0;
visibility: hidden;
transition: all .6s;
cursor: pointer;
}
/* 表示された時用のCSS */
.nav-open .global-nav {
right: 0;
}
.nav-open .black-bg {
opacity: .8;
visibility: visible;
}
.nav-open .hamburgerline--1 { transform: rotate(45deg); top: 20px; } .nav-open .hamburgerline--2 {
width: 0;
left: 50%;
}
.nav-open .hamburger__line--3 {
transform: rotate(-45deg);
top: 20px;
}
/*--------------------------------------------*/

試したこと

CSSの.search_container input[type="text"]の部分で、heightを変えてもなぜか高さじゃなくサイズが変わりました。padingを追加して0にしても変わりませんでした。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • azuapricot

    2019/11/22 15:30

    CSSってこれで全部ですか?再現できるように提示してほしいです

    キャンセル

  • PauseRestart62

    2019/11/22 15:37 編集

    フォームの部分のCSSはこれで全部ですが、ハンバーガーメニュー(画像には写っていない)のCSSも関係ないと思いますが、追加して更新しましたので確認お願い致します。

    キャンセル

回答 2

+2

順当に行くなら両方にvertical-align: middleを設定することかな

MDN

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

高さがオーバーしてしまっているのだと思いますが、配置が面倒ならフレックスボックスレイアウトにすればいいでしょう。

form {
  display: flex;
  align-items: center;
}

form > :first-child {
  flex-grow: 1;
}


https://developer.mozilla.org/ja/docs/Web/CSS/CSS_Flexible_Box_Layout

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.92%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る