2015-06-02 4 views
1

У меня есть этот HTML:селектор п-й последний ребенок не работает

<div class="leading-4"> 
<h2>title</h2> 
<p>one para</p> 
<p>Maybe another para</p> 
<p><ul><li>.....</li></ul></p> 
<h4>text</h4> 
</div> 

Я хочу, чтобы изменить р, который имеет ул в нем -

Я думал о

.leading-4 p:nth-last-child(1){ 
} 

и

.leading-4:nth-last-child(1){ 
} 

, но он не работает (t поджилки я не думаю, что это будет)

Что я делаю неправильно, пожалуйста

+0

Использование ': последний из-type' вместо этого. – Vucko

+0

Или, скорее, 'p: has (ul)'. Но ваш HTML недопустим, элемент UL не может находиться в элементе P. –

+0

Дарн - ты прав. Да, расцветая сегодня утром - нужен сильный кофе! это было проиллюстрировать - на самом деле это нагрузка ссылок, текстов и изображений .... – maxelcat

ответ

0

У вас не может быть <ul> внутри тега <p>! Так что, когда вы ставите <p><ul></ul></p>, браузер считает это <p></p><ul></ul>.

Так технически, есть и не может быть <ul> Внутри <p> так что ваш селектор CSS никогда никогда не выбирает элемент при любом случае в HTML.

Итак, рассмотрите возможность замены элемента на <div>.

Доказательство:

Литература:

Решение:

Раствор для выбора последней <p> для вас будет:

p:last-of-type { /* rules */} 
+0

Вы имеете право на структуру. Вы можете добавить, что для того, чтобы выбрать последний 'p' в своем коде, который не является последним-родителем родителя, ему нужно будет использовать': nth-last-of-type (1) '. – LinkinTED

+0

@LinkinTED Done. Добавлен. Благодарю. –

+1

horray - наконец – maxelcat

1

Что вы хотите last-of-type.

Но, как говорит Правейн, вы должны исправить свой HTML. При возникновении сомнений используйте W3C validator.

+1

большое спасибо Правен. Код фиксированный и решение работает, как только (1) вставлен в скобки – maxelcat

+0

Спасибо @MatTheCat! –

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