🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

5回答

1130閲覧

HTML CSSのお問い合わせフォームのラジオボタンについて

snowsnow

総合スコア11

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2019/10/21 03:00

# お問い合わせフォームのラジオボタンについて 

HTML CSSを初学者で学習しています。お問い合わせフォームの性別を選ぶ部分の箇所にラジオボタンというのを設定したのですが、通常は「性別〇〇〇〇(ボタン)男 (ボタン)女」と作りたいところ、性別とボタンの項目の間隔が詰まってしまい「性別(ボタン)男 (ボタン)女」となってしまいます。

コードは 【index.html】で

<p> <span style="padding-right:140px;">性別</span> <label> <input type="radio" name="sex" value="男性" checked>男性 </label> <label> <input type="radio" name="sex" value="女性">女性 </label> </p> です。

ここでspanの部分にpadding-reftに140px設定するときちんと間隔が空いてきれいに設定できました。しかし今まで作っていてpaddingを140も設定した経験がなく大抵が10px~30px前後が最大だったと思います。こんな莫大な数値のpadding-reftを設定してページに影響はないのでしょうか?画面上は見本通りに作れておりますが不安でした・・・。

どうか教えてください。よろしくお願いいたします。

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

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

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

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

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

guest

回答5

0

padding-rightがデかすぎて大丈夫か?

問題ありません。
snowsnowさんのようにstyleを直接指定している場合、他の箇所には影響しないため気にしなくて大丈夫です。

ちょっと進んだ回答

asuchi0819さんの回答にある通り、emの使用をお勧めします。
pxは「画面がどんな状況であれ、○pxは確保する」という指定になります。
emは「フォントサイズに準拠したサイズを確保する」という指定になります。

emを指定しておけば、スマートフォンやタブレットなどでもフォントサイズに合わせて、いい感じに
スペースを取ってくれるようになるかと思います。(今後の為にもemを使えるようになっておいた方がいい、という感じになります。)

参考リンク

投稿2019/10/21 03:31

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

snowsnow

2019/10/21 03:40

ご丁寧にありがとうございます!snowsnowさんのようにstyleを直接指定している場合、他の箇所には影響しないため気にしなくて大丈夫です。←この言葉を聞いて安心しました。styleを使うとなぜ影響を受けないでしょうか?特殊なものなんですかね?意味不明な質問の仕方ですみません^^;
snowsnow

2019/10/21 03:45

あぁ!なるほどです^^emはフォントサイズに準拠したサイズを確保する」こういうことなんですね!!
退会済みユーザー

退会済みユーザー

2019/10/21 03:54 編集

HTMLとCSSの関係性についてどれくらいご存知か分からないので全て記載しますが <div> <span class="my_span"></span> <span class="my_span"></span> <span class="my_span"></span> </div> このような場合、例としてpaddingを指定するCSSを別途記述すると .my_span { padding-right: 3em; } のようになります。これは、上記のコードで「my_span」クラスが付いている要素全てに対して、padding-rightを全て3emにする、という指定になります。 もし、1つ目の要素だけ値を変えたい(5emにしたい)となった場合、my_spanクラスに関するCSSの記述を変更すると、全ての要素で「padding-right」の値が変わってしまいます。(影響範囲が大きい) しかし、snowsnowさんの記述の場合 <div> <span class="my_span" style="padding-right: 5em"></span> <span class="my_span"></span> <span class="my_span"></span> </div> このHTMLに直接記載したstyleは、その要素だけにしか影響を及ぼさない為、他の要素のサイズが勝手に変わることは無い(影響範囲が小さい)という考えです。 ※今回は<p>要素の横方向に対する拡大なので影響範囲が小さいと考えております。もし、縦方向であれば他の要素の位置等が変わることが考えられます。
snowsnow

2019/10/21 04:04

そうでした!(このHTMLに直接記載したstyleは、その要素だけにしか影響を及ぼさない為)このお言葉、IDとclassの勉強をしたときにそういう記述がありました!今思い出しました^^;ありがとうございます。 お問い合わせフォームの1つ1つの項目にすべてspanを使っているので、span{}とやってしまうと、そこの場所が全部ズレてしまうことになりますもんね。 混乱していたことが1つ1つ整理されてきました^^
guest

