2

我是 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;

     }

我不明白为什么在 border-top-left-radius使用 -moz 和 -webkit 前缀提到边界半径之后?不同浏览器的语法是否不同?现在标准化了吗?

4

2 回答 2

8

是的,实验属性的语法可能不同。这完全由供应商决定,因为供应商前缀属性被认为是专有的,而不是标准的一部分。

特别是,Mozilla 将其称为-moz-border-radius-topleft,而不是-moz-border-top-left-radius。您正在查看的代码是错误的(可能是盲目复制和粘贴声明的结果)。

它已经被标准化为border-top-left-radius. 前缀属性仅用于支持旧版本的浏览器。就此而言,不带前缀的属性应该排在最后,以确保浏览器对属性的最佳/最稳定的实现。

于 2012-08-20T06:10:28.750 回答
2

澄清 BoltClock 所说的:浏览器创建者 Microsoft、Google、Mozilla 等决定在其浏览器中实现 HTML 和 css 的哪些部分。大多数公司希望人们使用他们品牌的浏览器,因为这意味着他们可以提供更好的体验或将您引导到他们自己的专有网站,因此已经开发了新的 CSS-tags 或其他有用的开发工具等额外功能,试图在其他浏览器供应商中获得优势。

自从 1990:s 推出第一个浏览器以来,这种情况已经持续了很长时间。网景提供了他们自己的功能,而微软进入游戏的时间很晚,很难跟上步伐。在那个时代,浏览器是否是免费的并不确定,为了打造最好的浏览器付出了很多努力,并且出现了不同的功能。后来,当 W3C 出现并开始对 Web 供应商进行标准化的工作时,缓慢但肯定地开始遵守标准。这项工作仍在进行中,很可能需要持续相当长的一段时间。

coursera上有一个很棒的课程涉及到这个主题。看看这个!

于 2012-08-20T06:24:10.047 回答