Есть ли альтернатива CSS?

88

Есть ли альтернатива CSS языку форматирования таблиц стилей? Или CSS - это текущий единый язык для работы с типами форматирования таблиц стилей?

Я просмотрел описание CSS в Википедии ( http://en.wikipedia.org/wiki/Cascading_Style_Sheets ) и несколько других комментариев о CSS и разочаровался в отсутствии полной поддержки CSS в различных механизмах макета, поэтому Мне просто любопытно, есть ли альтернатива, или я должен научиться также использовать фильтры CSS.

Спасибо за любые идеи.

JustADude
источник
10
CSS, если все в порядке *, это IE, который не работает. (* За исключением CWG)
annakata
74
Если бы только была альтернатива ... Я содрогаюсь при мысли о том, сколько человеческих усилий было потрачено впустую, пытаясь сделать в CSS вещи, которые должны быть простыми, но не ...
PeterAllenWebb 02
8
самое забавное, что вам нужно ввести style = "text / css" в тегах, связанных со стилем ... :)
3
Это даже не для программистов. В программировании у вас есть порядок выполнения, изложенный в вашем документе сверху вниз. В CSS этого даже нет. У вас есть множество свойств, которые вслепую доступны и применяются к совершенно другому документу, сложной статической сети строк, которую вы не можете начать анализировать, пока не найдете интерфейс. Вы даже не можете сказать, откуда берутся некоторые эффекты, потому что все происходит в документе вслепую.
GameKyuubi
1
CSS декларативен, потому что Интернет является подвижным (пользователь на гигантском мониторе, ноутбуке, смартфоне или программе чтения с экрана?), Поэтому графические дизайнеры не могут использовать методы, к которым они привыкли, например, в Photoshop, где размер холста находится под их контролем. Точно так же, поскольку разные пользовательские агенты визуализируются по-разному, вы должны сказать: «Вот что я хочу», а не «вот как это сделать», как это сделал бы компьютерный программист. Это не значит, что CSS не может сильно улучшиться и стать более простым в использовании; просто по своей природе он должен отличаться от того, к чему привыкли дизайнеры и программисты.
Canuck

Ответы:

64

CSS - единственный реальный вариант.

Поддержка CSS браузером не должна быть серьезной проблемой (в большинстве случаев) после того, как вы изучите все тонкости CSS. Ключ к пониманию CSS заключается в том, что его цель - определить стиль HTML-документа, и он должен быть отделен от содержимого.

Вам понадобится практика, чтобы научиться корректно ухудшать работу браузеров, не поддерживающих функции. Основная идея здесь состоит в том, что вы должны сделать так, чтобы наименьший общий знаменатель (обычно Internet Explorer) работал «достаточно хорошо», чтобы он не ухудшал пользовательский опыт, и предоставлял тонкости пользователям с лучшими браузерами. Кроме того, не разрабатывайте сначала для Internet Explorer. Оставьте это напоследок, а затем исправьте ошибки. Сделать наоборот (сначала IE) намного сложнее.

У вас также есть возможность использовать JavaScript для установки стилей, но это не рекомендуется, потому что вам следует избегать применения стилей в JavaScript, поскольку JavaScript предназначен для логики, а не для стилей.

На веб-странице есть 3 (в зависимости от того, как вы на это смотрите) компонента:

  • HTML - для содержания
  • CSS - для стилизации вашего контента
  • JavaScript - для применения дополнительной или динамической логики к вашему контенту
Дэн Герберт
источник
19
Ключевой строкой здесь является второе предложение: «Поддержка CSS браузером не должна быть серьезной проблемой (в большинстве случаев), если вы изучите все тонкости CSS». Люди, которые больше всего жалуются на поломку CSS, меньше всего об этом знают.
Роб Аллен,
1
+1: ... за отличный ответ. Предложение сначала кодировать в соответствии со стандартами, а затем исправлять ошибки в грубом движке рендеринга IE - определенно способ сделать это.
Джон Кейдж,
Когда вы хорошо знаете CSS, IE7 на самом деле ведет себя неплохо. @ Роб: слушай, слушай +1.
Райан Флоренс,
1
создание приложения с помощью css - настоящая пытка для разработчика приложений. однако, за исключением Cappuccino.org, было очень мало попыток решить эту очевидную проблему. ходят слухи, что xcode скоро будет создавать html5, и если это произойдет, это положит конец этому хаосу не потому, что xcode - лучший, он поможет другим реализовать SDK для Интернета, а браузеры будут поставляться с компонентами пользовательского интерфейса ( они по-прежнему будут использовать css и html для его отображения, но кого это волнует, мы их не увидим / не будем использовать / знать / изучать)
Деврим,
3
@RobAllen Я говорю то же самое о Malbolge, моем любимом языке программирования. Люди, которые думают, что это невозможно, просто не знают этого достаточно хорошо, чтобы понять, насколько это здорово.
AR
69

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

