2013-12-10 8 views
14

div要素のボーダーの内側にいくつかのパディングを付ける方法はありますか?例えば、私のメインのdiv要素の中のすべてのテキストは現在、要素の境界線の端まで右に移動します。このサイトの一般的なルールとして、テキストと境界線の間に少なくとも10〜20ピクセルのスペースが必要です。divの内部のテキストをパッドするCSSプロパティ

enter image description here

+2

div内の要素にパディングを追加 –

答えて

18

divの幅から減算するか、またはボックスサイズを使用しますが、必要なのは、問題のdivの子要素を埋め込むだけです。あなたはこのようないくつかのマークアップを持っているのであれば、例えば、:

<div id="container"> 
    <p id="text">Find Agents</p> 
</div> 

をあなたがする必要があるのは、このCSSを適用している。ここで

#text { 
    padding: 10px; 
} 

は違いを示すフィドルです:http://jsfiddle.net/CHCVF/2/

また、複数の要素があり、同じクラスをすべて与えるような気がしない場合は、次のようにすることができます。

.container * { 
    padding: 5px 10px; 
} 

すべての子要素を選択し、必要な詰め物を割り当てます。これは実際の動作のバイブルです:http://jsfiddle.net/CHCVF/3/

+0

これは私がやったことです - 「contentContainer」と呼ばれるdivを作成し、20pxのパディングを与えました。 thx – NealR

+0

@NealR問題ありません。うまくいきました。 –

+0

'.container *'はコンテナが複数ある場合は動作しません。すべての内側のコンテナにも望ましくないパディングがあります。 –

3

ちょうどあなたの元div幅からdiv { padding: 20px; }とsubstract 40pxを使用します。ここでは

画面は、私が現在持っているもの説明するために撮影します。

フィリップ・ウィルズは指摘のように、あなたも40pxをsubstractingのではなく、box-sizingを使用することができます。

div { 
    padding: 20px; 
    -moz-box-sizing: border-box; 
    box-sizing: border-box; 
} 

-moz-box-sizingは、Firefox用です。

+0

jsFiddleも追加できますか? – frenchie

+1

またはbox-sizingを追加:border-box ...(40を引く代わりに) – philwills

+0

@PhillipWills良い考え方、私はそれを私の答えに加えました。 – Jarno

0

埋め込みはDiv内に余白を追加する方法です。
はちょうどあなたが本部の元の幅から-20pxしなければならない、

div { padding-left: 20px; } 

使用し、サイズをmantainします。

13

あなたが探しているCSSプロパティはパディングです。 パディングの問題は元の要素の幅に追加することです。したがって、幅が300pxのdivがあり、それに10pxのパディングを追加すると、幅は320pxになります(左に10px、左に10px右側に)。

これを防ぐには、ボックスサイズ:border-boxを追加します。 divには、パディングを追加しても指定された幅を維持します。 だからあなたのCSSは次のようになります。

div { 
    box-sizing: border-box; 
    padding: 10px; 
} 

あなたはボックスのサイズ変更についての詳細を読むことができますし、それはここで全体のブラウザのサポートです:

あなたを持って、私はここに答えの多くを見る

http://www.paulirish.com/2012/box-sizing-border-box-ftw/

関連する問題