0

起こり得ないわけではないですが、全体のバランスやそれこそレイアウト、要件次第だと思います。
「見本通り」ということはそ見本のように「模範解答」のようなものもあるのではと推察されます。そちらを確認されては?
ひとつのものを表現するための方法はひとつではありません。
もし納得いかないのでしたら現在できたものはそれはそれで置いておき、まっ更な状態で別パターンを作ってみるのもロジックを育てるいい機会になると思います。

投稿2019/10/21 03:08

m.ts10806

総合スコア80875

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

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

snowsnow

2019/10/21 03:43

ありがとうございます^^ 実はudemyというところで動画を買って学んでいるので、その講師さまに質問をしてみたのですが、回答がなかなかなくて、右往左往してました^^;でもおっしゃるように別な方法をいろいろ探して別パターンでつくるのは大切ですね。ヒントが得られるかもしれないし。本当にありがとうございます。
m.ts10806

2019/10/21 04:43

オンライン学習サービスを貶める意図はないですが、画一的な学習しかできず、応用力がつかないイメージがあります(私がオンライン学習経験かあるわけではなくteratailでの質問者の傾向を見て) 考えて実地検証を行うことによってその応用力はついて養われていくものだと思いますので、色々自分でやってみると良いです。
guest

0

ベストアンサー

140pxで問題が発生するかしないかだと「するでしょう」。(デザイン上と利便性の問題)
そのファイルをスマホで見てみて下さい。かなり見づらくなっているはずです。
vwかemで指定することをお勧めします。

投稿2019/10/21 03:06

編集2019/10/21 03:11
kyoya0819

総合スコア10429

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

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

snowsnow

2019/10/21 03:11

早速のご返信ありがとうございます。vw emという意味が全くわからないのですが、pxの部分をvw emに変えて設定してみればいいのでしょうか? 例("padding-right:5em;")ちょっとやってみますね。ありがとうございます。このように設定するとスマホの影響は受けずに済むんですね。
kyoya0819

2019/10/21 03:12

「受けにくい」というのが正しい表現です。 今回は質問者さんのコードを元にしているためサンプルでは5emで指定していますが1~2emあたりが良い気がします。
snowsnow

2019/10/21 03:14

本当にすみません、ローカル開発という意味もわからず^^;今はVSコードというのを使っていて、そこにコードを書いてクロームで確認しながら作っています。それとお恥ずかしいのですが私ガラケーなので、スマフォで確認ができず・・。でも今のurlを見せていただいたら見やすくなってました!
snowsnow

2019/10/21 03:15

:padding-right:2em; でまずはやってみますね^^ すみませんが、この「em」と「px」はどういう風に違うのですか?すみません、何から何まで。
kyoya0819

2019/10/21 03:15

この場合の「ローカル」はサーバーなどに上げずにパソコン内だけで実行することを指しています。
snowsnow

2019/10/21 03:17

サーバーなどはやっておりません、まだ初歩の初歩で^^;
kyoya0819

2019/10/21 03:19

まず、画面は小さな点(ライト)の集合体です。 その点が1つで1pxとなります。(最近は違ってきてますが) 対してemは親要素の文字の大きさ(font-size)を1とする単位です。
kyoya0819

2019/10/21 03:20

この場合はspanの親要素のpのfont-sizeが1となります。 pの親要素のbodyは既定ではブラウザのfont-sizeとなっています。
snowsnow

2019/10/21 03:21

本当にご丁寧でわかりやすいです、ありがとうございます!今やってみました、「11em」で見本通りになりました。11という数値もかなり膨大ですよね?これはよくないでしょうか?
kyoya0819

2019/10/21 03:23

11文字分(ととりあえずは考えて下さい)の空白を開けるのであまりよろしくはないです。media screenでPCとスマホのCSSを分けるならまだわかりますが... まぁ現段階ではem値は小さめにした方が良いと思います。
snowsnow

2019/10/21 03:24

よろしくないですか・・。なぜこのような現象が起きてしまうのでしょうか。細かいミスがどこかにあるということなのでしょうか?
kyoya0819

