CSS技巧之圆角背景与三角形
作者:Mr.Think 来源:Mr.Think的博客 发布时间:2010-10-19 12:40:00
前端开发中两个很不错的小技巧, CSS三角形与圆角背景. 的确, 它们都可以通过图片来实现, 但, 抛开用代码实现可以减小图片加载量不说, 当你遇到三角形或圆角背景下还有一层非纯色背景时, 你又不得不考虑IE6 png兼容问题, 嗯, IE6,万恶之源. 此时, CSS三角形及圆角背景将是上佳选择.
查看演示: 点此查看DEMO
CSS圆角背景
通过改变层叠元素的margin值实现圆角效果.当然,有人会说不用这么麻烦,CSS3几句代码就可以搞定,但目前来说不实用,支持的浏览器没几个.
css部分
.r_top, .r_bottom {display:block; background:transparent; font-size:1px}/*左上右上角和左下右下角的容器*/
.r_a, .r_b, .r_c, .r_d {display:block; overflow:hidden}/*四个圆角*/
.r_a, .r_b, .r_c{height:1px}
.r_b, .r_c, .r_d{background:#cf6}
.r_a {margin:0 5px}
.r_b {margin:0 3px; border-width:0 2px}
.r_c {margin:0 2px}
.r_d {height:2px; margin:0 1px}
html部分
<!--左上角/右上角-->
<div class="r_top"><em class="r_a"></em><em class="r_b"></em><em class="r_c"></em><em class="r_d"></em></div>
<div class="box">
.....内容容器.....
</div>
<!--左下角/右下角-->
<div class="r_bottom"><em class="r_d"></em><em class="r_c"></em><em class="r_b"></em><em class="r_a"></em></div>
CSS三角形
这个就比较简单了, 把元素定义成块级0大小(0宽0高0字号0行高)后, 通过改变元素的border-color值实现. 本文用的是em元素, 当然, 如果你项目中用em比较频繁, 为避免冲突也可以用samp,strong等元素.
当然, 即便用CSS实现的三角形, 万恶的IE6还是会给你添点麻烦: IE6不支持border-color的transparent值, 怎么办? 为ie6单独写一个border-color值, 然后用chroma滤镜实现透明, 详见代码
css部分
em{display:block;width:0;height:0;font-size:0;line-height:0;border-width:40px;border-style:solid;border-color:#cf6 #fff #39c #ffc;_filter:chroma(color=#000000)/*色度滤镜,让IE6实现透明borderColor.滤镜的颜色值不可简写*/}
em.a{border-color:transparent transparent #fff transparent;_border-color:#000 #000 #fff #000}
em.b{border-color:transparent transparent transparent #fff;_border-color:#000 #000 #000 #fff}
em.c{border-color:#fff transparent transparent transparent;_border-color:#fff #000 #000 #000}
em.d{border-color:transparent #fff transparent transparent;_border-color:#000 #fff #000 #000}
html调用
<em><em><!--它就是三角形了,哈-->
本文只是CSS实现方法只是众多CSS方法中的一种, 更多的方法, 请自行Google .
猜你喜欢
- 如何只取数据库的前3条记录?怎么控制只取得前3行数据 这要看是什么类型的数据库了,对于Access和SQ
- 现在正在搞三层开发,用ASP和VB6.0,但是现在苦于没有找到合适的方法来调试自己写的DLL文件,效率相当低。 &n
- 本篇文章适合css新手学习,对于已经掌握了css的朋友们也可以通过本片文章来复习知识。作者通过实践,认为在有些情况下css的代码是可以更加简
- 最简单的:<textarea name="A" cols="45" rows="2&
- 前几天因为一个例外,数据库在没有做备份的情况下,直接删除了表记录。事后,又需要查询到删除的记录的内容。因此,在网上软件SS了半天,发现Log
- BOF 指示当前记录位置位于 Recordset 对象的第一个记录之前。EOF 指示当前记录位置位于 Recordset 对象的最后一个记录
- 1、MySQL常用命令create database name; 创建数据库use databasename; 选择数据库drop data
- Asp开发 联通CDMA以下是在开发wap中的随笔,其中一些对于“老鸟”来说,谈不上什么,希望对初学者有所帮助,大家有什么小技巧,欢迎顶上来
- 1、IIS为一个死循的执行过程设定执行时间(缺省为90秒)超时事件:<%response.buffer=true%><BO
- 代码如下:SELECT [StartDate] FROM [dbo].[udf_Week](2012,2012) WHERE [
- Javascript 中的闭包其实很改语言中很难理解的一部分。感谢 Stuart 提供了那么棒的 PPT,它深入浅出的解释了 Javascr
- 这段程序的方法是利用XMLHTTP来读取腾讯网站的相应HTML代码获取QQ的头像,根据这个想法,我们还
- 很多时候,希望能够在 HTML 中使用空格排版。但浏览器在解析 HTML 时,会把连续的空格解析成一个,所以我们会使用
- 采集开始第一步是分析要采集的页面。使用浏览器打开要采集的页面(如:http://sports.sina.com.cn/k/2008-09-1
- 配置Laravel 的邮件服务可以通过 config/mail.php 配置文件进行配置。邮件中的每一项都在配置文件中有单独的配置项,甚至是
- 您可以将SQL Server 数据库引擎升级到 SQL Server 2008。SQL Server 安装程序只需最少的用户干预就可升级 S
- 在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。我前段时间写
- 出现这样的问题是当你浏览UTF-8编码的时候,服务器默认用UTF-8的引擎来输出html,当你用再浏览GB2312的页面时,它还是用UTF-
- 做设计类网址导航的初衷是为了资源整合,也是在尝试解决问题。假定访问用户都是行业人士,或者目地性很强的有一定了解的用户,应该如何考虑这个组织系
- 一般来说,我们判断 iframe 是否加载完成其实与 判断 JavaScript 文件是否加载完成 采用的方法很类似:var&nb