前提・実現したいこと
複数のp
タグとそれらを囲むdiv
タグがあります。
このdiv
の中で中央に配置し、p
タグのテキストを左に揃えたいです。
発生している問題・エラーメッセージ
中央配置、左揃えができていません。
該当のソースコード
html
1<div> 2 <p> 3 あいうえお 4 </p> 5 <p> 6 あいうえおかきくけこ 7 </p> 8 <p> 9 あいうえおかきくけこさしすせそ 10 </p> 11 <p> 12 あいうえおかきくけこさしすせそたちつてと 13 </p> 14</div>
css
1div { 2 padding: 16px; 3 background-color: lightgray; 4} 5 6p { 7 line-height: 1; 8 position: relative; 9 padding-left: 24px; 10} 11 12p::before { 13 content: "%"; 14 position: absolute; 15 left: 0; 16}
試したこと
div
にtext-align: center
、p
にtext-align: left
とdisplay: inline-block
を設定しましたが、効果はありませんでした。
追記
幅の設定をしていなかったので、別のサンプルを用意しました。
サンプル2
p要素の幅はどうすればいいですか? 何も指定しなければ親要素と同じ幅になるので、中央配置もなにも変わらなくなります。
おっしゃる通りです。pではなく親に幅を設定しましたので、よろしければご確認ください。
いえ、そうではないです。
繰り返しになってしまって申し訳ないのですが。
div が width: 740px;
p が width: auto;
だとすると、auto は 100%になるので、結果的にこうなります。
div が width: 740px;
p が width: 740px;
---
この状態で、p を「このdivの中で中央に配置」しても、幅が同じなので、右寄せや左寄せと区別できません。
ですので、p の幅は div の幅と変える必要があるはずです。
p要素の幅は、文字数が一番多いp要素の幅に設定することはできないのでしょうか。
なるほど、問題を把握しました。
ここを読んでいるのは私ぐらいでしょうから、他の回答者にもわかるようにそのようにご質問に追記されることをおすすめします。
回答2件
あなたの回答
tips
プレビュー