Гэри говорит об этом вежливо; вы совершенно и полностью не смогли угадать ЦЕЛЬ CSS, цель HTML, а также то, как они должны использоваться/работать или почему они вообще существуют.
HTML — это БОЛЬШЕ, чем просто то, как он выглядит на экране.
Речь идет о текстовых дисплеях, печатных и невизуальных пользовательских интерфейсах, таких как программы чтения Брайля, программы чтения с экрана и поисковые системы.
Вот почему HTML предназначен для того, чтобы сказать, что такое вещи структурно, грамматически,
А НЕ ТАК, КАК ВЫ ХОТИТЕ, ЧТОБЫ ВЕЩИ ВЫГЛЯДЕЛИ!!! Если вы выберете ЛЮБУЮ разметку, чтобы указать, как она выглядит, включая классы и идентификаторы, вы можете с тем же успехом вернуться к написанию HTML 3.2 со всей той чушью, которая устарела из него, и устаревшими устаревшими глупыми приемами, такими как столы для раскладки!
Это называется отделением представления от контента, и с его помощью вы можете создавать несколько представлений из ОДНОЙ разметки.
Возьмем, к примеру, недавнюю вещь, которую мы можем сделать, — реализацию переключателя «темного режима». Что вы собираетесь делать, иметь class="gold", который в темном режиме становится черным? class="bgRed" который в итоге становится зеленым? То же самое касается программного обеспечения для создания скинов, такого как форумы.
Возясь с классами, чтобы определить, как все выглядит, вы только что создали мультискин (как на форумах), объявив презентацию в разметке!
Гораздо меньше когда-либо слышали о DRY? Не повторяйтесь? Этот тип методологии не делает ничего, НО повторяется по всей разметке, тогда как вы можете просто указать значение один раз в CSS, а затем сгруппировать его, как селекторы.
Вот как вы в конечном итоге получаете умственные пыхтящие карлики, такие как bootcrap, w3fools "w3.css", попутный ветер и все эти идиотские, тупые, сломанные "фреймворки", которые ругаются на удобство использования, доступность и просто здравый смысл с такого высокого уровня, что вы бы думаю, всемогущий только что вернулся из бочонка и в последнюю минуту должен был появиться, чтобы управлять «Рокфорд Персиками».
Именно его тип мышления приводит к такому трешу:
h1 { background:red; color:gold; }
Код (разметка):
С разметкой, сделанной людьми, которые говорят «семантика, что это такое» и требуют какой-то раздутой идиотской структуры
выполняю работу:
<h1>Hello World</h1>
Код (разметка): хотя да, для этого нам нужно будет написать собственный CSS:
#mainMenu { list-style:none; background:#000; } #mainMenu li { display:inline; } #mainMenu a { padding:0.25em 1em; text-decoration:none; color:#FFF; } #mainMenu a:focus, #mainMenu a:hover { background:#CCC; color:#000; }
Код (разметка): Мы не тратим время на создание класса для каждого проклятого элемента CSS.
Мы можем изменить внешний вид всего этого, даже не прикасаясь к разметке.
Мы можем одновременно запускать несколько скинов/цветов, просто переключая загруженную таблицу стилей или даже состояние чего-то вроде флажка.
Но что еще важнее?
CSS может быть КЭШИРОВАН, а это означает, что в тот момент, когда мы загружаем более одной страницы, использующей один и тот же стиль, мы экономим пропускную способность, поскольку разметка становится меньше!
Смеющиеся — болтуны, настаивающие на презентационных классах и раздутой разметке, — обычно это те же дураки, которые сходят с ума с минификацией, чтобы сэкономить пару байтов в неправильных местах.
МОЖЕТ БЫТЬ, если бы люди перестали тратить 200 КБ разметки, 500 КБ CSS в дюжине файлов и 2 мегабайта скриптов, охватывающих два десятка файлов, чтобы выполнить работу, состоящую из 24 КБ HTML, 48 КБ CSS в ОДНОМ файле и 96 КБ JavaScript, возможно, в двух файлы, они не будут нырять за этими сломанными, недоступными методами, которые разрушают весь механизм, с помощью которого должен работать HTML!
Черт, просто посмотрите на свой собственный пример с
и классами просто так.
поскольку на странице должен быть только один H1, ему даже не НУЖЕН класс.
<ul id="mainMenu"> <li><a href="#">Home</a> <li><a href="#">Home</a> <li><a href="#">Home</a> <li><a href="#">Home</a> </ul>
Код (разметка):
<div class="w3-bar w3-black"> <a href="#" class="w3-bar-item w3-button">Home</a> <a href="#" class="w3-bar-item w3-button">Link 1</a> <a href="#" class="w3-bar-item w3-button">Link 2</a> <a href="#" class="w3-bar-item w3-button">Link 3</a> </div>
Код (разметка): Они НЕ ПРИНАДЛЕЖАТ одному проклятому ФАЙЛУ.
Вот почему тег