Даже если CSS3 будет адаптирован для кроссбраузерности, я считаю, что способ размещения материала в CSS (встроенный блок, плавающие элементы, поля и т. Д.) Ужасен. Я программист, но мой отец - графический дизайнер, и я почти уверен, что программное обеспечение для верстки, которое они использовали 20 лет, в некоторых аспектах было проще и продвинутее, чем CSS.

Рольф
источник
9
Совершенно верно! CSS и когнитивный рабочий процесс графического макета не находятся на одном уровне абстракции.
Alex
5
ИМХО, этот ответ настолько
недооценен
13
«Мой отец - издатель и графический дизайнер, и я купался в графическом дизайне с самого раннего возраста, и я осмелюсь сказать, что программное обеспечение для публикации, которое они использовали 20 лет назад, было более продвинутым и удобным для пользователя, чем сегодня HTML / CSS». ... Разница в том, что ваш отец не проектировал для разных размеров экрана, программ чтения с экрана, разных версий браузеров (с разными возможностями) и т. Д. Проектирование для печати намного, намного проще, чем проектирование для отображения на экране, и, следовательно, CSS сложнее, чем языки, предназначенные для размещения печатных СМИ.
J. Taylor
1
Я рекомендовал Postscript как язык и PDF как средство доставки. Меня избили и проголосовали против. Дроиды на SO не любят мнений.
ATL_DEV 07
1
@J Taylor, потеряй его. Создавать дизайн с использованием любого носителя непросто. Это такие же навыки, искусство и наука, как и написание CSS и HTML. Пожалуйста, уважайте искусство. Postscript был разработан для работы с носителями разного размера и существует уже несколько десятилетий. Весь смысл HTML и CSS состоит в том, чтобы заставить веб-браузер отображать то, что Postscript делает по умолчанию. HTML и CSS ужасны!
ATL_DEV 07
43

Да, есть, он называется LESS и действительно решает большинство проблем с читабельностью кода CSS.

Вы можете одновременно скомпилировать его на сервере или на лету на стороне клиента с less.js .

Для производства я рекомендую настроить сценарий сборки, который его компилирует (в NodeJS это кусок пирога с Grunt и grunt-contrib-less ).


Изменить: есть и другие варианты, о которых стоит упомянуть, даже если я использую и рекомендую LESS.

САСС : Ребятам из Ruby это нравится. Это не супернабор CSS, как LESS, а вместо этого используется собственный синтаксис. Чтобы справиться с этим, они разработали SCSS, который является надмножеством CSS и похож на LESS.

Стилус : как и LESS, он написан на javascript, но обычно используется в Node.js. Я не могу поручиться за это, так как я еще не пробовал его, но он очень зрелый, поэтому, если в нем есть функция, которую вы хотите, обязательно сделайте это.

Турбина : эта была написана на PHP. Не большая тяга.

Переключить CSS : возможно, хакеры Python захотят это изучить. Еще меньше тяги.

Если вы чувствуете еще большую альтернативу, есть также CSS Cacheer , CSScaffold , DtCSS , CSSPP и даже что-то от porneL .


Другие вещи, которые вы, возможно, захотите проверить:

Компас : полноценный фреймворк для создания CSS для ребят из Ruby.

WinLESS : компилятор с перетаскиванием LESS для Windows, это супер круто, и вам действительно стоит его попробовать.

МЕНЬШЕ элементы , Preboot , LESSHat и even.less : Библиотеки Mixins и констант для LESS.

Bootstrap : фреймворк, разработанный Twitter. Также по теме: HTML5 Boilerplate .

Normalize.css : альтернатива сбросу CSS . Есть много сбросов, однако, как разработчик одного, я должен сказать: большинство из них - дерьмо. Если вы не собираетесь делать свою собственную, просто воспользуйтесь этой.


Обновление : Начиная с версии 1.4 , LESS @extendтоже. Обязательно используйте 1.4+, если возможно! Думаю, это завершает список причин, по которым стоит выбрать МЕНЬШЕ, а не SASS.

