Чи існує альтернатива CSS?


88

Чи існує мова форматування таблиці стилів, альтернативна CSS? Або CSS є поточною єдиною мовою для роботи з форматуванням таблиць стилів?

Я подивився на написання CSS у Вікіпедії ( http://en.wikipedia.org/wiki/Cascading_Style_Sheets ) та кілька інших коментарів щодо CSS і засмутився через відсутність повної підтримки CSS у різних механізмах макета, тому Мені просто цікаво, чи є альтернатива, або я повинен навчитися також використовувати фільтри CSS.

Дякуємо за будь-яку інформацію.


10
CSS, якщо все в порядку *, це IE, який не працює. (* CWG виключено)
Аннаката

74
Якби тільки була альтернатива ... Я здригаюся, думаючи про обсяг людських зусиль, які були витрачені даремно, намагаючись зробити щось у CSS, яке повинно бути простим, але не є ...
PeterAllenWebb

8
найцікавіше, що вам потрібно набрати style = "text / css" у тегах, пов'язаних зі стилем ... :)

3
Це навіть не для програмістів. У програмуванні у вас є порядок виконання, викладений зверху вниз у вашому документі. У CSS у вас цього навіть немає. У вас є купа властивостей, до яких сліпо здійснюється доступ і застосовується до зовсім іншого документа, складної, статичної мережі рядків, яку ви не можете почати аналізувати, поки не знайдете інтерфейс. Ви не можете сказати, звідки беруться деякі ефекти, тому що все сліпо каскадується по всьому документу.
GameKyuubi

1
CSS є декларативним, оскільки Інтернет є гнучким (користувач на гігантському моніторі, ноутбуці, смартфоні чи пристрої для читання екрану?), Тому графічні дизайнери не можуть використовувати прийоми, які вони звикли, скажімо, у Photoshop, де розмір полотна знаходиться під їх контролем. Так само, оскільки різні користувацькі агенти відображаються по-різному, ви повинні сказати "Ось те, що я хочу", а не "ось як це зробити", як це робить комп'ютерний програміст. Це не означає, що CSS не може використовувати багато вдосконалень і стає простішим у використанні; просто він повинен відрізнятися за своїм характером від того, до чого звикли як дизайнери, так і кодери.
Канук

Відповіді:


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 насправді поводиться досить добре. @Rob: чути, чути +1.
Райан Флоренс,

1
оформлення програми за допомогою css - справжнє катування для розробника програми. однак, окрім Cappuccino.org, було дуже мало спроб вирішити цю дуже очевидну проблему. ходять чутки, що xcode незабаром випустить html5, якщо це станеться, це покладе край цьому хаосу, не тому, що xcode найкращий, він допоможе іншим впровадити SDK для Інтернету, а браузери поставляться з компонентами інтерфейсу користувача ( вони все одно використовуватимуть css & html для його відображення, але кого це цікавить, ми їх не побачимо / не використаємо / не знаємо / не
вивчимо

3
@RobAllen Я кажу те саме про Malbolge, мою улюблену мову програмування. Люди, які вважають, що це неможливо, просто не знають цього достатньо добре, щоб зрозуміти, наскільки це здорово.
AR

68

Ви, хлопці, намагаєтесь відповісти на питання з точки зору програміста. Я думаю, що оригінальний плакат шукав альтернативу, яка є більш графічною - таку, яка запропонує іншу концепцію.

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


9
Точно! CSS та і когнітивний робочий процес графічного макета не на одному рівні абстракції.
Алекс

5
ІМХО, ця відповідь
занижена

13
"мій батько видавець і графічний дизайнер, і я купався в графічному дизайні з найменшого віку, і я наважусь сказати, що видавниче програмне забезпечення, яким вони користувались 20 років тому, було більш досконалим та зручним для користувачів, ніж HTML / CSS сьогодні". ... Різниця полягає в тому, що ваш батько не розробляв для різних розмірів екрану, зчитувачів екрану, різних версій браузера (з різними можливостями) і т. Д. Проектування для друку набагато, набагато простіше, ніж проектування для відображення на екрані, а отже, CSS є складніші, ніж мови, призначені для розміщення друкованих ЗМІ.
J. Taylor

1
Я рекомендував Postscript як мову, а PDF як транспортний засіб. Мене збили і проголосували в'язким способом. Дроїди на ТО не люблять думок.
ATL_DEV

1
@J Тейлор, втрати це буде тобі. Дизайн з використанням будь-якого носія непростий. Це вміння, мистецтво та наука так само, як написання CSS та HTML. Будь ласка, поважайте мистецтво. Postscript був розроблений для обробки носіїв різного розміру, і він існує десятки років. Вся суть HTML і CSS полягає в тому, щоб змусити веб-браузер відображати те, що робить Postscript за замовчуванням. HTML і CSS жахливі!
ATL_DEV

43

Так , це називається LESS, і воно дійсно вирішує більшість проблем читабельності коду CSS.

Ви можете одночасно скомпілювати його на сервері або на льоту на стороні клієнта з less.js .

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


Редагувати: Є також інші варіанти, про які варто згадати, навіть якщо я використовую та рекомендую МЕНШЕ.

SASS : Рубі люди люблять це. Це не надмножина CSS, така як LESS, а використовує власний синтаксис. Щоб впоратися з цим, вони розробили SCSS, який є суперкомплектом CSS і схожий на LESS.

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

Турбіна : Ця була закодована в PHP. Мало тяги.

Переключіть CSS : Можливо, хакери Python захочуть вивчити це. Ще менше тяги.

Якщо ви відчуваєте ще більшу альтернативу, є також CSS Cacheer , CSScaffold , DtCSS , CSSPP і навіть щось від porneL .


Інші речі, які ви, можливо, захочете перевірити:

Compass : Повна програма для створення CSS для хлопців Ruby.

WinLESS : перетягування МЕНШЕ компілятора для Windows, це надзвичайно круто, і вам справді варто це перевірити.

LESS Elements , Preboot , LESSHat і even.less : Бібліотеки міксинів і констант для LESS.

Bootstrap : Фреймворк, розроблений Twitter. Також пов’язано: HTML5 Boilerplate .

Normalize.css : альтернатива скиданням CSS . Є багато скидів, однак, як розробник одного, я повинен сказати: більшість - це лайно. Якщо ви не збираєтеся робити власні, тоді просто скористайтеся цим.


Оновлення : Починаючи з 1.4 , LESS @extendтеж. Обов’язково використовуйте 1.4+, якщо це можливо! Це завершує причини вибору МЕНШЕ, ніж САС, я думаю.


26
на жаль, це, здається, не є альтернативою самій моделі .
n611x007

1
@naxa і чому ти цього хочеш? Модель чудова (таблиці стилів), реалізація жахлива (CSS). Ці інструменти стосуються лише впровадження, саме тому вони так популярні.
Camilo Martin

3
Оскільки конкуренція сприяє прогресу. Що ви маєте на увазі під "таблицями стилів"? Я пов'язую це з каскадним і відмінним файлом / розділом від тексту. Але є і більше - модель коробки, використовуючи мітки та контейнери, об’єднані в текст (із html). Чи існує залежність реалізації [in]? - напр. чи можна застосовувати таблиці стилів до будь-чого, крім html / xml? (Що робити, якщо ви написали таблицю стилів і хочете застосувати її не до тексту, який не ґрунтується на gt / lt, або до двійкового формату? Ви повторно використовували будь-яку реалізацію таблиці стилів або там самостійно в дикій природі?)
n611x007

@naxa, що я мав на увазі, концепція відокремлення стилю від вмісту є чудовою моделлю, яку я називаю "таблицями стилів". І під реалізацією я мав на увазі синтаксис CSS, але я погоджуюсь, що мати МЕНШЕ замість 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
Patrick McElhaney


7

Широко поширений CSS не отримує повної підтримки у всіх браузерах ... як (невідома) альтернатива повинна досягти цієї мети?


3
Маючи модель макета, яка є передбачуваною, інтуїтивно зрозумілою та виправляє проблеми в нових версіях, а не залишає помилки.
AR

7

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

Поради щодо сумісності браузера CSS див. На веб-сайті http://www.quirksmode.org .


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


6

засмутився через відсутність повної підтримки CSS у різних механізмах макетування

Я думаю, що jQuery має кілька способів зробити css більш сумісним у всіх браузерах, тобто якщо ви вказали деякі атрибути за допомогою jQuery, тоді він спробує переконатися у використанні для браузерів, які не підтримують певні функції.

Існує також проект під назвою CleverCSS , можливо, ви захочете його перевірити. Однак це не є альтернативою, це лише дещо інший спосіб його визначення.


На жаль, посилання мертве .. :-(
серпня

4

Я подивився на написання CSS у Вікіпедії ( http://en.wikipedia.org/wiki/Cascading_Style_Sheets ) та кілька інших коментарів щодо CSS і засмутився через відсутність повної підтримки CSS у різних механізмах макета, тому Мені просто цікаво, чи є альтернатива, або я повинен навчитися також використовувати фільтри CSS.

CSS є стандартом. Альтернативи немає.

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

  1. "Витончена дегрегація" (або її подвійний варіант, "Прогресивне вдосконалення" - пошукайте в Google), в якій сторінка використовує передові функції, якщо вони доступні, і при цьому продовжує працювати, якщо їх немає.

  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-Achieving_3D_Effects_with_SVG/
ось прохолодший приклад для стилізації тексту, який слід переглянути на цьому http: //www.hongkiat .com / blog / масштабована-вектор-графіка-текст /


3

Єдиною альтернативою є застаріла підтримка форматування, яку має сам HTML, наприклад <font>тег. Але ви не хочете цього робити. 8-)


7
Якщо ви використовуєте <font>, ви можете також відчути ненависть з боку інших веб-розробників, таких як я: p (принаймні, якщо їм доведеться прочитати / виправити ваш код ...)
Свіш,

3

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


9
Нічого поганого в самому форматі? Процитувавши Джеффа Етвуда: "Коротше кажучи, CSS порушує живу лайно з принципу СУХОСТІ. Ви постійно і невідворотно повторюєте себе. (Відсутність змінних, тому нам доводиться повторювати кольори всюди. Відсутність вкладеності, тому нам доведеться повторюйте величезні блоки CSS повсюди.) Це теж мій досвід, ви можете це зробити добре, але це не має нічого спільного з його заслугою як мови
Пітер

3

Зараз альтернативи CSS немає, і це хороша річ. Постачальникам браузерів, W3C, WHATWG тощо досить важко домовитись про одну специфікацію, як вона є, чи можете ви уявити, що сталося б, якби було більше однієї специфікації?

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

Сподіваюся, це допомагає.


11
"Зараз немає альтернативи CSS, і це хороша річ.", Благаю розійтись.
Гендальф

Це хороша річ у вузькій специфікації добра, яку Дарко окреслив.
Dom Vinyard

3

Так ! sass може бути варіантом


Я здивований, що у нас немає більше голосів, враховуючи його популярність серед натовпу Ruby on Rails.
BlueRaja - Danny Pflughoeft

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 - так, ти можеш, але це займає деякий час і кобила змінюється. Прокрутіть назад до початку 00-х, і дизайн сайту мав на меті нарізати велике зображення та покласти отриманий лобзик у стіл. Я зробив це багато, і це не так добре в порівнянні з сучасними матеріалами. Ви можете зробити сайт таким чином, але схоже, що він востаннє був оновлений у 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 була подібна до роздачі Гусака та золотих яєць.


-6

xslt є альтернативою

Це потужніше, ніж css.

Навчитись і користуватися ним складніше.


4
як XSLT є альтернативою CSS? Вони роблять абсолютно різні речі.
Містер Блискучий та Новий 安 宇

Я думаю, що вони можуть мати XSL-FO, що добре, але AFAIK не працює в браузері.
Джеремі Френч

1
Ні, я не маю на увазі XSL-FO, просто XSLT. У XSLT ви можете виражати перетворення, тому за допомогою XSLT ви можете виражати будь-яке форматування, яке можна виразити за допомогою HTML. Добре, це менше, ніж CSS, але я не говорив, що XSLT є ідеальною альтернативою. Речі XSLT також знаходяться в окремому файлі, наприклад CSS, і з HTML можна посилатися на файл XSLT. Завдяки цим 2 властивостям можна виконати форматування для свого документа на основі HTML без особливої ​​надмірності. XSLT працює у Firefox, IE, я не тестував інших.
libeako

4
Ні, Золі. Неможливо виконати форматування за допомогою XSLT. Ви можете заважати оригінальному коду, перетворювати його, додавати до ідентифікатора, видаляти з нього тощо., Але ви не можете його створити ...
Габріеле Петріолі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.