2017-02-16 7 views
0

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

я могу использовать этот способ:

<p class="bold underlined blue">Happy little clouds</p> 

или

<p class="bold-underlined-blue">Happy little trees</p> 

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

+0

Вы будете определять «font-weight: bold;» в еще нескольких других правилах, если вы не будете использовать повторное использование. Таким образом, «последствия для производительности» не должны иметь большого значения для вашего первого решения. –

+1

Производительность, в вашем конкретном примере *, вторая лучше; чем меньше файл CSS, тем быстрее он будет загружаться. Но давайте будем настоящими здесь. Каков фактический прецедент для конкретных классов на * каждом элементе * в отличие от повторного использования? Если вы создадите определенный класс для каждого элемента, у вас всегда будет * как минимум * столько CSS-правил, сколько элементов на странице. Если вы собираетесь использовать повторно используемые классы, вы можете иметь 100 элементов и всего 10 правил. Таким образом, в 99,9% случаев * многоразовые классы * - лучший способ пойти. Голосование закрывается как «Основополагающее мнение». – Santi

+0

«В первую очередь, основанное на мнениях», один способ будет делать быстрее, чем другой, и это вопрос, который я задавал, но тогда есть удобство и читаемость, которые я согласен, основаны на мнениях, а не вопрос, который я задавал. – LouisColeman

ответ

2

Бывший подход (с использованием нескольких классов) определенно лучше. Вы можете не только стилизовать элементы по отдельности с:

.bold { 
    font-weight: bold; 
} 

.underlined { 
    text-decoration: underline; 
} 

.blue { 
    color: blue; 
} 

Но вы также можете их стиль для конкретной комбинации с друг друга, такие как:

.bold.underlined.blue { 
    font-size: 18px; 
} 

В приведенном выше примере, font-size будет применяться только в том случае, если соответствующий элемент имеет все три класса, которые по существу будут такими же, как и последний метод сами по себе :)

Нет t только с использованием специализированных классов дает вам больше универсальности, но также и быстрее - поскольку вы, вероятно, будете многократно использовать стили, такие как font-weight: bold, по всему документу, выделенный класс означает, что вам нужно будет написать декларацию один раз, а не чтобы записать его в каждом отдельном селекторе.

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

Надеюсь, это поможет!

+0

OP в основном обеспокоен проблемами производительности. Постарайтесь ответить на этот вопрос вместе с вашим ответом. –

+0

Просто обновил ответ на адрес производительности :) –