Ответ
Плюсы:
- Простота изучения и использования
- Отделение стилей от структуры (HTML)
- Кроссбраузерность (при правильном подходе)
- Возможность каскадного применения стилей
- Поддержка анимаций и переходов
- Медиа-запросы для адаптивного дизайна
Минусы:
- Глобальная область видимости (проблемы с изоляцией стилей)
- Сложность поддержки в больших проектах
- Ограниченная логика (нет переменных, условий в чистом CSS)
- Непредсказуемость каскада (специфичность может вызывать конфликты)
- Разные интерпретации в браузерах (требуются префиксы)
Пример проблемы специфичности:
.button { color: blue; }
#header .button { color: red; } /* Победит этот стиль */ Ответ 18+ 🔞
Да ты послушай, что за дичь творится с этим вашим CSS! Ну, вроде как всё прекрасно, а на деле — пиздец какой-то, если честно.
Плюсы, говоришь? Ну, допустим:
- Выучить его — раз плюнуть, реально. За неделю основы схватишь, и уже можно творить как художник, который вчера узнал, где у кисти острый конец.
- То, что стили от HTML отцепили — это вообще гениально. Раньше же всё в одном файле было, там
font color="red", блядь, — волосы дыбом! Теперь хоть разделили эту кашу. - Ну и да, во всех браузерах вроде как работает. Если, конечно, не забывать эти ебаные вендорные префиксы писать, которые меняются, как перчатки у мартышлюшки.
- Каскадность — мощь! Наследуй, переопределяй, хуярь стили поверх других. Красота!
- Анимашки всякие, переходчики — ну, для глаз приятно, что уж там.
- А эти медиа-запросы, чтобы сайт на телефоне не разъезжался, как дерьмо по волнам... Ну, это святое.
А теперь, сука, минусы! Вот где собака зарыта, аж волосы шевелятся!
- Глобальная область видимости. Это же пиздец, а не фича! Написал класс
.button— и он автоматом на весь проект расползается, как сифилис в порту. Хотел кнопку в шапке стилизовать, а она, блядь, и в подвале покраснела! Изоляция стилей? Да хуй там! Только БЭМ, модули или другие костыли спасают. - В большом проекте поддерживать это — адский труд. Ищешь, откуда у этого блока
margin-left: 15pxвзялся, а он, сука, наследовался от какого-то дедушки-селектора, написанного в 2012 году стажёром Ваней, который уже давно в IT-продажах. - Логики — ноль ебать. Хочу переменную, чтобы цвет основной хранить — так нет же, до недавних пор и близко такого не было! Хочу простенькое условие
if— а хуй там! Всё через костыли, медиа-запросы да селекторы по атрибутам. - Непредсказуемый каскад и специфичность. Вот это, блядь, главная головная боль всех фронтендеров! Смотри, какой пиздец:
.button { color: blue; }
#header .button { color: red; } /* Победит этот стиль, ёпта! */
Написал ты скромный класс .button, думаешь: «Всё, синяя кнопка». А тут какой-то умник в другом файле накатал #header .button — и всё, твоя кнопка уже красная, потому что у ID специфичность, как у слона в посудной лавке! И ищи теперь, сука, кто её перекрасил! В рот меня чих-пых! Чувствуешь, какое волнение ебать?
- И браузеры, эти пидары шерстяные, каждый тянет одеяло на себя! В одном
flexboxработает как в учебнике, в другом нужно-webkit-писать, а в третьем вообще баг какой-то. И сидишь, проверяешь, чтобы везде выглядело одинаково, а по итогу — доверия ебать ноль.
Короче, инструмент он, конечно, мощный, но иногда так бесит, что хочется всё нахуй сломать и писать стили инлайново, прямо в HTML. Но потом вспоминаешь, как это было в 90-е, и понимаешь — терпеть надо. Просто знать, где подводные ебучки, и плавать аккуратнее.