在我们 上次的投票 中,我们询问了
在未来的十年里,CSS 会出现一个严肃的替代方案吗?
在迄今为止超过 9000 票的投票中,大多数人认为不会出现

当然,预测技术的未来几乎是不可能的。尤其是在一个发展如此迅速(并且加速发展)的行业中,预测如此遥远的未来更是如此。但无论如何,以下是我的一些想法。
我将“严肃的替代方案”定义为一项新技术,您可以实际使用它来设计网站(或者在十年后我们称之为交互式互联屏幕的任何东西),并且至少有 25% 的设备能够按照您的预期显示该网站。因此,首先这项新技术是一种语言,它或多或少地解决了 CSS 目前所做的事情,其次,这种新语言被真正的浏览器所采用。
这是一个很高的要求。我想这不会发生。
第一,CSS 已经存在了几十年了。花了这么长时间才使其达到现在的良好状态,并让每个人都达成一致。这种情况可能会加速,但这仅仅是因为相关的主要参与者正在适应这一过程,并且该过程正在改进。一项全新的技术可能会面临 CSS 最初面临的所有相同障碍和缓慢。
第二,尽管 CSS 有其缺点,但它非常好。看看它今天为所有令人惊叹的网站提供支持(提示:几乎所有网站)。要出现一些新东西来解决网络创作的所有复杂细节,并且只需要 10 年时间,这将是一件了不起的事情。现在就必须有正在发生的预览,以便获得适当的反馈,让事情快速发展,以便在 10 年内发生任何事情。
第三,事实上没有任何东西(至少在我的雷达上)甚至在触碰 CSS,这使得某些东西会突然出现并成为竞争者似乎不太可能。
我想 Flash 是最接近的竞争对手,而它正在走向淘汰,而不是进入。
有趣的事情,朋友们,感谢你们参与投票和评论。我想我们这周会发布另一篇哲学风格的文章,它们总是会产生最有趣的评论线程。
此投票以及所有帖子投票的完整实时结果都可以在 投票档案 中找到。
老实说,我认为 CSS 的竞争对手已经存在了。事实上,为了向后兼容性,您将它们编译成 CSS。像 LASS 和 SASS 等工具。就像您可以在后端使用 XML + XSLT 并将其编译成 HTML 一样。
在浏览器端,我们将长期使用 HTML、JavaScript 和 CSS。谷歌试图用 Dart 改变现状,但进展缓慢。人们不喜欢并排实现多个东西,也不喜欢改变。虽然 CSS 将继续存在,但我认为扩展其服务器端使用的工具,并使其通过某种服务器或 javascript 魔法工作,最终将取代它。
哇……即使阅读了我所做的所有关于 CSS、LESS 和 SASS 的帖子和文章,我从未想过“如果 Firefox、IE 等内置了 SASS,我们用它而不是 CSS 会怎么样?”也许我比普通人需要更长的时间才能“理解”;但是,我们不应该将 SASS 视为“学习‘真正’CSS 的懒人替代方案”,而应该将其视为“具有向‘旧’语言‘向后兼容性’的新语言”。对我来说很有用。
坦率地说,从我第一次接触 CSS 开始,几(***)年前在使用 CSS.1 的石器时代,我就摇了摇头说:“这很愚蠢,我不能使用变量。”我的意思是,**每种语言**都有变量!即使在那个时候,我认为它的设计中也有一个巨大的黑洞。似乎在过去的 20 年里,我一直告诉自己“他们会认识到这一点,并在下一个版本中修复它”;因此,SASS 等的出现并不令人意外,因为它修复了一个“明显的漏洞”,这个漏洞对每个人来说都应该是显而易见的!(?)也许有人可以告诉我;但是,当我们需要他们时,工作组在哪里?CSS 标准中仍然没有提到变量?真的吗?
@Chris – 你觉得怎么样?你能否对这件事产生兴趣,甚至利用世界上最大的 CSS 阅读受众的“布道坛”和你所有的关系来解决这个问题?[或者至少做一个教程来解释他们不添加变量的可能理由?我错过了什么?]
我将 PHP 与 CSS 结合使用,并且在向 CSS 添加变量方面取得了巨大的成功。
为什么 Flash 是最接近的竞争对手,它不用于布局。
我想这说明了 CSS 的竞争对手!
Flash 是 CSS 在页面布局方面的一个很好的替代方案。它可以访问、响应、跨浏览器和平台保持一致,并且在字体和自定义图形等方面更容易控制。您可能没有看到它被广泛用于这种方式,但它绝对可以成为处理站点表示层的优雅解决方案。然而,它确实正在走向淘汰,并且不会取代 CSS。
我认为这需要引用一句来自,如果我必须说的话,比伯的话:“永远不要说永远。”
我相信有些人对如何更好地做事有一些非常棒的想法,并且从 CSS 取得的进步中学习,有一个很好的跳板可以跳跃。如果有人能够找到一种更快、更容易的方法来做事,并满足或超过 CSS 的功能,那么为什么不呢?说服人们从 CSS 切换到其他东西需要付出巨大的努力,但我支持进步。
CSS 还有很长的路要走!
我们只达到了 CSS3。我预测 CSS4……CSS9,甚至可能更远。
根据维基百科,CSS 从 99 年开始在实践中使用(第一个规范于 96 年发布),具有讽刺意味的是,IE 5 是第一个完全支持它的浏览器。鉴于它只有 16 岁(难以置信!),所以出现一些新的东西也许并非完全不可能。
自从我们获得 HTML5 以来,它已经过了一段时间,并且它的实现尚未完成。这说明了很多事情。互联网世界确实无法在短时间内彻底改变事物。因此,我认为 CSS 很快不会有强大的竞争对手。如果有人能做到这一点,那将是一个富人。不过需要一些严肃的政治手段。如果微软被谷歌收购……这有可能发生。
CSS 将始终发挥作用,但它最大的威胁在于像素密度的激增以及缺乏基于矢量的解决方案。我看到 SVG 或 Canvas 承担更大的角色,但永远不会完全取代 CSS。
CSS 现在有一些不错的类似矢量的属性,但这些属性很快就会达到极限,并且光栅图像会接管。在那之后,对用户环境做出响应或与元素进行交互变得更加困难。
此外,CSS 中当前的矢量选项就像 Photoshop 中的图层样式。它们很快就变得乏味和陈旧。设计师希望有完整的调色板可以选择,而不是更多预先确定的工具。这是一个可以用基于矢量的语言更好地解决的问题。
Lance,我的朋友,我认为你错过了目标。
SVG 不是 CSS 的竞争对手;您不能用 SVG 替换 CSS,也不应该这样做。让我们忽略 SVG 使用 CSS 进行大量自身样式设置的事实。
网页设计的未来不应该在于 CSS 的某些替代方案,而应该在于 HTML。
现在大多数当前浏览器都原生支持 SVG,更重要的是,实现了<foreignObject>标签,我们终于有了按照应有方式进行设计的工具:SVG 用于布局,HTML 用于内容。
你说得对;Flash 最接近 CSS 的竞争对手,但它基本上已经淘汰了。如果有什么区别的话,CSS/javascript 即将取代它。我记得尝试在 Flash 中制作一个简单的导航栏,我完全迷路了;然后当然可以用 CSS 来实现,它要容易得多!
关键是 CSS 得到广泛支持,在某些不支持的地方,有通过 Javascript/jQuery 提供替代方案的文档,因此 CSS 将继续存在,并且它会不断改进。
然而,仔细想想,虽然我认为 CSS 比 Flash 构建网站要好得多,但我还是要说,它很可能成为下一个 Flash。因为 CSS 在目标选择器和应用过滤器方面非常强大,我可以看到它的一些严重滥用情况。特别是由于 WebKit 中有新的图像过滤器,我认为这类东西可能会滥用 CSS 的功能。
抱歉,我有点跑题了,也可能我错了。无论如何,我喜欢 CSS,并且我认为在未来十年内没有任何东西可以取代它,特别是因为它得到了巨大的支持,所以任何替代方案都会适得其反。
我同意,我认为类似 SASS 的东西会取代它。在那里,你不再链接到 CSS 文件,而是直接链接到 .SCSS 文件,并将其作为可交付成果交付给你的客户。
是的,你是对的。我也有这种感觉。感谢投票结果。
嗨,Chris。我想问一下,你是否可以写一篇博文、邮件等,关于如何在 css-tricks.com 中显示“帖子日期”和评论编号,就像这里一样。
这个行业变化如此之快,以至于如果10年后任何东西都保持不变,我都会感到惊讶。CSS 有很多问题,几乎迫切需要一个更好的解决方案。我设想了一些可以根据需要取消级联/继承的东西(顺便说一下,我最近的一个项目希望拥有这种功能)。
好吧,我认为 CSS 确实是大多数网页设计的主要推动力。LESS 和 SASS 只是为了使 CSS 更简单。我认为没有任何东西可以取代 CSS 当前的功能——除非你重塑了网络。因此,CSS 将一直存在,直到我们的头发变成灰色。
看看新的 Sproutcore 测试版 “Blossom”。他们已经构建了一个完全基于 html5 canvas 的整个 widget 库,完全绕过了 DOM 和 CSS。
至少对于 web 应用程序,我认为在未来 10 年内我们将开始看到越来越多类似的方法。
如果这方面发生任何变化,我认为这将是进化而非革命。
在大多数情况下,我们对 CSS 普遍感到满意,是的,我们都有自己的抱怨,但大多数时候是实现问题(错误、浏览器支持)。
Flash 正在退出 web(Adobe 放弃了移动 Flash,iOS 从未支持过它,IE10 的 Metro 模式也不支持它)。
从我目前看到的来看,只有一件事可能会发生,那就是内置 LESS/SASS 支持。
我投了否,但因为我认为将来 CSS 可能会继续存在,但那些在他们的网站、应用程序等中使用它的人可能甚至不知道他们正在使用名为 CSS 的东西,网格系统的兴起、CMS,人们甚至可能不需要编写一行 CSS,因为这一切都已完成,人们只需要考虑他们希望某个元素如何显示并执行即可。
在第一行输入,应该有一种方法可以编辑这些评论。
希望你们不要误解我的意思,我通常总是对新的工具和方法感到兴奋,但是……我只是认为有些东西不需要被“取代”。
就像上面其他人所说的,如果你想改变任何东西,可以创建像 SASS、LASS 等新工具,甚至为它们做出贡献,使 CSS 更易于实现。
年纪大了并不是被取代的充分理由。毕竟,你会因为新生儿而“取代”你的祖父母吗?
此外,与其他技术不同,CSS 始终在不断改进。几年前,如果有人让你制作一个圆角渐变按钮,你需要在 Ps 或其他软件中绘制它,另存为 PNG,然后将其用作按钮的背景图像。
现在你可以只用简单的 CSS 来做到这一点。更简单、更容易、更快,并且更利于进一步修改。
如今,使用 CSS3 动画,你几乎可以取代网站中的 Flash。是的,我知道这还不够,但谁知道接下来会发生什么。
所以,我认为根本没有必要取代 CSS,但总会有足够的空间来改进它。
看到新的平台和技术总是令人高兴和耳目一新的,但我无法看到 CSS 在大规模上被取代。我认为随着移动技术的巨大发展,将会出现重大发展,但不会出现替代方案。
我同意,我认为我们更有可能看到 CSS 本身添加更多激进的功能,或者生成 CSS 的更复杂的方法。现在我想在所有浏览器中看到供应商重置,几行代码,没有讨厌的意外……
我认为外星科技将占上风。CSS 将成为过去,唯一需要克服的是外星人手的粘性垫。比 Mac 更麻烦!
我们正在思考 CSS 的消亡,这很有趣,因为现在它才刚刚开始 1)成熟(就像提供一些非常酷的功能)和 2)开始(除了供应商前缀混乱之外)享受广泛的标准实现。当然它并不完美,但你真的期望任何竞争对手会完美吗?
此外,SASS、LESS 等……仍然是 CSS 吗?我认为编译代码不算作代码的消亡。
这也很有趣,我看到有人之前评论说 Flash 比 CSS 更麻烦。我经历过相反的情况,来自印刷背景,我第一次成功涉足 web 是 Flash 网站。随着我作为设计师/编码员的发展(双关语),我意识到旧的 Flash 网站是不用花时间学习 html/css 的拐杖……以及当时客户缺乏理解的标志。Flash 虽然令人印象深刻,但它将演示和交互置于内容之上……我认为这不是 web 的本质,我们经常忘记这一点。
我认为没有任何东西会取代 CSS,但我绝对认为应该有东西取代它。从第一天起,CSS 就一直是一场痛苦的闹剧,而且现在仍然如此。
我认为道格拉斯·克罗克福德用这段话总结了整个 CSS 争论
“我发现在使用 CSS 的人群中,他们对 CSS 充满了感情。他们完全投入到 CSS 中,他们爱它。他们无法想象在文档中使用其他任何方法进行格式化。就是这样。这有点像看《警察》的一集,警察进来制止家庭纠纷,然后出现了“CSS 不错,你只是不像我那样理解它。我知道它伤害了我,但我犯了错误,我错了。” CSS 很糟糕,它让我惊叹于人们如何沉迷于它。这就像一旦你弄明白了,就会有点“哦,好吧,我明白了如何让它工作”,然后你从讨厌它转变为爱它,并鄙视任何没有经历过你所经历过的人。对我来说,这毫无意义。”
@Andrea CSS 不是问题。问题一直是浏览器的不兼容性,尤其是 IE。
我不同意,是的,浏览器的不兼容性并没有让任何事情变得更好……但 DOM 的整个概念以及我们用 CSS 样式化其外观的笨拙、烦人的方式完全是错误的、繁琐且不合逻辑的。看看我们所有人对来自 SASS/LESS 的变量和混合感到兴奋,而我们应该做的是放弃整个东西,并完全拥抱 SVG 或 Canvas。
完全同意 jzigbe Internet Explorer 完全是一场噩梦!
我在 Windows 8 的消费者预览版中尝试了版本 10,它仍然存在相同的问题!
胡说八道。如果你写了 有效的代码,可能会有所帮助。
虽然没有 Gunner 那么直白,但我到目前为止只在 IE9 中发现了一个怪癖,那就是在同一个元素上使用渐变和圆角。除此之外,IE9/10 的渲染效果与 FF/Opera/Chrome 一样(Safari 几乎不算数)。
我认为会有的,但 CSS 仍然会占据主导地位。
我认为将来页面样式和行为可能会结合在一起……因为尽管我们称之为“层叠样式表”,但大多数时候它都是关于页面行为的。我认为这将是一个很好的组合。
但是竞争对手?……我不这么认为。
那么,你们觉得AXR项目怎么样?
不错的文章,我发现了很多有用的信息。
CSS 真的很不合理。我们需要由数学家而不是设计师来编写布局管理。