当css属性以破折号开头时,这意味着什么?

时间:2013-04-30 02:57:25

标签: css3 naming-conventions dhtml conventions

我刚从this website下载了一个css文件,它包含-webkit-transform-moz-transform等属性。破折号意味着什么,在什么情况下需要它?

对于nity grity,短语“供应商前缀”是指 - 或 - 和 - (散布 - 和 - )之间的内容或 - 和 - (包括 - 他们自己)之间的内容?

换句话说,供应商前缀是指破折号本身,还是仅仅是短划线或破折号之间的内容以及它们之间的内容?

2 个答案:

答案 0 :(得分:6)

这里的

-webkit--moz-称为vendor prefixes;它们通常表示CSS的浏览器特定功能,或者正在开发/仍然是草案的功能,但不能被视为标准。当“提前”使用这些功能时,在每个浏览器中使用它的唯一方法有时是为每个浏览器提供一个不同的前缀 - 这就是您在项目中看到的内容。这个想法是,最终,该功能将被标准化,浏览器将删除前缀,生活将继续。

例如,

-webkit-gradient是在CSS中定义渐变的第一种方法,但却被完全不同的linear-gradientradial-gradient语法所取代。

一种方便的方法,可以找出哪些浏览器支持某个功能,如果您在明确的标准或全球未加标准的浏览器支持之前使用它,那么您需要的前缀是Can I Use…

一些常见的前缀是:

  • -webkit-适用于基于WebKit的浏览器,包括Chrome / Chromium和Safari
  • -moz- for Firefox
  • -ms-适用于Internet Explorer(9及以上版本)
  • -o-用于Opera(pre-WebKit)

答案 1 :(得分:2)

它们被称为供应商前缀。不同的浏览器有不同的前缀:

  • -webkit- - 基于Webkit的浏览器,如Safari和Chrome
  • -moz- - 基于Gecko的浏览器,如Firefox
  • -ms- Internet Explorer
  • -o-基于Presto的浏览器,如Opera

供应商前缀用于表示实验性CSS功能。当特定属性或规范不被认为是稳定的时候使用它们,并且将来可能会改变。通过使用前缀,浏览器可以试验该功能,而不存在开发人员将使用该属性的风险,并且如果行为或语法发生更改,站点将会中断。一旦规范成为最终版本,前缀将被删除,并且某些浏览器将删除对前缀版本的支持。

W3C的官方指导是,应使用前缀,直到属性或功能所来自的规范达到候选推荐标准。

一般的最佳做法是一个接一个地使用所有供应商前缀,并且不带后缀的版本最后使用。

Mozilla和Chrome(现在他们正在转向Blink引擎)已经改变策略,将功能隐藏在标志后面,而不是使用前缀。这意味着除非用户启用该标志,否则该功能将无法使用。

有关详细信息,请参阅CSS工作组的此Wiki页面:http://wiki.csswg.org/spec/vendor-prefixes