Почему: не (> h1) невозможно? Любое решение в чистом CSS? - PullRequest
0 голосов
/ 20 февраля 2012

Я должен установить поле на <p> после селектора в зависимости от дочернего элемента (h1) из селектора. Как то так:

selector:not(>h1) + p
{
    margin: 10px 0 0 0;
}

HTML:

<a><h1>test</h1></a>
<p>test</p>

<a> - мой селектор, и он (или следующий p) должен получить маржу, только если a содержит <h1>. и нет его невозможно установить запас на h1.

Это не сработало: есть ли способ сделать это в чистом CSS? Я думаю, что это отсутствует в селекторах CSS3.

Ответы [ 2 ]

1 голос
/ 23 июля 2014

Нет абсолютно никакого способа заставить ваш селектор работать без использования jQuery ': has', и в этом случае я бы написал такой запрос:

$('selector > p:not(selector > p:has(h1))');

, если вложенные функции даже работают в jQuery

Причина, по которой CSS не может работать, заключается в том, что функции not: has, and: contains запрещены.

1 голос
/ 20 февраля 2012

Боюсь, ваш вопрос / пример не слишком понятен, но похоже, что вы описываете «родительский» селектор, в то время как CSS в настоящее время работает только с потомками / потомками.Я полагаю, что в конвейере есть работа для родительского селектора, но до тех пор это невозможно, я боюсь.

Если я правильно понял вас , звучит так, как будто вы о чем-то говоритекак http://www.shauninman.com/archive/2008/05/05/css_qualified_selectors

H

РЕДАКТИРОВАТЬ:

Опять же, я не могу точно сказать, что вы ищете, но, возможно, попробуйте что-то вроде этого:

<h1><a></a></h1>

h1 a{
    display:block
    margin-bottom:20px; /* Adjust as necessary */
}
h1 + p{
    margin-top:-20px; /* Same as above */
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...