Pull to refresh

Comments 51

Чем-то настораживают меня эти глобальные константы :(, не получилось бы так, что спустя какое-то время их использование станет плохим тоном...
В любом случае спасибо за статью, буду с интересом ждать продолжения.
При том, что на одной странице могут подгружаться несколько css-файлов, действительно могут быть определённые неприянтности с использованием глобальных переменных.
И пока использование глобальных переменных в css не кажется удобноиспользуемым.
Согласен, блин. В CSS И так бордачить можно нехило. А так вообще чёрт ногу сломит.
Объясните в чем выхода. В том, что я в одном месте указываю свойство константе, а потом его вызываю много-много раз?
Позволит менять несколько параметров, и они изменятся во всей реализации.
Ну дык, а кто мещает присвоить элементам один и тот же класс и менять его параметры?
Ну ты забыл что с появлением компьютеров люди начали ломать голову над решением проблем которых раньше и не было?
Здесь похоже такая же ситуация.
на мой взгляд статическое изменение (то о чем было сказано выше) и динамическое изменение (в каждом классе небольшие изменения) спокойно решаются и с помощью наследования - не зря таблица стилей каскадной называется. пока весьма спорны применение этих переменных...
неумеренное применение нескольких классов к одному элементу иногда приводит к ухудшению читабельности кода. Имхо.
Ой спасибо, и ктож это мне карму в минус загнул?? Спасибо большое
UFO just landed and posted this here
константы - это хорошо :)

PS: у вас ошибка в коде (fontcolor: red).. двоеточие пропустили. или без него прожевывается нормально?
нет, без двоеточия не работает :) Просто правила название и пропустила. Спасибо
года через 2-3 только появится не только в WebKit, к сожалению.
долго ждать.. индусы они же не быстрые
Приплюсуйте к этому сроку еще 2-3 года на поддержку старых броузеров.
CSS константы это то чего не хватало. Представьте большой файл темы в котором вы хотите сменить цветовую гамму?
Да ручками в конце концов можно это сделать... но сколько времени и нервов уйдет.
Да и вообще честно говоря не понятно, почему в css не реализованы константы
а так:
общий элемента{параметры}
style1,style2...{параметр бг}
style1,style2...{параметр колор}
?
Я при верстке в первую очередь (как я думаю и многие) объявляю "константы" (ммм, так их называю)...
Скажем так, это не совсем константы.... даже скорее совсем не константы. :)
извините но чем же так радикально они отличаются от "констант" приведенных выше?
грубо говоря это подход для "сегодняшнего дня" когда вместо class="класс1 класс2_подстройка..." мы опираемся на имя_тэга.

Счас еще пишу на js для данных нужд доп модуль как раз под данные нужды но это надстройка не нативная и по этому ведет за собой вполне понятные трудности.
так можно конечно, но лучше не нужно
объявление одного селектора размазывается по всему файлу (если в нём используется несколько констант и что-то своё, уникальное). я бы не хотел потом такой css редактировать ...
константы как раз нужны для того что бы избежать таких решений ...
Любой метод можно извратить как угодно в процессе не правильного (не обдуманного) применения...
где тут извращение?

вы же сами написали:
style1,style2...{параметр бг}
style1,style2...{параметр колор}
очевидно, что это не все свойства селкторов style1 и style2, то есть они ещё дальше будут описаны. вот и получаем каждый селектор уже в 3х разных местах. это удобно?

просто я тоже долго думал как обойти отсутствующие константы в css. ваш метод конечно пробовал. для меня "размазаность" селекторов перебивает все плюсы констант.
вам это не мешает?
просто я к тому, что автор спрашивал "будет ли" и, учитывая, как он это описал, то он не в курсе на счёт calc(). Хотя его да, ещё нет пока что :)
Вы не в курсе, в опере что-то подобное планируется, или может уже есть?
в опере из нового:

@media queries
text-shadow
-o-background-size
opacity
hsl colours
overflow-x & overflow-y
all css selectors
form pseudo-classes

статья тут
UFO just landed and posted this here
но expression - не самое лучшее решение
UFO just landed and posted this here
обычная сss кроссбраузерная верстка
UFO just landed and posted this here
на данный момент их нельзя нигде применить кроме вышеописанного в статье, так что ничего другого не остается, кроме JS еще конечно.
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
Нахрена константы? Посмотрел по ссылке. Достаточно грамотно написать классы и сгруппировать их.

