Правильно ли так делать в css?

237
12 апреля 2017, 12:00

Добрый день! Подскажите, пожалуйста, следующее. В html коде нужным мне спискам ul li я не присваиваю классы. В файле стилей стиль прописываю так:

.menu ul > li > ul > li {
}

В скрипте пишу также:

$(".menu > ul > li > a").click(function(e){

Правильно ли вообще так делать? Все ли браузеры понимают такие конструкции, в т.ч. и на планшетах и телефонах? Искал такую информацию, но не могу найти, что это такое - >, чтобы о них почитать. Благодарю!

Answer 1

Нет, так делать не правильно.

Это кроссбраузерный вариант и все браузеры будут понимать, что вы имеете ввиду.

Но!

1 - Чтение начинается не слева направо, а справа налево. То есть в такой записи .menu ul > li > ul > li сначала перебирает все li, потом все li c родителем ul, потом все li с родителями ul>li и т. д. При большом количестве элементов на странице такой подход приведет к длительной загрузке.

2 - Такой стиль противоречит методологии БЕМ. Что усложняет работу с большими проектами. Конечно вы не обязаны использовать его в своих проектах. Но учитывать возможность хотя бы изменения кода - необходимо.

3 - Такая запись "плодит ошибки", очень легко, особенно в скриптах запутаться во вложенности при такой записи.

Answer 2

> - это CSS-селектор, который применяет стиль к дочернему элементу.

Дочерним называется элемент, который непосредственно располагается внутри родительского элемента. Какой элемент выступает родителем, а какой его потомком легко выяснить с помощью дерева элементов — так называется структура отношений элементов документа между собой (рис. 1). На рис. 1 в удобном виде представлена вложенность элементов и их иерархия. Здесь дочерним элементом по отношению к <div> выступает элемент <p>. Вместе с тем <strong> не является дочерним для элемента <div>, поскольку он расположен в контейнере

.

Синтаксис

E > F { Описание правил стиля }

Более подробно

READ ALSO
Не работает событие конец скролл

Не работает событие конец скролл

alert(1) - для того чтобы узнать вообще работает ли жава с(сейчас работает

293
Идентификация элемента

Идентификация элемента

На странице выводятся данные из таблицы MySQL:

208
браузерное выделение текста

браузерное выделение текста

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

213
Метод клонирования

Метод клонирования

Как можно сделать клон объекта на C#? Дело в том, что я работаю над структурой данных "Список", и нужно сделать метод, который будет клонировать...

382