2017-06-30 25 views
0

私はafter要素で改行を取ろうとしていましたが、私が驚いたのは興味深いものです。属性セレクタを使ったCSS擬似要素の改行

#fourth figcaption:before 
{ 
    content: 'Figure \A' attr(title) ' '; 
    white-space: pre-wrap; 
} 

これはどのようにして動作し、属性からのコンテンツの前に改行を取得します。

コンテンツをattrから完全に取得する方法は、改行を停止するとレンダリングが停止します。

#fifth figcaption:before 
{ 
    content: attr(title); 
    white-space: pre-wrap; 
} 

あなたはここにこれを見ることができます>これが違いを生むだろう、なぜhttp://jsbin.com/huyaxifomo/edit?html,css,output

誰でも知っていますか?前もって感謝します。

+2

申し訳ありませんが、私は '表示'と白space'交換した場合、非常に、ここでの問題を取得していない午前のようなもの:ブロックが、私は私が間違っているにリンクされたと思う –

+0

期待通り '、それは動作しますフィドル。少し待って。 – SpaceBeers

+0

私は正しいデモにリンクしました。 – SpaceBeers

答えて

1

\Aまたは\aを使用している場合、またはHTML属性の値と同様のものは静的な値に過ぎません。あなたのCSSに以下のようなものを使用すると、CSSから改行を追加したい場合は、あなたの中に\Aを宣言する必要があなたのcontentプロパティの

content: attr(title); 
/* 
    This will not parse \a as a line break and would rather treat it as 
    a string. 
*/ 

よう

<div data-stuff="Hello \a World"></div> 

とCSSを、このような構文を解析しませんHTML属性ではなく、スタイルシートです。したがって、

content: attr(title) '\A World'; /* works now, as your \A will be parsed by CSS */