CSS3 真是乱七八糟! 4+ 条规则 来制作圆角或添加阴影! 荒谬! 标准在哪里?!
我一直在听到很多这样的说法。 这里确实有点道理。 我们都喜欢标准,毫无疑问,它们对行业来说是一件好事。 看到像 CSS3 这样一堆杂乱/重复的代码,感觉不像标准应该追求的简洁、愉悦的代码。
但事实是这样的。
这些东西的规范还没有完成。 标准的制定速度非常慢。 浏览器供应商知道我们想要这些功能,所以他们不会等待规范,而是使用特定于供应商的 CSS 属性,以便我们现在就可以开始使用/测试它们。 这是好事。 这意味着他们并没有坐在屁股上等待一辆无人控制的慢火车。 当规范最终完成时,他们就可以更快地以标准的方式推出对它的支持。
在我看来,浏览器在没有特定于供应商的前缀的情况下实现新属性会更糟糕,因为这实际上是在放弃标准。
同意^^
同意,它看起来不漂亮,但使用前缀并不难。
特别是像 http://css3please.com/ 这样的网站
非常感谢您向我展示了这个网站。
完全同意。 创建该网站的人一定不明白 -moz、-webkit、filter 和 -ms-filter 的意义。
虽然一遍又一遍地编写这些代码行很痛苦,但从长远来看,忍受它并帮助标准委员会得出最终结论要好得多——然后让他们推动浏览器在所有平台上都以相同的方式支持它们。
同意
Chris,你关于标准前进速度的观点绝对正确。
我宁愿使用一些重复的特定于供应商的 CSS 并使用 CSS3 的酷炫功能,也不愿等待更长时间才能看到它在所有浏览器中完美呈现。
我部分同意。
看看你在 IE8 中提供的那个链接。 它被认为是“现代”浏览器,不是吗? 真是垃圾!
我为一家仅从事医疗领域相关和牙科网站的网络公司工作。 我可以告诉你,在与许多自定义网站客户打交道时,“优雅”降级对他们来说毫无意义。 他们希望它在任何浏览器上看起来都完全一样。
“我在家里的电脑上查看了我的网站。 为什么它看起来好多了/差多了?”
这种事情很典型。 我不是说不要使用它,因为我总是会添加一些东西……通常是阴影。 但是,当客户刚刚花费 6000 美元定制了一个网站,然后他们在办公室使用 IE6(是的,我们平均有 25-30% 的人访问牙科网站的用户使用该浏览器)查看它,然后回家在 FF3.X 或 Safari 中查看它时,他们会感到 WTF? 就会成为一个问题。
我认为这取决于客户。 如果你每次只与一个人打交道,每隔几周处理一个网站,并且知道他们正在使用现代浏览器……你可能没问题。 我大约每两天构建一个自定义网站。 我获得一个 psd 文件,手工编写代码,完成后,然后才与客户沟通。 谁知道我会遇到什么情况。 而且 IE6 经常出现。
CSS3 非常棒。 但试图通过疯狂的修复来解决旧浏览器的兼容性问题,而且时间有限……就不那么棒了。
我在一家为医疗领域构建软件的公司工作,我维护经理使用的内部网站点。
我完全同意你的说法。 大多数查看我们网站的用户都使用 Internet Explorer(通常是 IE 6)。 在设计时,我针对 Internet Explorer 进行设计,但确保它在所有浏览器中都能正常工作。
有趣的是,客户可能会花费 6000 美元定制一个网站,但不愿意切换到一个免费的最新浏览器。
出于好奇,作为一名网页设计师,您是否建议您的客户不仅应该使用当前的浏览器来查看他们自己的网站,还应该用于在网上查找任何性质的信息?
所有人,
不能因为他们的客户使用 IE6 就假设他们是懒惰的笨蛋。 我相信您一定听说过公司被迫坚持使用某个浏览器版本的问题,因为他们可能正在运行数十个旧的、仅在 IE6 上受支持的特定于供应商的应用程序版本。 这些巨大的投资也需要大量的资金和基础设施来进行升级。 因此,当会计员简抱怨没有良好的 Facebook 体验时,EUS 团队会告诉她“去死”,除非她能拿出 50 万美元来升级企业应用程序。
关于“客户”的问题是这样的。
您有一个客户(一个人),而他又有许多客户(可能是 10,000 个客户)。
如果我有一家企业,通过人们访问我的网站赚钱,而 10% 的用户群使用 IE6……我不想听到某个书呆子跟我说我应该使用现代浏览器。 我希望他花更多时间在 Photoshop 中裁剪背景图像,让我的网站在跨浏览器上看起来很漂亮。
CSS3 非常棒,它是向前迈出的一大步。 而且,在 5 年后,当它成为真正的(可用的标准)时,我们将会真正获得收益。
在此期间,它需要根据每个应用程序/每个客户来决定。 如果您对网站收取溢价,则应实现真正的浏览器兼容性……而不是“优雅降级”。
Chris 说得好,
非常同意。 我以前从未从浏览器供应商的角度考虑过这个问题,关于他们实际上是如何通过让他们访问需要花费很长时间才能获得的酷炫功能来帮助设计师的。 所以是的,也要向他们致敬。
谢谢!
如果要在尚未成为标准的 CSS 和特定于供应商的 CSS 之间做出选择,我会选择特定于供应商的 CSS。 但我更希望同时实现两者,并希望特定于供应商的 CSS 能够覆盖标准的情况。 我认为……
一旦标准成为真正的标准,供应商升级浏览器后,特定于供应商的语法会发生什么情况? 如果我们都包含了我们认为将成为标准的回退,而该标准发生了变化,那么会发生什么情况?
我可以预见到一个比 IE5.5 和 IE6 更糟糕的混乱局面。 更不用说花费数小时更新我们在网络上发布的所有代码了。
当供应商更新其浏览器以支持官方标准时,他们将停止对带前缀的版本的支持。 因此,只需将两者都放在您的样式表中。 未识别的属性将被忽略,因此保留 -webkit-border-radius 或其他内容不会造成任何伤害(除了在技术上使您的样式表无效)。
HTML5 和/或 CSS3 的规范今年完成的可能性有多大? 拥有这些——以及 WordPress 3!(4 月?)——在 2010 年发布,真是太整洁了。
我认为 W3C 正在考虑 2022 年……
2022 年将会有两个 100% 的实现出现在现实世界中,而 CSS2(或我认为的 HTML4)中不存在这样的情况……所以这有点分散注意力。
http://wiki.whatwg.org/wiki/FAQ#When_will_HTML5_be_finished.3F
Jeremy Carlson 确实提出了一个有趣的问题。
以下是如何解决此问题。
您需要解释优雅降级。 您告诉他们功能是完全相同的。 它在较新的浏览器上只是看起来更好/具有更多功能。 如果他们希望它在过时、不稳定和不安全的浏览器上看起来“完全相同”,那么他们需要支付更多费用,因为这样做需要花费更多的时间和精力。
一旦你开始谈论“看起来一样”这个荒谬的概念如何影响利润,大多数经理和客户都会做出正确的选择并进行升级。在我的工作中,我的经理们已经同意了这一点,在我的自由职业工作中,我确实会收取额外的IE6支持费用。所以向他们解释这一点。你会很高兴你这么做的。
虽然我同意Chris的观点,但我认为这种没有标准的做法也相当危险。供应商可能永远不会更新到标准(微软),然后我们就面临着支持六个不同浏览器版本的问题。现在每个人都在抱怨IE6,但我相信你们中的一些人还记得支持IE 4-6版、MAC IE 5和5.5版、Netscape任意版本,同时试图为Safari和Firefox等现代浏览器实施最佳实践和Web标准的那些糟糕的旧时光。
双刃剑,有人吗?
标准的最终规范需要与技术发展保持同步才能发挥作用。如果规范在完成时就已经过时,那么它们就没有益处。
这个论点适用于所有类型的规范。在开发Web应用程序时,您需要快速有效地创建规范。如果花费的时间太长,您的规范就会过时,并且适用于旧技术。
在当今时代,令人震惊的是,很少有资源被用于快速有效地创建一组标准规范。在网络领域竞争的公司面临着数十亿美元的风险。从这个角度来看,我们目前的流程就是一个笑话。
asd
没错!在W3C将它从工作草案移除到关闭-完成之前。它真的悬而未决。我想知道有多少读者,甚至你是否读过规范?
http://www.css3.info/ 是学习新的CSS3添加语法的一个极好的资源。
显然,所有浏览器都支持这些功能,为什么不都识别单个CSS声明呢?
从这些演示中,我更喜欢“四号”,因为它们在切换标签时不会像其他演示那样滚动我的窗口,而且我认为在评分时可能会考虑到这一点。
可用性优先于语义和干净的标记……也许……只有在需要的时候。
可用性* 我的错误。
有人可以解释一下供应商特定的CSS是什么意思吗?这是否意味着,比如说Firefox,暂时有自己的CSS3协议,直到建立明确的CSS3标准?
我还没有真正这样想过。不过,这确实说得通。我一直认为,如果mozilla、webkit等都使用建议的标准会更好:例如box-shadow,而不是他们的浏览器扩展。
真正困扰我的不是box-shadow本身,而是例如应用底部左侧border-radius的不同方式。
我相信webkit与建议的标准相同,前面带有-webkit浏览器扩展指示符,但mozilla确实做了一些奇怪的事情。
如果我错了请纠正我。当然,我可能搞反了。
我只想感谢Chris提供了如此棒的资源。我整晚都在谷歌上搜索一些高级CSS表单。这是我的新W3C学校:) 甚至你的评论字段也很酷!
这是一篇很棒的文章。正如人们所讨论的那样,它确实有两个巨大的方面。我个人厌倦了使用供应商特定的CSS属性来使所有浏览器中的外观都相同。
在我的工作中,我必须确保作为标准,设计的网站在从IE6到Firefox和Mozilla的每个浏览器中都具有相同的外观。在尝试一些花哨的CSS时,这是一个大问题,因此我倾向于为阴影等设置背景图像,并且只对可以作为图像用于SEO目的的文本使用阴影。
当您需要构建符合SEO标准的网站并确保获得W3C的绿色方块时,有时使用不受支持的CSS3技术可能比需要的工作量更大。
一旦某些CSS3有了标准,我就会开始使用它,但在此之前,我将继续像现在这样。这很可惜,因为H1标签等的阴影看起来很棒。
我想指出,Opera(|| Presto)已经开始删除其前缀(-o-)。
现在至少对于border-radius来说,它可以在没有前缀的情况下工作。
我还没有检查所有属性。我也不会计划这样做,因为我不打算使用所有新的CSS3属性。(我看到任何使用text-shadow的网站都会感到眼花缭乱)
现在我正在思考……webkit也正在删除其前缀。至少在Google Chrome中,我可以检查哪些属性正在使用而无需测试。
因此,对于边框,您现在只需要-moz-和默认值,假设所有用户(除了IE用户)都是定期更新的。
感谢上帝-就像表达一样,我不是一个宗教人士-因为这真是太棒了,试着为3个不同的角设置边框半径,并使用4个不同的浏览器特性 :-p
为什么浏览器制造商不能仅仅以增量方式更新他们的浏览器,而不使用所有.x.x编号呢?我的意思是,为什么例如Fire Fox不能在后台持续更新,以便每个使用它的人都始终使用相同的版本,IE也是如此?如果微软继续更新IE6而不是发布新版本,那会不会解决很多问题?最终用户甚至不会知道他们在使用不同的版本,因为新版本仍然是相同的名称,只是添加了功能。即使在自动更新期间整个代码都被替换了,用户也不会知道。我想说的是,为什么不把更新软件的责任留给浏览器用户呢?
浏览器不像网站,用户仍然需要下载新的.exe文件,版本使升级更加明显和吸引人。
但是,如果要像系统更新一样工作,所有操作都将在后台进行。一个简单的警报框,内容为“您的浏览器有更新,您是否要安装?”将很容易。
比为圆角和阴影使用数十亿个div更好,因此当实际规范完成时,您只需更新样式表(如果您使用标准,则无需更改任何内联样式)。