纯CSS实现的大小渐变、渐远效果


Posted in HTML / CSS onApril 15, 2014

效果图:

纯CSS实现的大小渐变、渐远效果

效果差不多也就是上图的这个样子,基本原理如图所示:

纯CSS实现的大小渐变、渐远效果

将所有的盒子都绝对定位,然后将宽高各50%的递缩小,并且在top、right、bottom和left针对性的偏移即可,代码如下:

复制代码
代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CSS to achieve the visual effect and further away[既是安安]</title>
<link rel="stylesheet" rev="stylesheet" type="text/css" href="http://www.jsann.com/framework/reset.css" />
<style type="text/css">
div
{
background-color:#a40000;
position:absolute;
}
div.main
{
width:100px;
height:100px;
top:50%;
left:50%;
}
div.main div
{
width:50%;
height:50%;
}
div.main div div div div
{
overflow:hidden;/* 为了兼容IE6 */
}
div.main div.left-top,div.main div.left-top div
{
top:-50%;
left:-50%;
}
div.main div.right-top,div.main div.right-top div
{
top:-50%;
right:-50%;
}
div.main div.left-bottom,div.main div.left-bottom div
{
left:-50%;
bottom:-50%;
}
div.main div.right-bottom,div.main div.right-bottom div
{
right:-50%;
bottom:-50%;
}
</style>
</head>
<body>
<div class="main">
<div class="left-top"><div><div><div></div></div></div></div>
<div class="right-top"><div><div><div></div></div></div></div>
<div class="left-bottom"><div><div><div></div></div></div></div>
<div class="right-bottom"><div><div><div></div></div></div></div>
</div>
</body>
</html>

这个方法在IE6下有一个BUG,就是最后的一个盒子的高度不能小于6px,原因就是:
大家都知道IE6下默认的字体尺寸大致在 12 - 14px 之间,当你试图定义一个高度小于这个默认值的 div 的时候, IE 会固执的认为这个层的高度不应该小于字体的行高。所以即使你用 height: 6px; 来定义了一个 div 的高度,实际在 IE 下显示的仍然是一个 12px 左右高度的层。另一方面,除了中间的那个盒子,其他的盒子都是在其基础之上偏移而来。也就是说,最多的,我们可以给最后的那个div加上overflow:hidden;(因为我们给任何一个div加上overflow:hidden;之后,它将不在会有子级偏移出来)这样的话最后的那个div的最小高度应该在6px左右(假设IE6给盒子设的默认高度是12px;)那样的话才不至于它的父级需要overflow:hidden;。

HTML / CSS 相关文章推荐
利用CSS3实现毛玻璃效果示例源码
Sep 25 HTML / CSS
CSS3 简写animation
May 10 HTML / CSS
css3圆角样式分享自定义按钮样式
Dec 27 HTML / CSS
CSS3使用border-radius属性制作圆角
Dec 22 HTML / CSS
CSS3田字格列表的样式编写方法
Nov 22 HTML / CSS
Html5 实现微信分享及自定义内容的流程
Aug 20 HTML / CSS
只要五步 就可以用HTML5/CSS3快速制作便签贴特效(图)
Jun 04 HTML / CSS
HTML5 window/iframe跨域传递消息 API介绍
Aug 26 HTML / CSS
一款html5 canvas实现的图片玻璃碎片特效
Sep 11 HTML / CSS
html5使用canvas画空心圆与实心圆
Dec 15 HTML / CSS
HTML5实现桌面通知 提示功能
Oct 11 HTML / CSS
CSS实现多个元素在盒子内两端对齐效果
Mar 30 HTML / CSS
CSS中几个与换行有关的属性简明总结
Apr 15 #HTML / CSS
css3 条纹化和透明化表格Firefox下测试成功
Apr 15 #HTML / CSS
css3新增颜色表示方式分享
Apr 15 #HTML / CSS
常用的四种CSS透明属性介绍
Apr 12 #HTML / CSS
可以随进度显示不同颜色的css3进度条分享
Apr 11 #HTML / CSS
css3发光搜索表单分享
Apr 11 #HTML / CSS
用css3实现当鼠标移进去时当前亮其他变灰效果
Apr 08 #HTML / CSS
You might like
PHP设计模式之工厂模式定义与用法详解
2018/04/03 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
2019/03/22 PHP
Laravel 默认邮箱登录改成用户名登录的实现方法
2019/08/12 PHP
静态的动态续篇之来点XML
2006/12/23 Javascript
传递参数的标准方法(jQuery.ajax)
2008/11/19 Javascript
js简单的弹出框有关闭按钮
2014/05/05 Javascript
JS实现关键字搜索时的相关下拉字段效果
2014/08/05 Javascript
Javascript之Math对象详解
2016/06/07 Javascript
JS实现的验证身份证及获取地区功能示例
2017/01/16 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(1)
2017/02/20 Javascript
JS全角与半角转化实例(分享)
2017/07/04 Javascript
微信小程序实现图片放大预览功能
2020/10/22 Javascript
vue 项目如何引入微信sdk接口的方法
2017/12/18 Javascript
vue-devtools的安装步骤
2018/04/23 Javascript
Vue面试题及Vue知识点整理
2018/10/07 Javascript
nodejs基础之buffer缓冲区用法分析
2018/12/26 NodeJs
Node配合WebSocket做多文件下载以及进度回传
2019/11/07 Javascript
VUEX-action可以修改state吗
2019/11/19 Javascript
[03:43]TI9战队采访——PSG.LGD
2019/08/22 DOTA
Python实现包含min函数的栈
2016/04/29 Python
python如何把嵌套列表转变成普通列表
2018/03/20 Python
Flask Web开发入门之文件上传(八)
2018/08/17 Python
python使用numpy读取、保存txt数据的实例
2018/10/14 Python
在python中修改.properties文件的操作
2020/04/08 Python
最新pycharm安装教程
2020/11/18 Python
详解快速开发基于 HTML5 网络拓扑图应用
2018/01/08 HTML / CSS
.NET面试10题
2014/02/24 面试题
ShellScript面试题一则-ShellScript编程
2014/03/05 面试题
初中考试作弊检讨书
2014/02/01 职场文书
幼儿园毕业园长感言
2014/02/24 职场文书
大队干部竞选演讲稿
2014/04/28 职场文书
高中教师考核方案
2014/05/18 职场文书
中学清明节活动总结
2014/07/04 职场文书
2014年卫生院工作总结
2014/12/03 职场文书
感谢信模板大全
2015/01/23 职场文书
草系十大最强宝可梦,纸片人上榜,榜首大家最熟悉
2022/03/18 日漫