`
Shmily奕蝶
  • 浏览: 4357 次
  • 性别: Icon_minigender_2
  • 来自: 大理
最近访客 更多访客>>
社区版块
存档分类
最新评论

CSS实战——纯图片圆角Box的实现技巧

阅读更多
全部浮动法

如果一个CSS初学者写图片圆角效果,那么推荐使用全部浮动法,简单且容易上手。其原理就是左圆角左浮动,主体也左浮动,右圆角右浮动,外包div 平铺背景图片。很直观的就实现出图片圆角效果。缺点是之后会需要清除浮动,且因背景图片全部平铺,所以左右俩个圆角必须左右覆盖背景上不能让圆角留白处透明出下方的图片。

HTML代码如下:

<div class="floatMethod">
  <div class="left"></div>
  <div class="middle">全部浮动法</div>
  <div class="right"></div>
</div>

CSS代码如下:

.floatMethod{width:350px; height:32px; background:url('roundBox_middle.gif') left top repeat-x;}
.floatMethod .middle{float:left; line-height:32px; padding:0 0 0 10px;}
.floatMethod .left{float:left; width:6px; height:32px; background:url('roundBox_left.gif') left top no-repeat;}
.floatMethod .right{float:right; width:8px; height:32px; background:url('roundBox_right.gif') left top no-repeat;}>

优点:简单、方便、易上手。
缺点:需要清除浮动、圆角图片留白处不能透明。
原理简析:三个div 一起浮动,左右俩个div 放置圆角,外包div 使用背景平铺。查看demo

左右浮动法

个人认为左右浮动发是全部浮动法的升级版,修复了圆角图片留白处不能透明的缺陷。原理与全部浮动法有些类似,但现在左圆角左浮动,右圆角右浮动,主体直接放后面。主体利用margin 挤压使得俩个圆角留白处可以透明处下面的背景。

HTML代码如下:

<div class="newFloatMethod">
  <div class="left"></div>
  <div class="right"></div>
  <div class="middle">左右浮动法</div>
</div>

CSS代码如下

.newFloatMethod{width:350px; height:32px;}
.newFloatMethod .middle{line-height:32px; margin:0 8px 0 6px; padding:0 0 0 10px; background:url('images/roundBox_middle.gif') left top repeat-x;}
.newFloatMethod .left{float:left; width:6px; height:32px; background:url('images/roundBox_left.gif') left top no-repeat;}
.newFloatMethod .right{float:right; width:8px; height:32px; background:url('images/roundBox_right.gif') left top no-repeat;}

优点:简单、易上手。
缺点:需要清除浮动。
原理简析:左圆角左浮动,右圆角右浮动,主体直接放后面。查看demo

滑动门法

滑动门法是一种比较巧妙的方法,使用一个内嵌标签,外部标签为左圆角,内嵌的标签包含了背景与右圆角。要求切图要按照特定的方式切出,切图的图片同浮动法不同。缺点就是对CSS掌握要求比较高,切图也有特定的要求,且要注意宽度,尽量的让图片足够的长,防止宽度不够图片掉出情况发生。

HTML代码如下:

<div class="slidingDoorMethod">
<div class="inner">滑动门法</div>
</div>

CSS代码如下:

.slidingDoorMethod{width:350px; height:32px; background:url('images/roundBox_left.gif') left top no-repeat;}
.slidingDoorMethod .inner{line-height:32px; margin:0 0 0 6px; padding:0 0 0 10px; background:url('images/roundBox_slidingDoor_right.gif') right top no-repeat;}

优点:代码精简、自由度大。
缺点:CSS要求较高、滑动门切图要求多。
原理简析:使用一个内嵌标签,外部标签为左圆角,内嵌的标签包含了背景与右圆角。查看demo

负Margin法

负Margin 法是我比较喜欢的一种方法,简单合理,开发效率高。主要利用负Margin 技术让俩个div 重叠,“挤”出俩个圆角,实现出图片圆角效果。

HTML代码如下:

<div class="negativeMarginMethod">
  <div class="topLeft"></div>
  <div class="topRight"></div>
  <div class="title">负Margin法</div>
</div>

CSS代码如下:

.negativeMarginMethod{width:350px; height:32px;}
.negativeMarginMethod .topLeft{height:5px; _overflow:hidden; background:url('images/roundBox_negativeMargin.gif') left top no-repeat;}
.negativeMarginMethod .topRight{height:5px; _overflow:hidden; margin:-5px 0 0 5px; background:url('images/roundBox_negativeMargin.gif') right top no-repeat;}
.negativeMarginMethod .title{line-height:28px; padding:0 0 0 15px; background:url('images/roundBox_middle.gif') left top repeat-x;}

优点:简单直接,开发效率高。
缺点:需理解负Margin 用法,特定的切图方式。
原理简析:主要利用负Margin 技术让俩个div 重叠,“挤”出俩个圆角,实现出图片圆角效果。查看demo

负左Margin法

这个负左Margin法是我自己瞎琢磨出来的,代码有点风骚,这里纯粹当做一个新的思路放上来,对IE6似乎有点小缺陷,但只要知道固定宽度也能够兼容。主要原理就是三个div 一起浮动,主体放前面,俩个圆角利用负左margin 让他覆盖到相应的位置。

HTML代码如下:

<div class="negativeMarginLeftMethod">
  <div class="inner">
    <div class="title">负左Margin法</div>
  </div>
  <div class="left"></div>
  <div class="right"></div>
</div>

CSS代码如下:

.negativeMarginLeftMethod{width:350px; height:32px;}
.negativeMarginLeftMethod .left{float:left; width:6px; height:32px; margin:0 0 0 -100%; _margin:0 0 0 -350px;  background:url('images/roundBox_left.gif') left top no-repeat;}
.negativeMarginLeftMethod .right{float:left; width:8px; height:32px; margin:0 0 0 -8px; background:url('images/roundBox_right.gif') left top no-repeat;}
.negativeMarginLeftMethod .inner{float:left; width:100%; line-height:32px; }
.negativeMarginLeftMethod .title{margin:0 8px 0 6px; padding:0 0 0 10px; background:url('images/roundBox_middle.gif') left top repeat-x;}

优点:代码足够风骚。
缺点:代码略臃肿、CSS要求较高、IE6需要知道具体宽度。
原理简析:主要利用负Margin 技术让俩个div 重叠,“挤”出俩个圆角,实现出图片圆角效果。查看demo

上面五种图片圆角实现方式,除了最后一种略微不适合实际中运用外,前面四种都可以很好的兼容各个浏览器且兼顾了一定的开发效率。
分享到:
评论

相关推荐

    CSS高效开发实战——CSS 3、LESS、SASS、Bootstrap、Foundation

    《CSS高效开发实战——CSS 3、LESS、SASS、Bootstrap、Foundation》内容精练、重点突出、实例丰富、讲解通俗,是广大CSS设计人员和前端开发人员必备的参考书,同时也非常适合大中专院校师生学习阅读,也可作为高等...

    网页模板——纯CSS3实现蛇形时间轴特效代码.zip

    在这个“网页模板——纯CSS3实现蛇形时间轴特效代码”压缩包中,包含了一个独特的设计元素,即利用CSS3技术构建的蛇形时间轴。这种特效不仅在信息展示上具有强烈的视觉冲击力,还能有效地组织和引导用户浏览网站内容...

    网页模板——纯CSS3实现齿轮式协同转动动画效果源码.zip

    本压缩包"网页模板——纯CSS3实现齿轮式协同转动动画效果源码.zip"提供了纯CSS3技术实现的齿轮协同转动动画效果,这对于前端开发者来说是一个非常有价值的资源。CSS3作为现代网页设计的核心技术,具有强大的样式控制...

    DIV+CSS教程——第一天XHTML_CSS基础知识

    DIV+CSS教程——第一天XHTML_CSS基础知识

    css图片圆角处理代码

    总之,CSS的`border-radius`属性是实现图片圆角的基础,而JavaScript则可以用来增强效果,实现动态变化或兼容性处理。在实际开发中,结合使用这两种技术,可以创建出富有表现力且功能强大的图片圆角效果。

    纯css半圆角tab标签切换代码

    纯CSS实现的Tab标签切换可以提供更加高效、简洁的交互体验,而无需依赖JavaScript等编程语言。本项目名为“纯css半圆角tab标签切换代码”,它包含了六个HTML文件,每个文件代表一种不同的Tab状态或布局,用于实现...

    网页模板——纯CSS3实现的五点式图片放大镜特效源码.zip

    标题中的“网页模板——纯CSS3实现的五点式图片放大镜特效源码”表明这是一个使用CSS3技术来创建的网页设计元素,具体是图片放大镜效果,而且它以五点式的样式呈现。这种效果常见于电子商务网站,允许用户在不离开...

    网页模板——纯css3实现简单的花环动画特效源码.zip

    标题中的“网页模板——纯css3实现简单的花环动画特效源码”揭示了这个压缩包内容的核心:一个基于CSS3技术的网页动画效果,具体是花环形状的动态展示。CSS3是层叠样式表(Cascading Style Sheets)的第三个版本,它...

    网页模板——纯CSS3实现的物理学活塞运动模拟动画效果源码.zip

    网页模板——纯CSS3实现的物理学活塞运动模拟动画效果源码

    网页模板——纯CSS3实现页面加载后启动蝙蝠侠变身动画.zip

    标题 "网页模板——纯CSS3实现页面加载后启动蝙蝠侠变身动画.zip" 提供了我们正在探讨的主题:一个基于CSS3技术的网页模板,它在页面加载完成后会展示一个蝙蝠侠变身的动画效果。这涉及到Web开发中的前端设计和动画...

    纯css实现更改图片颜色的技巧

    css更改图片颜色的技巧 ,代码很简单...以上所述是小编给大家介绍的纯css实现更改图片颜色的技巧 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对软件开发网网站的支

    用CSS实现无图片圆角效果

    在网页设计中,圆角效果可以为用户界面增添柔和与现代感,但早期的Web设计中,实现圆角通常依赖于图像。随着CSS技术的发展,...现在,你已经具备了用CSS实现无图片圆角效果的知识,可以开始尝试在实际项目中应用了。

    网页模板——纯CSS3实现超逼真的蜡烛烛火动画效果源码.zip

    总的来说,这个“网页模板——纯CSS3实现超逼真的蜡烛烛火动画效果源码”是一个很好的学习和研究案例,它展示了如何仅通过CSS3就能创造出引人入胜的动态视觉效果,对于前端开发者来说具有很高的参考价值。...

    用js实现css3效果的圆角方法

    在CSS3之前,我们通常需要使用图片或者复杂的CSS hack来实现圆角,但这些方法往往效率低下且维护困难。随着CSS3的普及,我们可以直接通过CSS的`border-radius`属性轻松实现圆角效果。然而,有些浏览器可能不支持CSS3...

    《CSS网站布局实战》——实例源码包

    《CSS网站布局实战》这本书是Web开发者们学习和提升CSS布局技能的重要参考资料。该实例源码包包含了书中各个章节的实战示例代码,为读者提供了实际操作和理解CSS布局概念的平台。通过深入研究这些源码,我们可以深入...

    网页模板——纯CSS3实现的直升机牵着木马飞行动画效果源码.zip

    标题中的“网页模板——纯CSS3实现的直升机牵着木马飞行动画效果源码”表明这是一个使用纯CSS3技术创建的网页动画模板,其中包含了直升机和木马飞行的动态效果。这种效果通常用于增强网站的视觉吸引力,尤其是儿童...

    网页模板——纯CSS3实现使用立方体几何模型构建3D文字动画效果源码.zip

    标题中的“网页模板——纯CSS3实现使用立方体几何模型构建3D文字动画效果源码”揭示了这个压缩包文件的主要内容。这是一个基于CSS3技术的网页设计项目,旨在利用立方体几何模型来创建引人注目的3D文字动画效果。在...

    css+div漂亮的圆角tab选项卡

    CSS是美化这些元素的关键,特别是当我们要创建圆角效果时。CSS3引入了`border-radius`属性,允许我们为元素的边框设置圆角。例如,如果我们希望tab标题有10像素的圆角,可以这样写: ```css .tab-title { border-...

    css 图片圆角边框的效果

    在CSS中,实现图片圆角边框的效果是一种常见的设计技巧,尤其在老版本浏览器不支持CSS3圆角边框属性时。本篇文章将详细介绍如何利用CSS结合图片来创建具有圆角边框效果的元素。 首先,我们需要理解CSS的背景属性。`...

Global site tag (gtag.js) - Google Analytics