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

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

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

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

Q&A

解決済

1回答

359閲覧

子要素を割合%指定した時にpaddingをすると割合が動いてしまう問題

pegy

総合スコア245

CSS

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

0グッド

0クリップ

投稿2021/05/28 01:35

編集2021/05/28 01:37

例えば、以下のように子要素のwidthを%で相対的に決定したいような場合があります。
ここで、子要素の一部にpaddingを適用した場合、結果として子要素widthの70%:30%の関係が崩れてしまうことがわかりました。これを調べた結果、widthは要素の最も外側のborderまでではなくcontentの幅を指しているため、contentの外側のpaddingを指定するとその分、要素全体のwidthが割りを食ってしまう(押し出すようにして、70%側の子要素が相対的に縮小される)ことがわかりました。

ここで、実際にはpaddingを利用しながらも子要素のwidthを相対的に割合で決定したい場合があると思います。ここでcontentの外側も計算に織り込んで、それぞれのwidthの割合を決定するのは煩雑であると思うのですが、実務的にはどのようにしてこのようなケースでは対応するものなのでしょうか?

アドバイスを頂けますと幸いです。よろしくお願い申し上げます。

※少し文脈でわかりづらいかもしれませんが、結果的に.children_1:.children_2=70%:30%の関係を維持した上で、.children_2の30%の範囲で中のpaddingを1em設定したいという趣旨になります。

html

1<head> 2 <style> 3 .parent{width:100%:display:flex;} 4 .children_1{width:70%} 5 .children_2{width:30%;padding:1em;} 6 <style> 7</head> 8<div class="parent"> 9 <div class="children_1">children_1</div> 10 <div class="children_2">children_2</div> 11</div>

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

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

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

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

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

guest

回答1

0

ベストアンサー

box-sizing: border-boxとすれば解決しそうな気がします。
box-sizing - CSS: カスケーディングスタイルシート | MDN

投稿2021/05/28 01:46

Lhankor_Mhy

総合スコア36960

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

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

pegy

2021/05/28 01:56

ありがとうございます! 容易に実装ができました。
Lhankor_Mhy

2021/05/28 02:03

お役に立てたようで何よりです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問