2015-02-08 2 views
0

Для лучшей читаемости и чистый код, я использую вложенные стили в LESS, как это:Иерархические/вложенные стили в МЕНЬШЕ

.item { 
    .title { 
     /* ... */ 
    } 
    .content { 
     /* ... */ 
    } 
} 

Проблема заключается в том, потомок селектора он компилирует, например:

.item .title { 
    /* ... */ 
} 

предположительно очень плохо для исполнения. Это все еще верно для современных браузеров? И если да, какова альтернатива? (Моя цель здесь организован код, я, вероятно, на самом деле не нужен селектор потомка.)

+1

Это не * очень плохой *. Если есть какие-либо последствия для производительности, они будут настолько малы, что они будут незначительными. Современные браузеры оптимизированы для решения этой проблемы. –

+0

Почему это плохо? Браузеру всегда нужно получать CSS-классификацию. Для других людей, которые редактируют код, файлы LESS имеют большую читаемость. – Mardzis

+0

Вы можете использовать '&> .title', который будет скомпилирован в' .item> .title'. Селекторы детей могут быть немного быстрее, чем потомки. – Oriol

ответ

1

Насколько я знаю, .item .title это единственный способ, чтобы выбрать .title внутри .item (.item > .title как уже упоминалось @Oriol можно также работает в некоторых ситуациях). Меньше позволяет вам вложить это отношение.

Когда вам это не нужно, вы также не должны вставлять его в свой код Less. Возможные комментарии использования, чтобы понять, что группа селекторов принадлежит определенному другому селектору. В качестве альтернативы рассмотрим методологию BEM, см. http://csswizardry.com/2013/01/mindbemding-getting-your-head-round-bem-syntax/, затем .item .title можно записать как item__title {}.

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