2013-05-14 1 views
76

どれも機能しません:私は要素の内容の前に空白を追加するにはどうすればよいCSS:要素の内容の前に空白を追加するには?次のコードの

p:before { content: " "; } 
p:before { content: " "; } 

注:セマンティック使用のために左端と余白左に色付けし、スペースを無色のマージンとして使用する必要があります。 :)

+4

理由だけ追加していない段落要素の左に10個のピクセルを追加しますです単純なマージン。 – Cam

+4

マージン/パディングがブロック全体に影響する可能性があります。テキストのインデントがより良い選択になるでしょう。 –

+0

私は境界線を左に、余白をセマンティックに使うために色を付ける必要があります:) {content: "[一種のスペース]";背景:mycolor;} 'も同様です。スペースを追加する方法を知りたかったすべての方法、ちょっとした楽しみ! – Hugolpz

答えて

170

あなたはノーブレークスペースのユニコードを使用することができます。

p:before { content: "\00a0 "; } 

は[@Jason Sperskeによって改善スタイル]

+2

少し編集して、効果を確認できます:http://jsfiddle.net/uMFHH/3/(そうでなければ余白のように見えます良い質問を、なぜマージンを追加するだけではない?) –

+0

+1良い答えです。 –

+0

border-leftとmargin-leftに色を付ける必要があるため – Hugolpz

31

はと周りおならしないでくださいJSfiddle demo

を参照してください。スペースを挿入する。 1つは、IEの古いバージョンは、あなたが話していることを知りません。それに加えて、一般的にはよりクリーンな方法があります。

無色インデントの場合は、text-indentプロパティを使用します。

p { text-indent: 1em; } 

JSFiddle demo

編集:

あなたはスペースが着色したい場合は、あなたが最初の文字に太い左の境界線を追加することを検討することがあります。 (私は、ほとんどの場合「代わりに」と言っています。なぜなら、両方を使用するとインデントが問題になる可能性があるからです。しかし、インデントに境界線を頼るのは私にとっては汚いと感じています) 、幅はどれくらいで、色は最初の文字の左余白/パディング/境界幅を使用しています。

p:first-letter { border-left: 1em solid red; } 

Demo

+2

IE <8をサポートしていない場合、このメソッドは前後の擬似要素では機能しません。 – cimmanon

+1

@cimmanon:うん。 MDNによると、これはIE 3でも動作します(しかし私は彼らが* CSSを持っていることに気づいていませんでした:P)。良い答えは – cHao

+0

+1です。 –

7

あなたは要素の間にスペースを追加するために探しているので、あなたは余裕左またはパディング左のような単純なものが必要な場合があります。ここでは、両方のhttp://jsfiddle.net/BGHqn/3/

の例は、これはあなたがちょうどあなたの段落要素内にいくつかのパディングをしたい場合は

p { 
    margin-left: 10px; 
} 

または

p { 
    padding-left: 10px; 
} 
関連する問題