有替代CSS吗?

时间:2009-05-29 11:58:00

标签: css

是否有替代CSS的样式表格式化语言?或者CSS是当前用于制作样式表格式类型的单一语言吗?

我查看了维基百科上的CSS编写(http://en.wikipedia.org/wiki/Cascading_Style_Sheets)和其他一些关于CSS的评论,并对在不同的Layout引擎中缺乏对CSS的完全支持感到气馁,所以我很好奇有一个替代方案,或者我必须学会使用CSS过滤器。

感谢您的任何见解。

23 个答案:

答案 0 :(得分:63)

CSS是唯一真正的选择。

对CSS的浏览器支持不应该是一个主要的问题(在大多数情况下),一旦你学习了ins& CSS的出局。理解CSS的关键是它的目的是定义HTML文档的样式,它应该与内容分开。

您需要练习如何在不支持功能的浏览器中优雅地降低内容。这里的基本思想是,您应该使最低的公分母(通常是Internet Explorer)工作“足够好”,以免影响用户体验,并为具有更好浏览器的用户提供细节。此外,首先不会为Internet Explorer开发。把它留到最后,然后修复它的错误。反过来做事(IE优先)要困难得多。

您还可以选择使用JavaScript来设置样式,但不建议这样做,因为您应该避免在JavaScript中应用样式,因为JavaScript是针对逻辑而不是样式。

网页中有3个(取决于你如何看待)组件:

  • HTML - 内容
  • CSS - 用于样式化内容
  • JavaScript - 用于为您的内容应用其他或动态逻辑

答案 1 :(得分:60)

你们都试图从程序员的角度回答这个问题。我认为原始海报正在寻找一种更加图形友好的替代方案 - 一种可以提供不同概念的海报。

即使CSS3被跨浏览器采用,我相信CSS的布局方式(内联框,浮点数,边距等)也很糟糕。我是一名程序员,但我的父亲是一名平面设计师,我很确定他们使用20年的布局软件在某些方面比CSS更容易和更先进。

答案 2 :(得分:38)

有,它叫做 LESS ,它确实解决了大多数CSS的代码可读性问题。

您可以使用 less.js 在服务器或即时客户端进行编译。

对于制作,我建议设置一个编译它的构建脚本(在NodeJS Gruntgrunt-contrib-less这是小菜一碟。


编辑:还有其他值得一提的选项,即使我正在使用并推荐LESS。

SASS:红宝石人喜欢这个。它不像LESS那样是超集的CSS,而是使用自己的语法。为了解决这个问题,他们开发了SCSS,一个CSS超集,类似于LESS。

Stylus:与LESS一样,它是用javascript编码的,但这通常用于Node.js.我不能保证它,因为我还没有尝试过,但它已经非常成熟,所以如果它有你想要的功能,一定要去做。

Turbine:这个用PHP编码。牵引力不大。

Switch CSS:也许Python黑客会想要研究这个问题。牵引力更小。

如果您感觉更有其他选择,CSS CacheerCSScaffoldDtCSSCSSPP甚至是something porneL


您可能想要查看的其他内容:

Compass:Ruby人员的全面CSS创作框架。

WinLESS:适用于Windows的拖放LESS编译器,它非常酷,你真的应该检查一下。

LESS ElementsPrebootLESSHateven.less:LESS的mixins和常量库。

Bootstrap:由Twitter开发的框架。还相关:HTML5 Boilerplate

Normalize.cssCSS resets的替代方案。然而,有许多重置,作为一个开发者,我不得不说:大多数都是垃圾。如果你不打算自己做,那就用这个吧。


更新Since 1.4,LESS也有@extend。如果可能,请务必使用1.4+!这就完成了我认为选择LESS优于SASS的原因。

答案 3 :(得分:16)

是。

正如其他人所说的那样,CSS是你唯一真正的选择,但在网络上有另一种语言“样式表格式化事物”,称为可扩展样式表语言(XSL),特别是子集被称为XSL-FO (formatting objects)的规范。

在某一时刻,根据您的要求,它的目的是compete or collaborate with CSS

答案 4 :(得分:7)

广泛的CSS并没有得到所有浏览器的全面支持......一个(未知的)替代方案应该如何达到这个目标?

答案 5 :(得分:7)

几乎每个浏览器都支持CSS 2.1。 (IE6除外) 一旦知道安全子集,就可以轻松编写优雅降级的CSS。 (因此,即使不支持的浏览器也不会完全弄乱页面)

有关CSS浏览器兼容性提示,请参阅http://www.quirksmode.org

答案 6 :(得分:6)

  

对于在不同的布局引擎中缺乏对CSS的完全支持感到气馁

我认为jQuery有一些方法可以使css在浏览器之间更加兼容,即如果你使用jQuery指定一些属性,那么它将尝试确保为不支持某些功能的浏览器使用解决方法。 / p>

还有一个名为CleverCSS的项目,您可能想要查看它。它不是它的替代品,只是稍微不同的方式来定义它。

答案 7 :(得分:4)

网格样式表(GSS):GSS

更好的方式

答案 8 :(得分:4)

  

我查看了CSS的编写   维基百科   (http://en.wikipedia.org/wiki/Cascading_Style_Sheets)   关于CSS和CSS的一些其他评论   对缺乏而感到沮丧   完全支持不同的CSS   布局引擎,所以我只是好奇   如果有替代方案或我必须   学习也使用CSS过滤器。

CSS是 标准。别无选择。

所有浏览器都支持基本的CSS功能。每个(四个?)主浏览器行的每个新版本都增加了对标准的支持,但使用这些功能的网站将被破解为早期版本中的任何用户。这有两个答案:

  1. “优雅降级”(或其双胞胎,“渐进式增强” - 谷歌它),其中页面利用高级功能,如果它们可用,而如果他们不是仍然继续工作。

  2. 您的受众群体是谁?如果您足够幸运地知道您网站的99.8%的访问者将至少使用IE7,那么您不必担心IE6中的CSS功能被破坏。这将取决于您自己的业务,因此请先检查事实。

  3. 您可以做的最糟糕的事情是编写单个特定浏览器的怪癖,因为这会导致页面不仅在其他浏览器上崩溃,甚至在同一浏览器的更高版本上也会破坏。

答案 9 :(得分:4)

另一种很久以前的JavaScript Style Sheets(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/scalable-vector-graphics-text/

答案 10 :(得分:4)

答案 11 :(得分:3)

唯一的选择是HTML本身具有的弃用格式支持,例如<font>标记。但你不想这样做。 8 - )

答案 12 :(得分:3)

不,CSS是现在的方式。格式本身没有任何问题(我个人非常喜欢它),而只是浏览器支持它 - 特别是关于IE。一旦我们拥有支持CSS3的所有主要浏览器,事情应该没问题 - 虽然我不会对何时会发生这种情况过于乐观。

答案 13 :(得分:3)

现在没有CSS的替代方案,这是一件好事。浏览器供应商,W3C,WHATWG等有足够的时间同意单个规范,你能想象如果有多个规范会发生什么?

无论如何,我发现一旦你学习了CSS,你就会知道什么是特定的东西会破坏什么,要么学会使用它,要么避免它。

希望这有帮助。

答案 14 :(得分:3)

是的! sass可能是一个选项

答案 15 :(得分:2)

我同意CSS支持的当前状态非常糟糕。

我认为最好的方法是根据the standard编写CSS,然后为各种浏览器不能正确遵守的所有位添加修复程序。如果你这样做,通常值得避免使用一些CSS(例如,z级别在很多浏览器中都支持混合级别)。

答案 16 :(得分:2)

不(大部分)

如果您想创建在最大数量的客户端计算机上工作的布局,那么您将不得不学习CSS。

如果您可以将用户限制为IE8,Chrome,Safari和Firefox,那么您可能可以使用CSS2,否则您将不得不学习CSS1的所有差异,以及无数破碎的东西 - 尤其是IE5和6。

HTML 3.2包含一些格式标记(例如<font><center>),但您无法对其进行太多操作。

为什么只有大部分? - 如果您可以假设用户拥有Flash或Silverlight并为他们构建Web应用程序。然后你的布局将是完美的,但它需要一个客户端插件(并非每个人都有)才能工作。如果你需要真正丰富的客户端UI,我只会走这条路。

答案 17 :(得分:1)

佐利是对的。 “xslt是另类”

XSLT将XML转换为呈现的网页,就像CSS将HTML转换为呈现的网页一样。 请注意,您不能将XSLT与HTML或CSS混合使用。

我已经使用CSS + XSLT来创建渲染的网页。

答案 18 :(得分:0)

据我所知,只有一个。至少对于HTML等。

另见http://www.w3.org/Style/CSS/

答案 19 :(得分:0)

Flutter for web 。它仍处于技术预览中,但您可以查看here

答案 20 :(得分:0)

Elm-uiElm 的一个包,它是一种编译为 HTML/JS/CSS 的函数式语言。

它完全重新思考了我们对布局和风格的思考方式,我认为这样的项目早就应该进行了。

作者 Matthew Griffith 谈到了 Elm-ui here

答案 21 :(得分:-1)

Adob​​e Postscript是CSS最有可能的替代品。问题是它需要Acrobat在桌面或Web上查看它。它远远优于CSS,并且可以保持设计意图并扩展到所有设备,包括打印机,绘图仪,手机,平板电脑以及带有Postscript解释器的任何设备。

Postscript有一个ZERO学习曲线,除非您为特定设备实现它。它由数百万程序员,图形艺术家,艺术家,专业打印机甚至是最低技能的家庭计算机用户编程。您需要做的就是从任何应用程序的菜单中选择打印或保存。它支持链接和字段输入。可以搜索吗?基于PS的文档经常出现在Google的搜索页面中。

虽然可以从Web浏览器以PDF格式查看,但它不是HTML和CSS等本机浏览器语言。为什么不是,如果它如此简单和强大?当网络开始时,Adobe太短视,贪婪地打开了语言。他们希望向他们的PS引擎及其内容创建产品出售许可证。对于Adobe来说,赠送PS浏览器就像放弃了Goose和金蛋一样。

答案 22 :(得分:-6)

xslt是另一种选择

它比css更强大。

学习和使用它更加困难。