my.life.logging.Blog

Про Inline CSS-стили, и почему их нельзя использовать

Сегодня со всей очевидностью осознал, наконец, какая же все-таки гадость - эти ваши inline CSS-стили.

И вот до сих пор удивляюсь, как же не понимал такой простой и очевидной вещи раньше!

Озарение случилось после того, как я попытался должным образом переоформить (для соответствия дизайну конкретного приложения) компонент, написанный в рамках Java-фреймворка под дружелюбным названием Google Web Tools. К сожалению, наши дизайнеры все еще думают, что они делают дизайн web-страниц, и не вдомек им, бедненьким, что некоторые умудряются для web программировать точно таким же образом, каким они бы писали свое первое замечательное desktop-приложение (с великолепной возможностью использования inline-стилей, конечно же!), ну, то есть GWT-way рулит естественно! Стоило бы, конечно, с дизайнерами немного поработать в этом плане… Но inline-стили от этого не становятся менее кошмарной субстанцией.

В русскоязычной литературе на данный вывод, видимо, наложено вето, а читать англоязычную литературу про CSS (!!!) мне как-то в голову не приходило в свое время.

В общем, смысл в том, что хотя inline-стили и удобны в плане быстроты верстки (не надо открывать абсолютно другой файл, а потом искать в нем, где же находится нужный стиль, или где бы завести новый), они по сути являются серьезнейшим антипаттерном при разработке web-страниц и, тем более, web-приложений.

Умные люди говорят, что:

1. Inline-стили не изолируют контент от дизайна. Это по сути те же встроенные атрибуты тэгов, дать возможность не использовать которые суть предназначение CSS.

2. Inline-стили - причина большего количества головных болей при поддержке. Ну, просто стоит представить, что будет, если вы вдруг решите избавиться от жирного начертания шрифта для некоторых элементов на своих страницах. Хорошо, если все “font-weight: bold;” описаны у вас в замечательном файлике style.css. Если же это все inline-стили, то остается только пожелать вам удачи!

3. Inline-стили увеличивают размер итоговой страницы.

От себя же добавлю: так как inline CSS-стили по своей природе занимают самое важное место в иерархии стилей, они становятся камнем преткновения при необходимости повторного использования web-компонентов, написанных в рамках современных web-фреймворков (GWT, Apache Wicket, ASP.NET и т.д.). Используемые inline-стили исключают возможность поменять внешний вид компонента без изменения кода самого компонента.

Вот поэтому inline-стили не стоит использовать никогда, нигде, ни при каких условиях и сколько бы вам за это не платили!

Comments