我是HTML5和CSS3的新手。我刚看到一些CSS3代码如下:
.box
{
border-top-left-radius:5px;
-webkit-border-bottom-left-radius:5px;
-moz-border-top-left-radius:5px;
border:1px solid #8e8e8e;
background-color:white;
height:16px;
padding:4px;
padding-left:28px;
padding-right:10px;
color:#4a4a4a;
float:left;
}
在使用-moz和-webkit前缀提及border-top-left-radius
边界半径后,我无法理解为什么?不同浏览器的语法是否不同?它现在正在标准化吗?
答案 0 :(得分:8)
是的,语法可能与实验属性不同。这完全由供应商决定,因为供应商前缀属性被认为是专有的,而不是标准的一部分。
特别是,Mozilla称之为-moz-border-radius-topleft
,而不是-moz-border-top-left-radius
。您正在查看的代码是错误的(可能是盲目复制和粘贴声明的结果)。
此后已将其标准化为border-top-left-radius
。前缀属性仅用于支持旧版本的浏览器。就此而言,无前缀的属性应该是最后的,以确保浏览器的最佳/最稳定的属性实现。
答案 1 :(得分:2)
澄清BoltClock所说的内容:浏览器创建者Microsoft,Google,Mozilla等决定在他们的浏览器中实现HTML和CSS的哪些部分。大多数公司希望人们使用他们的浏览器品牌,因为这意味着他们可以提供更好的体验或指导您到他们自己的专有网站。因此,已经开发了额外的功能,如新的CSS标签或其他有用的开发工具在其他浏览器供应商处获得优势。
自从1990年推出第一个浏览器以来,这已经持续了很长时间。 Netscape提供了自己的功能,而且微软在游戏中遇到了困难,并且很难快速上手。在那些时候,不确定浏览器是免费的,并且在制作最好的浏览器方面付出了很多努力,并且出现了不同的功能。后来当W3C进入画面并开始慢慢标准化网络供应商的工作但肯定开始遵守标准。这项工作仍在进行中,很可能需要持续一段时间。
有coursera的精彩课程涉及这个课题。看看吧!