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

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

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

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

HTML5

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

HTML

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

Q&A

解決済

2回答

3767閲覧

チェックボックスの要素全体は中央・テキスト本体は左寄せにする方法

kumeshin510

総合スコア2

CSS3

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

HTML5

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

HTML

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

0グッド

0クリップ

投稿2021/12/05 14:07

編集2021/12/05 14:19

前提・実現したいこと

参考画像

上記のような、
画面幅に対しては中央配置、ただし文字自体は左寄せを実現したいです。
今回は問い合わせフォームのチェックボックスでの実装を目指しています。

正解の記述だけではなく、私の勉強のために「なぜその記述を追加したのか」も合わせて解説をお願いいたします。
お手数おかけしますが、お願いいたします。

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

text-alignによって中央配置にはなるが、さらにそれを左寄せにする実装方法で混乱しています。

該当のソースコード

html

1<main id="contact" class="contact main-wrap"> 2 <h1>お問い合わせ</h1> 3 <div class="contact__container"> 4 <h3>カテゴリ</h3> 5 <div class="form-items"> 6 <div class="form-item"> 7 <input id="category1" name="category" value="予約について" type="checkbox"> 8 <label for="category1">予約について</label> 9 </div><br> 10 <div class="form-item"> 11 <input id="category2" name="category" value="資料請求について" type="checkbox"> 12 <label for="category2">資料請求について</label> 13 </div><br> 14 <div class="form-item"> 15 <input id="category3" name="category" value="リクルート" type="checkbox"> 16 <label for="category3">リクルート</label> 17 </div><br> 18 <div class="form-item"> 19 <input id="category4" name="category" value="その他お問い合わせ" type="checkbox"> 20 <label for="category4">その他お問い合わせ</label> 21 </div> 22 </div> 23 </div> 24 </main>

css

1.main-wrap { 2 height: auto; 3 width: 100%; 4} 5 6/*============ 7お問い合わせ 8 ============*/ 9.contact { 10 padding: 0 20px; 11} 12 13.contact__container { 14 text-align: center; 15} 16 17#contact h3 { 18 font-size: 1.3em; 19 font-weight: bold; 20 background-color: #EBEBEB; 21 border-top: 1px solid #BCBCBC; 22 border-bottom: 1px solid #BCBCBC; 23 padding: 5px 0; 24 margin-bottom: 5px; 25} 26 27.form-item { 28 display: inline-block; 29 text-align: left; 30} 31

試したこと

親の要素にはtext-align:center;
左寄せしたい要素をインラインブロック要素にし、text-align:left;
上記のようにすると実装できるというのを調べて見つけたのですが思い通りになりませんでした。

補足情報(FW/ツールのバージョンなど)

試用ツール:vscode

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

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

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

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

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

guest

回答2

0

CSS

1.contact__container h3 { 2 text-align: center; 3}

.contact__containerの後にh3を追加してみでください。
欲しいのはこの様でしょうか?

投稿2021/12/05 15:35

skys215

総合スコア910

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

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

0

ベストアンサー

css

1.form-item { 2 display: inline-block; 3 text-align: left; 4}

上記コードを下記に修正すれば、いいでしょう。

css

1.form-items { 2 display: inline-block; 3 text-align: left; 4}

text-align は要素内のテキスト(インライン要素)の配置を指定するプロパティです。
インラインブロック要素も対象になります。

.form-itemtext-align: left;を設定しても.form-itemは左寄せにはなりません。
親要素の.form-itemsに設定すると、.form-itemsの範囲内で.form-itemは左寄せになります。

それだけだと、.form-itemsはブロック要素なので幅は親要素の幅と同じになりますので、コンテナブロック内で左端に配置されます。
.form-itemsdisplay: inline-block;を設定してインラインブロックにすると、幅は子要素の最大幅と同じになります。
親要素の.contact__containerにはtext-align: center;が設定してあるので、.form-itemsは中央に配置されます。

文章だけでは分かりづらいかも知れませんので、下記の画像をみると直感的に理解しやすいかもです。

イメージ説明

.form-itemsにピンクの背景色、.contact__containerに水色の背景色をつけてます。

投稿2021/12/05 14:56

編集2021/12/05 15:29
hatena19

総合スコア33692

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

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

kumeshin510

2021/12/05 16:36

ご回答誠にありがとうございます。 メンターになってもらいたいと思うほどの丁寧な解説で、とても勉強になりました。 左寄せにしたい内容がinputとlabelなので、その親要素に対して設定すればいいものだと思い込みをしてしまいました。 貴重なお時間の中、分かりやすい例も添付していただき感謝しております。 今後の勉強に活かします!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問