2019/10/21 03:34

「そういうもの」としか言いようがないです。
snowsnow

2019/10/21 03:54

奥が深いんですね。確かに作っていて、なんでこうなるんだろう?という現象が何度もありました。参考にさせていただいて、その都度対処してみようと思います。emという言葉は初めて知ったので大変な収穫でした^^本当にありがとうございました。
kyoya0819

2019/10/21 03:55

ちなみに似たようなものにremがあります。違いは以下の通りです。 em : 親要素のfont-sizeを1とする rem : ブラウザ既定のフォントサイズを1する。
snowsnow

2019/10/21 04:10

すごくわかりやすいです!小数点も打てるんですね!初めて知りました^^1emがブラウザ既定のフォントサイズになるということは・・・・11emはかなりまずい数値ですよね・・・。今ずれてる項目箇所を全部emで直したんですが、最小で8、最大で11でした。なぜこうなるのか・・。
kyoya0819

2019/10/21 04:12

それは教材のコードを丸コピしたのですか?
snowsnow

2019/10/21 04:15

そうですね!udemyという動画でその講師の先生がレクチャーをしてくれるんですよね。その通りに打ち込んでいくスタイルです。何度やりなおしてもその先生の通りにならないんですよね^^;なので自分でやってみようと思っていじってるうちに「madding-right」を使うしかなかったんです涙 詳細を質問したのですが回答がなかったので右往左往してたところだったんです涙
guest

0

問題があるかないかといえば、HTMLやCSSのルール的には特に問題はありません。

どのようなデザインなのかわかりませんが、多くの場合、
フォームでは複数の項目があるのではと思います。

性別以外にも入力・選択項目があり、それらと合わせるのであれば、
paddingを設定するのではなく、
項目名に幅(width)を設定するほうが、項目名の幅が揃います。

下記は例です。

HTML

1<p> 2 <span class="ttl">名前</span> 3 <input type="text" name="name" value=""> 4</p> 5<p> 6 <span class="ttl">性別</span> 7 <label> 8 <input type="radio" name="sex" value="男性" checked>男性 9 </label> 10 <label> 11 <input type="radio" name="sex" value="女性">女性 12 </label> 13</p> 14

CSS

1.ttl { 2 display: inline-block; 3 width: 4em; 4}

投稿2019/10/21 04:17

m_o

総合スコア109

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

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

snowsnow

2019/10/21 04:25

m_Oさんありがとうございます!あぁ!その手がありますね!!!幅!余白を造ることばかりに気をとられていました。なるほどです! 参考になります!!あの・・1つうかがっていいでしょうか?「display: inline-block;」とはなんでしょうか?改行されず横並びになるためのものだったでしょうかね?まだまだ勉強が追い付かず・・すみません涙
m_o

2019/10/21 04:45

htmlにはブロック要素とインライン要素のタグがあります。 例えば、divやpタグはブロック要素で、spanやaタグはインライン要素です。 ブロック要素は指定しなければ幅100%となり、その要素や次の要素は回り込みません(同じ行にならない)。 インライン要素は指定しなければ、中身の幅になり、次の要素がインライン要素であれば回り込みます。 display:inline-block;は、インライン要素をインライン要素のまま(次の要素を回り込ませる)幅を設定するために指定しています。 他の方法として、tableタグを使用したり、 ブロック要素を使用してCSSでfloatやflexを使う方法もありますが 段階的に学習していかれたら良いかと思います。
guest

0

皆様本当にありがとうございました。こんなにも有益で沢山の情報を短時間にいただけるとは思っておりませんでした。udemyで講座を買い取ってそのレクチャー通りのコードを書いていたんですが、自分で変えてみて解決しました!このように変えました。

<p> <label> <span>性別</span> <input type="radio" name="sex" value="男性" checked>男性 </label> <label> <input type="radio" name="sex" value="女性">女性 </label> </p>

上から三行目の<span><label>の中で括ったら解決しました。
本当にありがとうございました!

投稿2019/10/21 09:10

snowsnow

総合スコア11

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

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

kyoya0819

2019/10/21 09:11

解決してなによりです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問