`
Shmily奕蝶
  • 浏览: 4373 次
  • 性别: 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实现鼠标经过线条按钮动画特效源码”表明这是一个关于使用CSS3技术设计的网页交互元素,具体来说是线条按钮在鼠标经过时的动态效果。CSS3是层叠样式表(Cascading Style Sheets)的第三...

    网页模板——纯CSS3实现8组超炫酷鼠标滑过图片动画特效源码.zip

    在本资源中,我们拥有一个名为“网页模板——纯CSS3实现8组超炫酷鼠标滑过图片动画特效源码.zip”的压缩包,它包含了利用纯CSS3技术创建的8种不同的图片动画特效。这些特效在鼠标滑过图片时会呈现出炫酷的视觉效果,...

    网页模板——纯CSS3实现融化的雪糕卡通动画效果源码.zip

    标题中的“网页模板——纯CSS3实现融化的雪糕卡通动画效果源码”是指一个使用纯CSS3技术创建的网页设计示例,该示例展示了如何通过CSS3来制作一个融化的雪糕动画效果,使得网页元素具有动态的、引人入胜的视觉表现。...

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

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

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

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

    用CSS实现无图片圆角效果

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

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

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

    网页模板——纯CSS3实现鼠标滑过圆形图片旋转翻盖动画特效源码.zip

    以上是关于“纯CSS3实现鼠标滑过圆形图片旋转翻盖动画特效”涉及的主要CSS3知识点。理解并掌握这些概念,对于创建具有现代感和交互性的网页至关重要。通过实践和探索,你可以进一步优化和定制这种效果,以适应自己的...

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

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

    CSS+JS实现的圆角边框TAB选项卡滑动门代码

    在"CSS+JS实现的圆角边框TAB选项卡滑动门代码"实例中,我们将深入探讨以下关键知识点: 1. **CSS圆角边框**:CSS3的`border-radius`属性用于设置元素边框的圆角半径,允许我们创建不同大小的圆角效果。例如,`...

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

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

Global site tag (gtag.js) - Google Analytics