Css проблема селектора - дети и родитель? - PullRequest
0 голосов
/ 12 марта 2011

Интересно, как я могу выбрать ТОЛЬКО "Mega Parent" верхнего уровня в моем примере?

<li class="page_item parent"><a href="#"> Mega Parent</a>
        <ul class="children">
            <li class="page_item parent"><a href="#">Subparent</a>
                <ul class="children">
                    <li class="page_item"><a href="#">Child</a></li>
                </ul>
            </li>
        </ul>
    </li>

Я хочу, чтобы только у моего верхнего родительского элемента "Mega Parent" был, например, красный цвет. Какой лучший способ решить это?

Ответы [ 3 ]

1 голос
/ 12 марта 2011

Вы можете использовать что-то вроде этого:

.page_item.parent > a { color: red; }
.page_item.parent li > a { color: inherit; }

Или вы можете добавить дополнительный класс к элементу вашего мегаполента, который устанавливает дополнительный стиль.

1 голос
/ 12 марта 2011

Это должно быть решено при определении классов, а не при их адресации. Но если вы не можете определить их, я бы просто выбрал другой селектор для вложенного, чтобы перезаписать значение по умолчанию, которое вы применяете ко всем элементам

.page_item.parent a{ color:red; }

.page_item.parent ul.children .page_item.parent{ color:black;}

или любой другой вид стилей по умолчанию, вы также можете просто добавить второй селектор к другому определению.

0 голосов
/ 12 марта 2011

CSS использует наследование для определенных значений, возможно, вам пришлось вручную установить color для потомков, чтобы отрицать наследование.

См. Объяснение здесь:

http://dorward.me.uk/www/css/inheritance/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...