LINUX.ORG.RU

CSS-препроцессоры, динамическая линковка?

 , ,


0

1

Итак, в css наследование отсутствует, это я понял.
Но по итогам краткого обзора препроцессоров вроде LESS я сделал вывод, что они меня не спасут, так как не позволяют унаследовать, или примешать чужие правила.
То есть у меня есть например стандартный jquery-ui.css, и в нём есть скажем .ui-state-focus. Я хочу правило этого же .ui-state-focus применить для своего класса, .my-class.
Если я правильно понял LESS и STYLUS, мне так или иначе нужно подгрузить оригинальное правило в свой css-файл, динамическую линковку они не умеют?

И для потрепаться - почему после всех разговоров о семантической вёрстке W3C даже не подумал о семантичности CSS? Ну и заодно почему разработчики препроцессоров не подумали о динамической линковке, неужели я первых захотел использовать и расширять стандартные, чужие стили?

★★★★★

почему … даже не подумал

Сейчас тебе всё станет понятно. Вот смотри:

padding: вертикальный горизонтальный;
border-spacing: горизонтальный вертикальный;

Вот и всё :}

Deleted
()
  1. Берёшь jquery-ui.css,
  2. натравливаешь на него утилиту, которая конвертит в сасс/сцсс/лесс;
  3. наследуешь/примешиваешь,
  4. ??????????????????
  5. PROFIT

после всех разговоров о семантической вёрстке W3C даже не подумал о семантичности CSS

Наверное, потому что семантичность важна для контента, а цсс только за внешний вид отвечает.

Apple-ch ★★
()

В SASS есть @extend. Благодаря ней:

.error {
  border: 1px #f00;
  background-color: #fdd;
}
.seriousError {
  @extend .error;
  border-width: 3px;
}

превращается в

.error, .seriousError {
  border: 1px #f00;
  background-color: #fdd;
}

.seriousError {
  border-width: 3px;
}
noomorph
()

Какой вкусный суп из умных слов.

Kalashnikov ★★★
()
Ответ на: комментарий от noomorph

Отлично. А теперь делаем финт ушами - .error находится в другом файле. Изменять который нежелательно. Дальше что?

Xellos ★★★★★
() автор топика
Ответ на: комментарий от Apple-ch

натравливаешь на него утилиту, которая конвертит в сасс/сцсс/лесс

Я и так могу сделать jquery-ui.less с одной строкой @include «jquery-ui.css». А толку? Он мне всё запихнёт в один файл в результате. Это мягко говоря некрасиво.

Xellos ★★★★★
() автор топика
Ответ на: комментарий от Xellos

А, понял. Наверное, при такой постановке вопроса не подскажу конкретного решения.

Я бы интересующие меня классы завернул бы в миксины и подмешивал по мере необходимости.

При апдейте библиотеки пришлось бы обновлять миксины (кушать кактус). Увы.

noomorph
()

есть некоторые интересные концепции в angular.js

Еще не разбирался с ним, но там как-то интересно решается проблемы изоляции стилей. Рассматривается метафорический пример виджета со своими стилями, не конфликтующими с другими стилями. Он как-бы внедряется и встраивается в любую среду. Дело не в angular собственно, а в современных подходах смешивания стилей, характерных для ряда продвинутых фреймворков. Но так-как это еще draft, то многое помечено как html5, high-experimental.

swwwfactory ★★
()
Последнее исправление: swwwfactory (всего исправлений: 1)
Ответ на: комментарий от Dantix

Угу. Придумавшие динамическую линковку и модульность были идиотами, они не слушали разработчиков CSS-препроцессоров из будущего.

Xellos ★★★★★
() автор топика
Ответ на: комментарий от Xellos

Кажется это такой php для client-side. Не люблю php.

Там, насколько мне известно используются кастомные тэги - главная идея. От них все пляшет.

Но пока это в основном концепт и наверное тормозит. Кстати, less тоже может быть клиентским и разумеется тоже нагружает клиентскую часть.

swwwfactory ★★
()

они умеют статическую. В момент сборки они возьмут кусок того CSS который наследуешь и упихуют в твой

например в LESS:

.чужое_правило { вротмненоги: труе }
.мое_поравило { .чужое_правило }

соберется в

.мое_правило { вротмненоги: труе }

взгляни еще на SASS/SCSS

stevejobs ★★★★☆
()
Ответ на: комментарий от Xellos

Это мягко говоря некрасиво.

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

stevejobs ★★★★☆
()
Ответ на: комментарий от Xellos

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

Dantix ★★
()
Ответ на: комментарий от swwwfactory

Дело не в клиентскости.
Там как я понял главная фича «вы всё можете написать декларативно» - здравствуй XSLT, давно не виделись? На мой взгляд js и хороший шаблонный js-движок представляют собой разумный компромисс между декларативным и императивным веб-программированием.

Xellos ★★★★★
() автор топика

В любом случае в 16 федоре (а у меня промышленная система именно на 16 федоре) нет вообще никакого css-препроцессора. Таскать с собой не хочу.
Проблема пока не настолько большая.

Xellos ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.