2011-09-19 22 views

Odpowiedz

27

Dla przyszłych czytelników efekt polegał na tym, aby nad tekstem po lewej stronie pojawił się pasek. Aby to osiągnąć, OP używał position: absolute; na elemencie psuedo (p:before).

Wystąpił błąd OP, ponieważ element psuedo traktował <body> jako względny punkt pozycji - aby naprawić, wystarczy ustawić position: relative; na znaczniku <p>.

p { 
 
    position: relative; 
 
    background-color: blue; 
 
    padding-left: 10px; 
 
    /* change the padding to something larger 
 
    than the width of the :before element to 
 
    add spacing for text 
 
    */ 
 
} 
 

 
p:before { 
 
    content: ''; 
 
    position: absolute; 
 
    left: 0; 
 
    top: 0; 
 
    width: 10px; 
 
    height: 100%; 
 
    background-color: red; 
 
}
<p>text... text...</p>

+4

Nie trzeba pojemnika zewnętrznego. Samo 'p' zawiera' p: before', więc możesz po prostu względnie ustawić 'p' zamiast tego. – BoltClock

+0

Nie myślałem, dzięki za złapanie tego. Zaktualizowana odpowiedź. – Ben

Powiązane problemy