CSS:要素のコンテンツの前に空白を追加する方法は?


118

次のコードはどれも機能しません。

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

要素のコンテンツの前に空白を追加するにはどうすればよいですか?

注:セマンティックに使用するためにborder-leftおよびmargin-leftに色を付け、スペースを無色のマージンとして使用する必要があります。:)


5
単純なマージンを追加しないでください。
Cam

5
おそらくマージン/パディングがブロック全体に影響するためです。text-indentの方が良い選択です
素敵なお尻

セマンティックな使用のためにborder-leftとmargin-leftに色を付ける必要があります:)いくつか追加することもできelement:before { content:"[a kind of space]"; background: mycolor;}ます。スペースを追加する方法を知りたかったすべての方法、ちょっと楽しい!
Hugolpz 2013年

1
@Hugolpz:で基本的に同じことを行うことができますp:first-letter { border-left: 1ex solid mycolor; }
cHao 2013年

@carnマージンは静的で、スペースの幅はフォントサイズに相対的です
愛されていません

回答:


248

改行しないスペースのユニコードを使用できます:

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

JSfiddleデモを見る

[@Jason Sperskeによってスタイルが改善されました]


2
あなたはそれの効果を見ることができるように、私は若干の編集をした:jsfiddle.net/uMFHH/3(?そうでなければ、それはちょうど良い質問が表示されますマージン、のように見える、なぜ単にマージンを追加しない)
ジェイソンSperske

border-leftとmargin-leftに色を
付ける

3
なぜ終わりのスペース"\00a0 "?それは必要"\00a0"ですか、それとも私たちはできるのですか?
jbyrd 2018年

1
@jbyrd:必要ありません(jsfiddle.net/nhyw6e9qを参照)。通常のスペースが考慮されていないことを示すためにそこに残しました。
Hugolpz

40

スペースを挿入することでおならをしないでください。まず、古いバージョンのIEはあなたが何を話しているのかわかりません。それ以外にも、一般的にはよりクリーンな方法があります。

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

p { text-indent: 1em; }

JSFiddleデモ

編集:

スペースに色を付ける場合は、最初の文字に太い左枠を追加することを検討してください。(インデントは両方を使用すると問題になる可能性があるので、ほとんどではありませんが「代わりに」と言います。しかし、インデントの境界のみに依存するのは私には不愉快です。) 、および幅は、最初の文字の左マージン/パディング/ボーダー幅を使用しています。

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

デモ


2
IE <8のサポートでスタックしている場合、このメソッドは動作しますが、擬似要素の前/後は動作しません。
cimmanon 2013年

1
@cimmanon:うん。MDNによると、これはIE 3でも機能します(当時、CSS を使用していたことに気づきませんでした:P)。
cHao 2013年

このようなインデントに色を付けることはできません{ text-indent: 1em; }。しかし、私たちはそのような空間に色を付けることができ:before {content: "\00a0 "; background: #000; }ます。フィドルを参照
Hugolpz、2013年

1
@Hugolpz:テキストインデント?いいえ。AFAIK、それを違う色にすることはできません。しかし国境?承知しました。 :)
cHao 2013年

ああ、いくつかのコンテンツを追加することはできません。フィドルを参照してください
ひど

8

要素間にスペースを追加しようとしているので、margin-leftまたはpadding-leftのような単純なものが必要になる場合があります。ここに両方の​​例がありますhttp://jsfiddle.net/BGHqn/3/

これにより、段落要素の左側に10ピクセルが追加されます

p {
    margin-left: 10px;
 }

または、段落要素内にいくつかのパディングが必要な場合

p {
    padding-left: 10px;
}

5
/* Most Accurate Setting if you only want
   to do this with CSS Pseudo Element */
p:before { 
   content: "\00a0";
   padding-right: 5px; /* If you need more space b/w contents */
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.