Камило Мартин
источник
26
к сожалению, это не похоже на альтернативу самой модели .
n611x007
1
@naxa, а зачем тебе это нужно? Модель отличная (таблицы стилей), реализация ужасная (CSS). Эти инструменты предназначены только для реализации, поэтому они так популярны.
Камило Мартин
3
Потому что конкуренция способствует прогрессу. Что вы имеете в виду под «таблицами стилей»? Я связываю это с каскадом и отличным файлом / разделом от текста. Но есть еще кое-что, блочная модель, использующая метки и контейнеры, объединенные в текст (с html). Есть ли реализация [в] зависимости? - напр. могут ли таблицы стилей применяться к чему угодно, кроме html / xml? (Что, если вы написали таблицу стилей и хотите применить ее не к тексту, основанному на not-gt / lt, или к двоичному формату? Использовать ли вы какую-либо реализацию таблицы стилей повторно или самостоятельно?)
n611x007
@naxa то, что я имел в виду, было то, что концепция разделения стиля и содержимого - отличная модель, которую я называю «таблицами стилей». Под реализацией я имел в виду синтаксис CSS, но я согласен с тем, что использование LESS вместо CSS аналогично использованию CoffeeScript вместо Javascript. И что ж, существуют двоичные форматы разметки, поэтому я не понимаю, почему у вас не может быть двоичных таблиц стилей, но если подумать, их, вероятно, не найти по этому имени, потому что таблицы стилей решают человеческую проблему (стили написания для многих документов), а не проблема с машиной (иначе мы бы все еще использовали <FONT>теги).
Камило Мартин
4
Я проголосовал против, потому что это препроцессоры, а не альтернативы. Они лежат поверх CSS и выводят CSS в конце. Так что это всего лишь на один уровень абстракции выше, но не альтернатива.
ProblemsOfSumit
17

Да.

Как все говорили, CSS - ваш единственный реальный вариант, но в сети есть еще один язык для «типов форматирования таблиц стилей», называемый eXtensible Stylesheet Language (XSL), в частности подмножество спецификации, которая стала известна как XSL-FO (форматирование объектов) .

В какой-то момент, в зависимости от того, кого вы спрашивали, он был предназначен для конкуренции или сотрудничества с CSS .

Патрик МакЭлхейни
источник
1
W3C дает хорошее резюме взаимосвязи между XSL и CSS: w3.org/Style/CSS-vs-XSL
Патрик МакЭлхани
8

Таблицы стилей сетки (GSS): GSS

лучше

Сэм Адамш
источник
2
SIte больше не существует.
ATL_DEV 07
7

Широко распространенный CSS не получает полной поддержки во всех браузерах ... как (неизвестная) альтернатива может достичь этой цели?

Scoregraphic
источник
3
Имея предсказуемую, интуитивно понятную модель макета, которая устраняет проблемы в новых версиях, вместо того, чтобы оставлять ошибки.
AR
7

Что ж, CSS 2.1 довольно хорошо поддерживается почти всеми браузерами. (кроме IE6) Легко написать изящно деградированный CSS, если вы знаете безопасное подмножество. (Чтобы даже неподдерживающие браузеры не испортили страницу полностью)

См. Http://www.quirksmode.org для советов по совместимости с браузером CSS.

EFraim
источник
4
+1 для quirksmode - об этом должен знать каждый пользователь, начинающий с CSS. Я бы добавил, что IE7 тоже плохо работает с CSS2, и, к сожалению, большая часть Интернета (и почти все корпоративные сети) - это только IE 6 и 7, поэтому с CSS2 нужно быть осторожным.
Кейт
6

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

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

Также есть проект под названием CleverCSS , вы можете попробовать его. Это не альтернатива ему, а просто немного другой способ его определения.

