【问题标题】:W3 VALID cross browser css gradient,W3 VALID 跨浏览器 css 渐变,
【发布时间】:2011-10-02 10:44:09
【问题描述】:

我正在尝试查找 html 条件语句,以便可以引用所需的附加 .css 文件。 Opera、Ie8、Safari。

我正在使用:

background: -moz-linear-gradient(#ADD58A, #FFFFFF);

对于 Firefox,这很棒。但是拥有其他浏览器 css 属性会导致 W3 css 验证失败!

我相信使用 html 条件语句可以使用有效代码来完成。

在您回复之前,是的,我已经查看了 pie,我在使用 pie 时没有 3 个绿色勾号验证,因此希望使用 html 条件而不是让浏览器“丢弃”样式。

【问题讨论】:

  • 如果您知道自己在做什么,可以打破验证。渐变所需的供应商前缀属性是打破验证无关紧要的完美示例。
  • @thirtydot:在写我的答案时,我把这句话用斜体写在了我脑海中的一个特殊部分……但我最后仍然忽略了它。我想我今天早上心情太暴躁了(!)。

标签: html css safari opera


【解决方案1】:

Jigsaw CSS3 验证器应该有一个选项来触发警告而不是供应商扩展上的错误。假设您没有使用任何其他非标准样式,您的 CSS 应该以绿色通过,尽管有一些警告,但仅此而已。


为什么 Daniel A. White 说不用担心验证,好吧,“W3C 有效的跨浏览器 CSS3”是矛盾的。在 2011 年,您根本无法使用大多数 CSS3 功能实现这样的目标。

是的,请验证您的代码以实现最大的跨浏览器互操作性。但在现实世界中,这仅适用于 CSS2 的东西。当涉及到规范本身尚未最终确定的 CSS3 功能时,更不用说浏览器的实现了(但是它们解释了不完整的规范),有效性还没有意义。如果您忽略大多数现代浏览器的较新(我不会说较旧)版本,border-radius 之类的东西可能会起作用,因为每个主要浏览器的最新版本现在都支持官方属性名称,但世界上没有人实现无扩展任何 CSS 渐变的版本。

您可以告诉他们只在验证器中触发警告,或者如果您太敏感以至于您甚至不想要警告,也许等到明年。希望事情会足够稳定,主流浏览器会放弃 CSS3 渐变的前缀。

【讨论】:

  • HTML 验证也是如此:在过去 10 年(可能再过几年),HTML 的最新最终版本是 HTML 4;大多数浏览器已经有 10 年的时间来尽可能接近该标准。 HTML5 是一个全新的、尚未完成的规范,浏览器现在才刚刚学习实现它。新技术的验证还不是一个真正的问题。
【解决方案2】:

-moz 是 Firefox 的供应商特定前缀。我不会担心 css 验证。

也用这些定义渐变。

  • linear-gradient - 最终标准
  • -o-linear-gradient - 歌剧
  • -webkit-linear-gradient - safari/chrome
  • -ms-linear-gradient - 即

【讨论】:

  • 你为什么说不用担心 css 验证?我认为 W3 对标准很重要。我想我必须为花哨的渐变牺牲。只是真的很惊讶你说不用担心 css 验证。 HTML 验证呢?无论如何,谢谢,打算用这种方式
  • @Renai - 供应商前缀是有效的标记和规范的一部分。然而,验证器将其称为错误。它不是无效的。
  • @Rob:供应商扩展是语法的一部分(正是为什么供应商可以首先使用它们),但就标准(即官方)CSS 标识符而言,它们是无效的。 w3.org/TR/css3-syntax/#vendor-specific
  • @Rob:或者换一种说法:供应商扩展被提议作为一种“标准”方式来指示非标准样式,但它们所附加的属性/选择器名称同样无效方式 fb:like 使 XHTML 无效。
猜你喜欢
  • 1970-01-01
  • 2013-11-12
  • 2011-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多