2017-02-23 10 views
0

元のdivにdivの擬似要素を設定したいとします。擬似要素のセンタリング

問題は、divのテキストが中央に配置されていることです。ここで

例です。

#a:after{ 
 
    content:"Text"; 
 
    position:absolute; 
 
    left:0; 
 
    color:red; 
 
}
<div style="width:100%;text-align:center;"> 
 
    <p id="a">Text</p> 
 
</div>

擬似要素のdivのスタイルに影響されないのはなぜ?

+0

あなたは 'ポジション使ってそれを配置しましたので:absolute'を、その祖先のいずれも非静的な「位置」属性を持たない。ビューポートに相対的に配置されます。 –

+0

@DavidThomas大丈夫です。 2つのテキストをオーバーレイするには絶対的な位置が必要です。 – nicoschuck

答えて

3

#a:after { 
 
    content: "Text"; 
 
    position: absolute; 
 
    left: 50%; 
 
    transform: translateX(-50%); 
 
    color: red; 
 
}
<div style="width:100%;text-align:center;"> 
 
    <p id="a">Text</p> 
 
</div>

ここでのセンタリング方法の説明です:またElement will not stay centered, especially when re-sizing screen

+1

ありがとうございます。それは多くの助けになる – nicoschuck

0

、変換なし:

#a:after { 
    content: "Text"; 
    position: absolute; 
    left: 0; 
    display: block; 
    text-align: center; 
    width: 100%; 
    color: red; 
}