#html #css #xhtml
#HTML #css #xhtml
Вопрос:
- Какой метод более удобен для командной разработки?
- Что будет более оптимизировано в longer?
- Каковы плюсы и минусы обоих?
Таблица стилей
#firstblock { background: #000; float: left; }
.genblock { background: #006699; float: left; }
HTML
<div id="firstblock"></div>
<div class="genblock"></div>
How you should do it
Или
Таблица стилей
.left { float: left; }
#firstblock { background: #000; }
.genblock { background: #006699; }
HTML
<div id="firstblock" class="left"></div>
<div class="genblock left"></div>
Ответ №1:
Вы не должны пропускать презентационную информацию (CSS) на свой уровень данных (HTML).
Вы должны присвоить своим элементам имя класса, которое описывает их назначение. Плавает он или нет, не имеет значения в HTML. Вы решаете это в CSS.
Что, если у вас есть имя класса, такое как blue
, а затем ваши клиенты говорят, что теперь мы хотим, чтобы все эти вещи были красными?
Пример
HTML
<ul id="primary-menu">
....
</ul>
CSS
#primary-menu {
float: left;
color: #f00;
}
Комментарии:
1. должны ли мы писать одно и то же свойство снова и снова, когда нам просто нужно написать его один раз?
2. Когда HTML стал слоем данных? Я бы сказал, слой разметки.
3. @Andrey Куда еще отправляются данные?
4. @alex HTML — это не просто данные, это само представление данных (загруженных со стороны сервера или жестко закодированных). Это данные разметка.
5. @Andrew Итак, это данные, помеченные в формате, который может быть обработан браузерами?
Ответ №2:
Я думаю, что первый подход является лучшим. Проблема с использованием таких классов left
заключается в том, что в один прекрасный день left
внезапно потребуется переместить их вправо. Теперь вам также нужно изменить все классы.
Я бы немного изменил первый набор стилей, чтобы читать:
#firstblock,
.genblock { float: left; }
#firstblock { background: #000; }
.genblock { background: #006699; }
Комментарии:
1. Да, это одновременно и преимущество, и недостаток. Это может быть полезно, если вы никогда не хотите, чтобы ваши разработчики HTML-интерфейса касались CSS. Но это недостаток в том, что ваш CSS имеет тенденцию быть немного больше, и вы используете больше отдельных классов в своей разметке.
Ответ №3:
Идеально оставить любые предложения по форматированию вне HTML (лучше первое). firstblock
можно было бы переименовывать sidebar
и genblock
переименовывать content
, например.
Ответ №4:
Это полностью зависит от того, как ваша команда создает и поддерживает HTML и CSS.
Использование буквальных имен классов для определения стилей (.left = float: left) означает, что разработчикам, которые не касаются CSS, проще создавать HTML. Это более доступно для чтения человеком. Недостатком является то, что в конечном итоге вы можете получить множество дополнительных классов, которые в противном случае вам бы не понадобились, если бы вы использовали больше семантических имен классов, основанных на типе содержимого.
Я бы сказал, что небольшие команды должны придерживаться семантических имен классов для более компактной разметки и лучшего разделения контента и стиля. Более крупные команды могут извлечь выгоду из более буквального и подробного использования классов, чтобы упростить долгосрочное обслуживание и создание HTML-кода в управлении.