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

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

新規登録して質問してみよう
ただいま回答率
85.48%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Q&A

2回答

1391閲覧

<li>の中の<select>要素の大きさを指定したい。

AmanoEriko

総合スコア12

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

0グッド

0クリップ

投稿2020/05/11 02:38

display: flex;を用いて、
selectフォームを横並びにしたのち、
縦、横のサイズを変えたいです。
heightは指定できたのですが、
widthを指定できませんでした。

2つのselect要素は、<li>の中に入っているので、
各親要素のwidthを指定したり、
select要素をdiplay:blockにしたり、、、
思い当たる事を一通り試したのですが、
上手く行きません。

対処法と、上手くいかない理由を教えていただければ、と思っております。

よろしくお願いします。

イメージ説明

HTML

1 2<section class="form-wrapper"> 3 <div class="form"> 4 <h2>宿泊施設の内容を記入</h2> 5 <input type="text" value="東京"> 6 7 <ul> 8 <li class="room"> 9 <select id="room"> 10 <option>まるまる貸切</option> 11 <option>個室</option> 12 <option>シェアルーム</option> 13 </select> 14 </li> 15 <li class="gest"> 16 <select id="gest"> 17 <option>ゲスト4人</option> 18 <option>ゲスト4人</option> 19 <option>ゲスト4人</option> 20 <option>ゲスト4人</option> 21 <option>ゲスト4人</option> 22 <option>ゲスト4人</option> 23 </select> 24 </li> 25 </ul> 26

CSS

1 2/* インプットセクション */ 3 4.form input, 5.form .btn{ 6 display: block; 7} 8 9.form-wrapper{ 10 width: 90%; 11 margin: 0 auto; 12 background: white; 13} 14 15.form{ 16 padding:40px; 17} 18 19 20.form h2{ 21 font-size:18px; 22} 23 24.form .btn{ 25 width:100%; 26 line-height: 60px; 27 text-align: center; 28 background:#DB3742; 29 color: white; 30 font-weight: bold; 31 border-radius: 4px; 32} 33 34.form input{ 35 line-height: 50px; 36 border-radius: 4px; 37 border: 1px #DCE0E0 solid; 38 width: 100%; 39 margin-bottom:5px; 40 font-size:20px; 41 color:gray; 42} 43 44.form-wrapper ul{ 45 width: 100%; 46 display: flex; 47 padding:0; 48 margin:0; 49} 50 51.room, 52#room{ 53 width: 50%; 54 height: 50px; 55} 56 57.gest, 58#gest{ 59 width: 50%; 60 height: 50px; 61} 62 63select{ 64 -webkit-appearance: none; 65 -moz-appearance: none; 66 appearance: none; 67 } 68 select::-ms-expand{ 69 display: none; 70 display: block; 71 }

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

以下のように、親要素と子要素との横幅の指定を分離する必要があります。

CSS

1/* 子要素である#roomや#gestにも50%が指定されてしまっている。 */ 2/* 3.room, 4#room{ 5 width: 50%; 6 height: 50px; 7} 8.gest, 9#gest{ 10 width: 50%; 11 height: 50px; 12} 13*/ 14 15/* 以下のように書き換え。heightもどちらか片方に指定したほうがよさそうですが今回は触れません。 */ 16.room, 17.gest { 18 width: 50%; 19 height: 50px; 20} 21#gest, 22#room { 23 width: 100%; 24 height: 50px; 25}

元のソースコードだと、以下の.roomと#room両方にwidth: 50%;が指定されていました。

この場合、#idの横幅は、すでに全体の50%の横幅を指定されている.roomの、更に50%の横幅となるため、全体の横幅からすると25%になってしまいます。

HTML

1<li class="room"><!-- 全体の50%の横幅 --> 2 <select id="room"><!-- .roomの50%の横幅 = 全体の25%の横幅 -->

そのため、#idには、親要素の横幅いっぱい = width: 100%;を指定する必要があります。


追記です。プラスアルファの話として、
今回display: flex;を使用しているので、以下のように書き換えてもいいのではと思います。

CSS

1.room, 2.gest { 3 flex: 1 1 0%; 4 height: 50px; 5} 6.room { 7 margin-right: 10px; /* 好きな値を指定してください。 */ 8} 9#gest, 10#room { 11 width: 100%; 12 height: 50px; 13}

投稿2020/05/11 03:13

編集2020/05/11 03:27
new1ro

総合スコア4528

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こういうことでしょうか。

CSS

1.room, 2#room{ 3 width: 50%; 4 height: 50px; 5} 6select, 7#room{ 8 -webkit-appearance: none; 9 -moz-appearance: none; 10 appearance: none; 11 width: 100%; 12 }

投稿2020/05/11 02:42

kei344

総合スコア69407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2020/05/11 03:21

あ、#gestもか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問