Вот например у нас блок шапки, логотип в ней и ещё пара кусков имеют одинаковую высоту и фон.

И подвал имеет такую же высоту и цвет фона. Задали мы в 5—6 элементах свойство переменной. А потом надо разделить подвал и шапку и снова здорово…
То есть по логике шапку и вложенные элементы надо описывать в одном блоке, а подвал в другом (не зависящем).

Константы удобны только в роботизированных темах, чтобы быстро их менять. И то сгруппировать классы никто не мешает, либо писать классы так: «class="standart alt bigborder"». Пусть будут, но пока не нужны. Появятся когда во всех браузерах, тогда для них возникнут задачи. А пока всё это реализуется через скрипты на стороне сервера.
Допустим у меня на странице используется три цвета шрифта. Причем использование этих цветов хаотично (не задать общий класс). Использование классов типа: big, red, border - фи...
В таких случаях очень подойдет переменная.
я не принял ещё какуюто из сторон, но это уже походит на ламеризацию css, деградирование. также думаю это затруднит отладку чужого кода
UFO just landed and posted this here
Не спорю, не сталкивался. Если есть возможность, найдётся и задача. Но я предпочитаю минимум задач и аскетичное решение.

1. Для шаблонов хорошо, не спорю. В данном случае я напишу в CSS классы через запятую и задам им цвет. А если у нас в одном шаблоне цвет фоновый, а в другом цвет шрифта, то всё равно CSS надо менять. Не вс ли равно, присваивать ли свойству значение константой или добавлять класс к общему правилу? И вообще это вопрос массовки уже. А делать стилизацию массовкой смысла нет. Можно просто делать копию и не париться. Я понимаю, что так например проще покрасить админку в фирменные цвета клиента (один фиг дизайн специально никто делать не будет). Однако можно просто заранее спланировать структуру, выявить наиболее часто повторяющиеся свойства, наиболее редко повторяющиеся. А уж пройтись автозаменой по CSS файлу — невеликий труд (и не сложнее, чем одну переменную заменить).

2. Тут согласен. Математические вычисления в любом случае гораздо удобнее проводить с переменными или константами. Но я не склонен создавать такие зависимости. Предпочитаю вложенность блоков и процентные соотношения, а так же размеры в em/ex — это тоже вычисляемые значения. Конечно таких сложных зависимостей не создашь, но мне и так достаточно. Есть конечно expression для вычислений, но пока валидным не считается.
Идей переменных и констант уже реализована посредством XCSS. Т.е. суть такая что есть файлик с набором переменных для какого то скина и есть XCSS файлик, в котором содержаться маппинги CSS селекторов на скины.
Вот примерно так:

----XCSS file -----
<u:selector name=".rich-fileupload-toolbar-decor">
<u:style name="border-bottom" value="1px solid" />
<u:style name="border-top" value="1px solid" />
<u:style name="border-left" value="1px solid" />
<u:style name="padding" value="2px" />
<u:style name="background-color" skin="additionalBackgroundColor" />
<u:style name="border-bottom-color" skin="tableBorderColor" />
<u:style name="border-top-color" skin="tableBackgroundColor" />
<u:style name="border-left-color" skin="tableBackgroundColor" />
<u:style name="width" value="100%" />
</u:selector>

----Skin file----

tableBackgroundColor=#FFFFFF
tableFooterBackgroundColor=#cccccc
tableSubfooterBackgroundColor=#f1f1f1
tableBorderColor=#C0C0C0
tableBorderWidth=1px

Такой подход юзается в RichFaces для реализации скиннинга.
Тут всё понятно. Но скучно. Интересней если например вручную выбирать основной цвет, к нему на полуавомате пару дополнительных, а всё остальное вычисляется. Вот тогда круто.
CSS константы реализованы в плагине nested css для Ruby on Rails. В двух словах, серверсайд эмулирует то, о чем все так давно мечтали. Да и со вложенностью работа поинтереснее.
Константы, конечно, дело хорошее, но без примитивного ветвления толку от них мало.
По мне удобнее был бы импорт классов. Напр.

.line{width:100%;height:1px}
.red{background:red}

#red_line{import:classes(line red)}
Sign up to leave a comment.

Articles