| 网站首页 | Photoshop资源 | Photoshop学院 | Photoshop展示 | 设计素材 | 设计学院 | 数码学院 | 返回总部 | 
您现在的位置: Photoshop资源站 >> 设计学院 >> 网站设计 >> DivCSS教程 >> 正文
  CSS3新增background-clip及background-origin属性简介         ★★★ 【字体:
CSS3新增background-clip及background-origin属性简介
作者:佚名    教程来源:onegreen.org    点击数:    更新时间:2008-6-20    
  background-clip 和 background-origin 是 CSS3 中新加的 background module 属性,用来确定背景的定位。

  background-clip 用来判断 background 是否包含 border 区域。而 background-origin 用来决定 background-position 计算的参考位置。

  语法为:
   background-clip: [border | padding] [, [border | padding]]* 
   background-origin: [border | padding | content] [, [border | padding | content]]* 


对于 background-clip:

  如果是 padding 值,则 background 忽略 padding边缘,border 是透明的。如果是 border 值,则background 包括 border 区域。如果 background-image 图片有多个,对应的 background-clip 值之间用逗号分隔。

对于 background-origin:

  如果是 padding 值,则 position 相对于 padding 边缘(”0 0″ 为 padding 边缘的左上角,而 “100% 100%” 为右下角)。如果是 border 值,则意味着相对 border 边缘。而 border 值则相对于内容边缘。与 background-clip 相同,多个值也用逗号分隔。如果 background-clip 是 padding 值,background-origin 是 border 值,并且 background-position 是 “top left”(默认初始值),则背景图左上角将会被截取掉部分。

  这两个属性仅从 CSS3 才出现,在未使用该属性 background module 中的默认表现又如何呢?

  background-clip 默认类似于 background-clip:border。
  background-origin 默认类似于 background-origin:padding。 

  但 IE 又是特例 (It sucks)。 
  在 IE6 、IE7 中,一般元素(button 等除外)的背景相当于:background-clip:border; background-origin:border; 
  而 hasLayout 的元素(加上 button 等)的背景则相当于:background-clip:padding; background-origin:padding; 
  这一对 CSS3 属性已在 Mozilla, Safari 3 和 Konqueror 等浏览器中实现,不过都是通过其私有属性的表达方式。

  基本非 IE 的浏览器的私有属性一般都会以 -xxx- 这样开始,-o-就是以 Presto 为引擎的 Opera 私有的、-icab- 是 iCab 私有的,-khtml- 是以 KHTML 为引擎的浏览器(如 Konqueror Safari)、-moz- 就是以 Mozilla 的 Gecko 为引擎的浏览器(如Firefox,Mozilla)、-webkit- 就是以 Webkit 渲染引擎(是 KHTML 的衍生产品)的浏览器(如 Safari、Swift)。

  即支持的私有属性分别为:
  -moz-background-clip 
  -webkit-background-clip 
  -khtml-background-clip 
  -moz-background-origin 
  -webkit-background-origin 
  -khtml-background-origin 
 
  下面举个运用 background-origin 属性的简单例子,效果如下图:


  HTML代码:
<button>这里是按钮,是钮不是妞</button>

  

       CSS代码:

button {
    display:inline-block;/*触发hasLayout*/
    height:26px;
    padding:0 20px;
    cursor:pointer;
    *overflow:visible;/*消除IE按钮左右padding随字数长度变化的BUG*/

    border:3px double #95071b;/*用3px 双边来模拟设计图中的白线*/
    border-right-color:#650513;
    border-bottom-color:#650513;

    background-color:#95071b;

    /*设置背景裁切方式和参考线*/
    -moz-background-clip:padding;
    -webkit-background-clip:padding;
    -khtml-background-clip:padding;

    -moz-background-origin:padding;
    -webkit-background-origin:padding;
    -khtml-background-origin:padding;

    /*向前兼容*/
    background-clip:padding;
    background-origin:padding;

    color:#fff;
    font-size:12px;
    line-height:20px;

    /*修正IE6下高度问题*/
    _padding-top:2px;
    _line-height:14px;
}

 

  不足之处:此效果在 Opera 下无法实现。当然这只是一种对 HTML 代码有洁癖的解决方法(限于对 background-clip 和 background-origin 属性的学习和理解),当然也可尝试其他方法,也许会使 CSS 更简洁,至于各种方法的优缺点由您自己衡量。


教程录入:onegreen    责任编辑:onegreen 
  • 上一篇教程:

  • 下一篇教程: 没有了
  •  
    发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    使用dl,dt,dd制作CSS垂直菜单
    div+css实例分享:非常不错的页面制作方
    滚动条CSS样式集合
    掌握CSS缩写技巧
    Div+CSS教程:如何闭合浮动元素?
    使用CSS的dl、dd、dt制作标准表单
    CSS经验之谈:灵活运用注释带来的益处
    CSS加载方式对页面优化的影响
    CSS经验之谈:保持CSS文件整洁与样式统
    CSS入门指南(CSS布局Web标准必备小结)