2015-01-19 4 views
0

Я очень простого HTML кодаАбсолютного положения с: после

<div> 
    <h1>This is a test </h1>  
    </div> 

с супер простым CSS

h1:after 
{ 
background-color:red; 
    content:'';  
    height:2px; 
    width:100%; 
    position:absolute; 
} 

если я запускаю этот код (по крайней мере, в Chrome), было красным строка сразу после текста Однако, если я удаляю строку «position: absolute», эта красная линия также удаляется.

Может ли кто-нибудь помочь мне объяснить эту ситуацию?

+0

Что вы хотите? Пожалуйста, объясните это четко! –

ответ

2

:after и :before Псевдоэлементы inline по умолчанию. По умолчанию с пустым содержимым имеют нулевой размер, и вы не можете установить их width и height.

Если вы хотите, чтобы эти pseudoelements, вы должны сделать их абсолютно позиционируемых или установить их display: table/block и т.д.

+0

Я вижу. Поэтому могу ли я понять, что если мы установим элемент «абсолютной» позиции, мы сделаем его «блочным»? – wraith

+0

@wraith: см. Эту короткую скрипку: http://jsfiddle.net/kbujo198/. Первый - inline, 'width: 0; height: 0; 'из-за того, что я устанавливаю как ширину, так и высоту. Второй находится абсолютно и имеет размер, который я задал раньше. С псевдоэлементами ситуация такая же. – panther

Смежные вопросы