搜索

查看: 3101|回复: 11

[CSS/HTML] CSS 使用Sprites技术实现圆角效果

[复制链接]
发表于 2023-5-4 16:52:19 | 显示全部楼层 |阅读模式
Editor 2023-5-4 16:52:19 3101 11 看全部
首先来简单说一下什么是Sprites,Sprites是一种网页图片应用处理方式。它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图片就不会像以前那样一幅一幅地慢慢显示出来了。对于当前网络流行的速度而言,不高于200KB的单张图片的所需载入时间基本是差不多的,所以无需顾忌这个问题。
第一步:创建我们的 Sprite

用PS等工具合成如图所示的图片(以一个像素的红线来区分)

201642792945617.gif

201642792945617.gif


第二步:编写HTML代码
首先,我们会给容器 div 一个 .roundedBox类 :
[U]复制代码[/U] 代码如下:


现在,我们必须再增加四个div ,这会在将来创建圆角的时候用到。之后必须给每个加载一个类 .corner,同时也标识一个类来指定它们格子的位置。
[U]复制代码[/U] 代码如下:

    My content in roundedBox Type 1
   
   
   
   


第三步:编写CSS样式
绝对定位元素通常都依照相对定位的父元素进行定位。如果这个父元素无法界定,那么它会去最近作相对定位的那个父元素,直至 body 标签。
让我们先来定义下所有的圆角
所有的圆角都必须定义绝对定位,并且注明高度跟宽度。 我的圆角定义的宽度跟高度都是 17px.

201642792955349.gif

201642792955349.gif


[U]复制代码[/U] 代码如下:
.corner{position:absolute;width:17px;height:17px;}

现在开始定义 div 容器样式:
[U]复制代码[/U] 代码如下:
.roundedBox {position:relative;}

任何定义有类 .roundedBox 的元素内,绝对定位元素都会相对于这个元素进行定位,而不是标签 body。 我们也必须设置一些padding值,如果没有设置,圆角将会覆盖我们的文本,这肯定不是我们想要的效果。 重要提示: top 和 bottom padding 值必须 等价于圆角的 height。left 和 right padding 值必须等价于圆角的宽度。 正如您已经知道的,我的圆角宽度跟高度是相等的,因此,四个边角的padding 值也是相等的:
[U]复制代码[/U] 代码如下:
.roundedBox {position:relative; padding:17px; margin:10px 0;}

让我们对没有圆角作单独定义
我们会对每个圆角作绝对定位设置,并且定位背景图的位置 (根据我们的 sprite):
[U]复制代码[/U] 代码如下:
.roundedBox {position:relative; padding:17px; margin:10px 0;}
.corner {position:absolute; width:17px; height:17px;}
.topLeft {top:0; left:0; background-position:-1px -1px;}
.topRight {top:0; right:0; background-position:-19px -1px;}
.bottomLeft {bottom:0; left:0; background-position:-1px -19px;}
.bottomRight {bottom:0; right:0; background-position:-19px -19px;}

最后,给 #type1 匹配一个背景色,使之融合于 sprite 中的圆角:
[U]复制代码[/U] 代码如下:
#type1 {background-color:#CCDEDE;}
#type1 .corner {background-image:url(../image/corners.gif);}

全部的代码:
[U]复制代码[/U] 代码如下:




无标题文档

.roundedBox {position:relative; padding:17px; margin:10px 0;}
.corner {position:absolute; width:17px; height:17px;}
.topLeft {top:0; left:0; background-position:-1px -1px;}
.topRight {top:0; right:0; background-position:-19px -1px;}
.bottomLeft {bottom:0; left:0; background-position:-1px -19px;}
.bottomRight {bottom:0; right:0; background-position:-19px -19px;}
#type1 {background-color:#CCDEDE;}
#type1 .corner {background-image:url(../image/corners.gif);}




    My content in roundedBox Type 1
   
   
   
   

回复

使用道具 举报

发表于 2023-6-28 20:53:56 | 显示全部楼层
123456809 2023-6-28 20:53:56 看全部
感谢楼主的无私分享!要想知鸟论坛好 就靠你我他
回复

使用道具 举报

发表于 2023-6-29 19:26:10 | 显示全部楼层
掌舵的鱼1987 2023-6-29 19:26:10 看全部
楼主发贴辛苦了,谢谢楼主分享!我觉得知鸟论坛是注册对了!
回复

使用道具 举报

发表于 2023-6-29 21:20:54 | 显示全部楼层
井底燕雀傥 2023-6-29 21:20:54 看全部
感谢楼主的无私分享!要想知鸟论坛好 就靠你我他
回复

使用道具 举报

发表于 2023-6-29 21:58:35 | 显示全部楼层
我的苦恼冉 2023-6-29 21:58:35 看全部
这东西我收了!谢谢楼主!知鸟论坛真好!
回复

使用道具 举报

发表于 2023-6-30 09:16:13 | 显示全部楼层
当当当当裤裆坦 2023-6-30 09:16:13 看全部
这东西我收了!谢谢楼主!知鸟论坛真好!
回复

使用道具 举报

发表于 2023-6-30 09:35:08 | 显示全部楼层
幸福341 2023-6-30 09:35:08 看全部
其实我一直觉得楼主的品味不错!呵呵!知鸟论坛太棒了!
回复

使用道具 举报

发表于 2023-7-1 02:10:08 | 显示全部楼层
落败的青春阳落s 2023-7-1 02:10:08 看全部
楼主,大恩不言谢了!知鸟论坛是最棒的!
回复

使用道具 举报

发表于 2023-7-3 11:24:49 | 显示全部楼层
无人岛屿颈 2023-7-3 11:24:49 看全部
楼主,大恩不言谢了!知鸟论坛是最棒的!
回复

使用道具 举报

发表于 2023-7-3 17:31:39 | 显示全部楼层
哈哈SE7 2023-7-3 17:31:39 看全部
楼主太厉害了!楼主,I*老*虎*U!我觉得知鸟论坛真是个好地方!
回复

使用道具 举报

  • 您可能感兴趣
点击右侧快捷回复 【请勿灌水】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 返回列表

RSS订阅| SiteMap| 小黑屋| 知鸟论坛
联系邮箱E-mail:zniao@foxmail.com
快速回复 返回顶部 返回列表