2013-03-28 3 views
1

В чем разница между этими двумя CSS-селекторами. Я получаю тот же результат от них обоих.В чем разница между элементом-элементом и элементом + элементом

HTML:

<div>One</div> 
<p>Two</p> 

CSS Example #1:

div+p { 
background:red; 
} 

Это дает <p> элемент красный фон.

CSS Example #2:

div~p { 
background:red; 
} 

Это также дает <p> элемент красный фон.

Итак ... в чем разница между этими двумя селекторами?

+1

[Спецификация ваш друг] (HTTP: // www.w3.org/TR/selectors/#sibling-combinators). –

+0

Добавьте еще один p ​​в свой html, и вы найдете то, что разница –

ответ

3

От the w3.org:

E + F элемент Р непосредственно предшествует E элемента

Е ~ F элемент F предшествует элементу E

Важным словом является «немедленно».

В вашем HTML, поскольку у вас нет другого элемента, вы не можете видеть разницу, но это, конечно, важно в общем случае.

+0

Понял. благодаря – henryaaron

0

Прямая одноуровневый:

DIV + PP элементы, которые непосредственно следуют Див элементы

р + * любые элементы, которые непосредственно следуют из р элементов

Косвенное Sibling

ДИВ ~ рр элементы в любом месте после Div элементов

р ~ * любые элементы в любом месте после р элементов

Ссылка: http://www.princexml.com/doc/6.0/selectors/

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