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

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

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

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

457閲覧

お問い合わせフォームのスタイリングがうまくできない

chocon

総合スコア14

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

1クリップ

投稿2020/11/20 21:44

お問い合わせフォームを作成しています。
ここで素晴らしく有難いアドバイスを頂き
なんとかHTML・CSSでだけでも
「お問い合わせ項目」の選択によって
表示したい部分・非表示にしたい部分ができました、

しかし、次に困ったのが例えば
1、「お問い合わせ項目」を横並びにしたい
2、「サイトの知ったきっかけ」部分をCSSで装飾したり
回答部分を同じように横並び(折り返し)などして
みやすくスタイルしたい。

ただ、すでに表示・非表示がラジオボタンに合わせて
適用されるようにコーディングをしているため
親要素「data-contents」で変更できず
「siryou」の中の装飾や中央揃え(flexbox)などが
使えません。

色々タグを変えて試しましたが
装飾やflexboxが使えるようになると
ラジオボタンに合わせての表示・非表示ができなくなり
また逆も然りです。

親要素が全体で囲ってしまっているため
子要素の部分をスタイルしたくて
親要素が必要な場合(この場合だと「.siryou」の部分だけスタイルしたい)
どうしたら良いのでしょうか。

アドバイス頂けると幸いです。
1日悩みましたが、、、
きっと表示・非表示をJavaでするのが一番だと思うのですが
全く無知なので流石にすぐに理解ができなくて・・・・
できるだけ今回スタイリングした
このタイプでお問い合わせフォームを作成したいと思い
相談させて頂きました。

宜しくお願い致します。

html

1 <!-- 家族 --> 2 <div> 3 4 <input id="i_qtype01" type="radio" name="qtype" value="お問い合わせ" > 5 <label for="i_qtype01">お問い合わせ</label> 6 <input id="i_qtype02" type="radio" name="qtype" value="資料請求" > 7 <label for="i_qtype02">資料請求</label> 8 <input id="i_qtype03" type="radio" name="qtype" value="キャンペーン" > 9 <label for="i_qtype03">キャンペーン</label> 10 11 <!-- 親 --> 12            <div class="data-contents"> 13 <!-- お問い合わせを選択時に表示 --> 14 15 16 <!-- 子供 --> 17     <div class="siryou"> 18    <div> 19 <label>サイトを知ったきっかけ</label> 20    </div> 21 <div> 22 <em>任意(複数回答可)</em> 23 </div> 24 <div> 25 <input id="check01_01" type="checkbox"> 26 <label for="check01_01">紹介</label> 27 </div> 28 29 <div> 30 <input id="check01_02" type="checkbox"> 31 <label for="check01_02">広告</label> 32 </div> 33 34 <div> 35 <input id="check01_03" type="checkbox"> 36 <label for="check01_03">SNS</label> 37 </div> 38 39 <div> 40 <input id="check01_04" type="checkbox"> 41 <label for="check01_04">DM</label> 42 </div> 43 44 <div> 45 <input id="check01_05" type="checkbox"> 46 <label for="check01_05">FAX</label> 47 </div> 48 49 50 <div> 51 <label>お問い合わせ内容</label> 52 <em>必須</em> 53 <textarea required></textarea> 54 </div> 55 56 </div> 57 <!-- <資料請求選択時に表示 --> 58 59 <div class="siryou-02"> 60 <div> 61 <label>お問い合わせ内容(任意)</label> 62 <textarea></textarea> 63 </div> 64 65 </div> 66                <!-- <親タグ閉じる --> 67          </div> 68                <!-- <家族閉じる --> 69        </div> 70

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

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

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

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

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

Lhankor_Mhy

2020/11/21 01:40

・現状では、まだCSSは何も設定していないのですか? ・『「お問い合わせ項目」を横並びにしたい』とのことですが、「お問い合わせ項目」とはどれですか? 「お問い合わせ内容 必須」「お問い合わせ内容(任意)」を横並びにしたい、というようなことでしょうか? ・『「.siryou」の部分だけスタイルしたい』とのことですが、 .siryou{ ... } などとすればいいかと思いますが、どのような問題が発生していますか? --- 結果(実際に起きたこと)を書きましょう https://teratail.com/help/question-tips#questionTips3-4-1 期待した処理結果を書きましょう https://teratail.com/help/question-tips#questionTips3-4-3
chocon

2020/11/21 10:17

申し訳御座いません。 下書きではCSSも記載していたですが ちゃんと投稿できていませんでした。 修正します。
guest

回答1

0

ベストアンサー

まだ、全角空白が残ってます。それを削除しましょう。
見た目では半角空白と全角空白が見分けが付かないので、エディターの設定で見わけが付くように設定しましょう。

で、本題ですが、

1、「お問い合わせ項目」を横並びにしたい

「お問い合わせ項目」というのが、なにか分かりませんが、最初の3つのラジオボタンなら横並びになってますが。

〇お問い合わせ
〇資料請求
〇キャンペーン
というような表示にしたいという意味なら、<br>で改行させればいいでしょう。

html

1 <p class="i_qtitle">お問い合わせ項目</p> 2 <input id="i_qtype01" type="radio" name="qtype" value="お問い合わせ"> 3 <label for="i_qtype01">お問い合わせ</label><br> 4 <input id="i_qtype02" type="radio" name="qtype" value="資料請求"> 5 <label for="i_qtype02">資料請求</label><br> 6 <input id="i_qtype03" type="radio" name="qtype" value="キャンペーン"> 7 <label for="i_qtype03">キャンペーン</label> 8 <div class="clearfix"></div>

2、「サイトの知ったきっかけ」部分をCSSで装飾したり

回答部分を同じように横並び(折り返し)などして
みやすくスタイルしたい。

現状のHTMLで .siryou .siryou-02 にflexを設定すればその子要素を横並びにできます。
中身の要素にも適切にクラスを設定すればスタイルも自由に設定できると思いますが。

レイアウトに関してもflexは設定で縦並びにもできますので、表組のような横並びと縦並びに組み合わせもブロックを入れ子にしてそれぞれにflexで横並び、縦並びをせっていすれば可能です。

Flexbox の基本的な使い方/Web Design Leaves

あるいは、Gridを使えば、ブロックを入れ子にしなくても複雑な表組もシンプルに実現できます。

サクッとグリッドCSSを理解して、クライアントワークに使う | 新宿のホームページ制作会社 ITTI(イッティ)

追記

どのようなレイアウトが提示されていないですか、前の質問を参照したりしてなんとなく推測したレイアウトでのサンプル

CodePenサンプル

とりあえず全体のレイアウトだけ。背景色とか文字色、フォントサイズとかはお好みで設定してください。クラスを付与してますので、そのクラスに対して設定すればいいでしょう。

投稿2020/11/21 01:32

編集2020/11/21 05:00
hatena19

総合スコア34075

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

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

chocon

2020/11/21 10:17

hatena19様 いつも大変お世話になっております。 もう・・・本当にいつもわかりやすいアドバイスで本当に勉強になります。 また、私のわかりにくい説明でサンプルまで作成頂き本当に有難う御座います。 少し頂いたアドバイスとURLで勉強してコーディングしてみます。 なのでその後また詰まったら相談させてください。 一度トライしてみません。
chocon

2020/11/24 21:14

hatena19さま いつも有難う御座います。 今日一日かけてアドバイス頂いたことを元に コーディング・装飾しました。 特に CODEサンプルが本当に勉強になり、CSSのことも すごく一緒に勉強させて頂きました。 本当に有難う御座いました。 めちゃくちゃスッキリしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問