hasen
источник
К сожалению, ссылка мертва .. :-(
Август
4

Я просмотрел описание CSS в Википедии ( http://en.wikipedia.org/wiki/Cascading_Style_Sheets ) и несколько других комментариев о CSS и разочаровался в отсутствии полной поддержки CSS в различных механизмах макета, поэтому Мне просто любопытно, есть ли альтернатива, или я должен научиться также использовать фильтры CSS.

CSS - это стандарт. Альтернативы нет.

Все браузеры поддерживают основные функции CSS. Каждая новая версия каждой из (четырех?) Основных линий браузеров имеет расширенную поддержку стандарта, но веб-сайты, использующие эти функции, будут недоступны для всех пользователей в более ранней версии. На это есть два ответа:

  1. «Изящная деградация» (или ее двойник, «Прогрессивное улучшение» - погуглите), при которой страница использует преимущества расширенных функций, если они доступны, и продолжает работать, если их нет.

  2. Кто ваша аудитория? Если вам посчастливилось знать, что 99,8% посетителей вашего веб-сайта будут использовать как минимум IE7, то вам не нужно беспокоиться о функциях CSS, которые не работают в IE6. Однако это будет зависеть от вашего собственного бизнеса, поэтому сначала проверьте факты.

Худшее, что вы можете сделать, - это кодировать особенности одного конкретного браузера, потому что это приводит к странице, которая не работает не только в других браузерах, но даже в более поздних версиях того же браузера.

Маркус Даунинг
источник
4

Альтернативой давным-давно были таблицы стилей JavaScript (JSSS), технология языка таблиц стилей, предложенная Netscape, если кому интересно, я дам вам несколько ссылок http://en.wikipedia.org/wiki/JavaScript_Style_Sheets

вот предложение http://www.w3.org/Submission/1996/1/WD-jsss-960822 Я думаю, что это была хорошая идея, но, к сожалению, css победил, но, возможно, некоторые части были интегрированы с javascript ??

Также, возможно, вместо использования css вы могли бы использовать svg для некоторых текстовых эффектов, посмотрите примеры
http://msdn.microsoft.com/en-us/ie/hh410107.aspx
и некоторые анимации
http://svg-wow.org/ text-effects / text-effects.xhtml
некоторые эффекты кнопок https://www.svgopen.org/2008/papers/86-Achieve_3D_Effects_with_SVG/
вот более интересный пример стилизации текста, который вы должны посмотреть на этом http: //www.hongkiat .com / блог / масштабируемый-вектор-графика-текст /

Геоморилло
источник
3

Единственная альтернатива - устаревшая поддержка форматирования, которую имеет сам HTML, как и <font>тег. Но ты не хочешь этого делать. 8-)

РичиХиндл
источник
7
Если вы используете <font>, вы также можете испытывать умеренно сильную ненависть со стороны других веб-разработчиков, таких как я: p (По крайней мере, если им придется читать / исправлять ваш код ...)
Свиш
3

Нет, CSS - это то, что нужно. Нет ничего плохого в самом формате (лично мне он очень нравится), скорее, только в его поддержке браузером, особенно в отношении IE. Когда все основные браузеры будут поддерживать CSS3 , все должно быть в порядке, хотя я не слишком оптимистичен по поводу того, когда это произойдет.

Нолдорин
источник
9
Нет ничего плохого в самом формате? Процитируем Джеффа Этвуда: «Короче говоря, CSS нарушает живое дерьмо из принципа DRY. Вы постоянно и неизбежно повторяете себя. (Отсутствие переменных, поэтому мы должны повторять цвета повсюду. Отсутствие вложенности, поэтому мы должны повторять огромные блоки CSS повсюду.) Это тоже мой опыт, вы можете стать хорошим в этом, но это не имеет ничего общего с его достоинствами как язык
Питер
3

На данный момент альтернативы CSS нет, и это хорошо. Производители браузеров, W3C, WHATWG и т. Д. С трудом согласовывают единую спецификацию, как она есть. Можете себе представить, что бы произошло, если бы было больше одной спецификации?

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

Надеюсь это поможет.

Darko Z
источник
12
«На данный момент альтернативы CSS нет, и это хорошая вещь», - позвольте мне не согласиться.
Gandalf
Это Хорошая Вещь в рамках узкой спецификации Гуда, которую обозначил Дарко.
Dom Vinyard
3

Да ! дерзость может быть вариантом

Jaseem
источник
Я удивлен, что у него не так много голосов, учитывая его популярность среди поклонников Ruby on Rails.
BlueRaja - Дэнни Пфлугхофт
2

Нет (в основном)

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

Если вы можете ограничить своих пользователей IE8, Chrome, Safari и Firefox, тогда вы, вероятно, сможете обойтись без CSS2, иначе вам придется изучить все различия с CSS1, а также множество сломанных вещей - особенно в IE5 и 6. .

HTML 3.2 включает некоторые теги форматирования (например, <font>или <center>), но с ними мало что можно сделать.

Почему только в основном? - Если вы можете предположить, что у пользователей есть Flash или Silverlight, и они создают для них веб-приложения. Тогда ваш макет будет идеальным, но для работы потребуется клиентский плагин (который есть не у всех). Я бы пошел по этому пути, только если вам нужен действительно богатый клиентский интерфейс.

Кит
источник
На самом деле, вы можете многое сделать с тегами форматирования HTML 3.2 и табличным макетом. Например, это мой старый сайт (лет 10): itek.at/alt/ganzneu-eng.html
Эрих Китцмюллер
Ваш реальный сайт тоже оформлен с макетной таблицей. вы теряете * доступность, * способность поддерживать, * многие из тех 30% интернет-пользователей с удобными колпачками, * машинную интерпретацию (например, Google) * ...
vikingosegundo
Ничего из того, что вы можете сделать с 3.2, неприемлемо в современной разработке с точки зрения пропускной способности, доступности или обслуживания. Нет никакого смысла в уменьшении масштаба, если оно вам не требуется.
annakata
@ammoQ - да, можете, но это требует времени и требует больших усилий, чтобы измениться. Вернитесь в начало нулевых, и дизайн сайта заключался в том, чтобы нарезать большое изображение и сложить полученную головоломку в виде таблицы. Я сделал много этого, и это не так хорошо по сравнению с современным материалом. Вы можете сделать сайт таким образом, но он будет выглядеть так, как будто последний раз обновлялся в 2002 году.
Кейт
2

Я согласен с тем, что текущее состояние поддержки CSS довольно ужасно.

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

Джон Кейдж
источник
1

Золи прав. "xslt - альтернатива"

XSLT превращает XML в визуализированную веб-страницу, точно так же, как CSS превращает HTML в визуализированную веб-страницу. Просто обратите внимание, что нельзя смешивать XSLT с HTML или CSS с XML.

Я использовал CSS + XSLT для создания визуализированных веб-страниц.

Брайан Куек
источник
0

Adobe Postscript - наиболее вероятная альтернатива CSS. Проблема в том, что для просмотра его на рабочем столе или в Интернете требуется Acrobat. Он намного превосходит CSS и поддерживает замысел дизайна и масштабируется на всех устройствах, включая принтеры, плоттеры, телефоны, планшеты и практически все, что связано с интерпретатором Postscript.

Postscript не требует обучения, если вы не реализуете его для конкретного устройства. Его программируют миллионы программистов, графиков, художников, профессиональных принтеров и даже пользователей домашнего компьютера с самым низким уровнем квалификации. Все, что вам нужно сделать, это выбрать печать или сохранить в меню любого приложения. Оно поддерживает связывание и ввод полей. Это доступно для поиска? Это и документы на основе PS часто появляются на страницах поиска Google.

Хотя его можно просматривать в веб-браузере в виде PDF-файла, это не родной язык браузера, такой как HTML и CSS. Почему нет, если это так просто и мощно? Когда Интернет только зарождался, Adobe была слишком близорука и жадно открывала язык. Они хотели продавать лицензии на свои движки PS и продукты для создания контента. Для Adobe раздача браузера PS была похожа на раздачу Гуся и золотых яиц.

ATL_DEV
источник
-6

xslt - альтернатива

Он более мощный, чем css.

Его сложнее изучить и использовать.

Libeako
источник
4
как XSLT является альтернативой CSS? Они делают совершенно разные вещи.
Mr. Shiny and New 安 宇
Я думаю, они могут встретить XSL-FO, что нормально, но AFAIK не работает в браузере.
Джереми Френч
1
Нет, я не имею в виду XSL-FO, только XSLT. В XSLT вы можете выражать преобразования, поэтому в XSLT вы можете выражать любой вид форматирования, который может быть выражен с помощью HTML. Хорошо, это меньше, чем может делать CSS, но я не сказал, что XSLT - прекрасная альтернатива. Материал XSLT также находится в отдельном файле, например CSS, а из HTML можно ссылаться на файл XSLT. Благодаря этим двум свойствам можно выполнять форматирование своего документа на основе HTML без особой избыточности. XSLT работает в Firefox, IE, другие я не тестировал.
libeako
4
Нет, Золи. Вы не можете выполнять форматирование с помощью XSLT. Вы можете вмешиваться в исходный код, преобразовывать его, добавлять в id, удалять из него и т. Д., Но вы не можете его
стилизовать