今天看到一篇文章,说到margin的塌陷的问题,并提供了好几个例子。

自己之前还没怎么遇到过这个问题,正好来研究一下。

<div class="box1"></div>
<div class="box2"></div>
<div class="box3"></div>
<div class="box4"></div>

css样式一,使用margin塌陷:

.box1, .box2, .box3 {
  width: 200px;
  }
.box1{
  margin-bottom: -80px;
  height:100px;
  background: blue;
  }
.box2 {
  margin-bottom:-40px;
  height:60px;
  background: #ffff00;
}
.box3{
  height:20px;
  background: #ff0000;
}

效果:

css样式二,也是使用的margin塌陷,不过做出来的是弧形的彩虹:

.box1{
width: 400px;
height: 200px;
overflow: hidden;
}
.box1::before{
float: left;
display: block;
height: 400px;
width:400px;
border-radius: 100%;
border: solid 10px blue;
box-sizing: border-box;
content: "";
}
.box1::after{
margin-top: 10px;
margin-left: 10px;
display: block;
width: 380px;
height: 380px;
border: solid #ffff00 10px;
border-radius: 100%;
box-sizing: border-box;
content: "";
}
.box2{
float: left;
margin-top: -180px;
margin-left: 20px;
width: 360px;
height: 180px;
overflow: hidden;
}
.box2::before{
float: left;
display: block;
margin:;
width: 360px;
height: 360px;
border-radius: 100%;
border: solid 10px #ff0000;
box-sizing: border-box;
content: "";
}
.box2::after{
display: block;
margin-top: 10px;
margin-left: 10px;
width: 340px;
height: 340px;
border-radius: 100%;
border: solid 10px #ffff00;
box-sizing: border-box;
content: "";
}
.box3{
margin-top: -160px;
margin-left: 40px;
width: 340px;
height: 160px;
overflow: hidden;
}
.box3::before{
float: left;
display: block;
width: 320px;
height: 320px;
border: solid 10px blue;
border-radius: 100%;
box-sizing: border-box;
content: "";
}

效果:

css样式三,使用的是box-shadow:

.box4{
width: 200px;
height: 200px;
box-shadow: 0 10px 0 red,0 20px 0 yellow, 0 30px 0 green,0 40px 0 blue,0 50px 0 purple;
}

效果:

CSS样式四,使用position:absolute来实现,感觉这种是最常见的了

.box1{
position: absolute;
width: 200px;
height: 100px;
background: #008aff;
}
.box2{
position: absolute;
margin-top: 20px;
width: 200px;
height: 60px;
background: #ffff00;
}
.box3{
position: absolute;
margin-top: 40px;
width: 200px;
height: 20px;
background: #ff6633;
}

效果:

CSS样式五,使用radial-gradient:

 .box4{
width: 260px;
height: 130px;
overflow: hidden;
}
.box5{
width: 260px;
height: 260px;
border-radius: 100%;
background: radial-gradient(#ffffff 70px,#ff6633 80px,#ffff00 90px,green 100px,#008aff 110px,purple 120px);
background: -moz-radial-gradient(#ffffff 70px,#ff6633 80px,#ffff00 90px,green 100px,#008aff 110px,purple 120px);
background: -webkit-radial-gradient(#ffffff 70px,#ff6633 80px,#ffff00 90px,green 100px,#008aff 110px,purple 120px);
}

另外附上关于css负边距的文章链接:https://segmentfault.com/a/1190000005856540

CSS制作彩虹效果的更多相关文章

  1. 利用CSS制作图形效果

    前言 关于如何使用CSS来制作图形,比如说圆形,半圆形,三角形等的相关教程还是挺多的,今天我主要想解释一下里面一些demo的实现原理,话不多说,开始吧   以下所有内容只使用一个HTML元素.任何类型 ...

  2. 一种巧妙的使用 CSS 制作波浪效果的思路

    在之前,我介绍过几种使用纯 CSS 实现波浪效果的方式,关于它们有两篇相关的文章: 纯 CSS 实现波浪效果! 巧用 CSS 实现酷炫的充电动画 本文将会再介绍另外一种使用 CSS 实现的波浪效果,思 ...

  3. CSS--使用Animate.css制作动画效果

    一 使用Animate.css动画 // 通过@import引入外部CSS资源; // 引入线上图片及JS文件; // 通过更改CSS类名生成不同类型的CSS3动画;   <!DOCTYPE h ...

  4. DIV+CSS制作斜线效果记录

    DIV+CSS 斜线效果很简单,只需设置一下CSS Border 的边框就能有斜线效果.代码分享给大家,你可以自己变通. 提示要注意两点:1.DIV宽高的定义.2.DIV在 IE6 中默认是有高度的. ...

  5. 纯CSS制作图形效果

    下面所有的例子都是在demo.html的基础上添加相关样式实现的. <!DOCTYPE html> <html> <head> <meta charset=& ...

  6. 如何使用纯CSS制作特效导航条?

    先上张图,如何使用纯 CSS 制作如下效果? 在继续阅读下文之前,你可以先缓一缓.尝试思考一下上面的效果或者动手尝试一下,不借助 JS ,能否巧妙的实现上述效果. OK,继续.这个效果是我在业务开发的 ...

  7. CSS制作的32种图形效果[梯形|三角|椭圆|平行四边形|菱形|四分之一圆|旗帜]

    转载链接:http://www.w3cplus.com/css/css-simple-shapes-cheat-sheet 前面在<纯CSS制作的图形效果>一文中介绍了十六种CSS画各种不 ...

  8. CSS制作三角形和按钮

    CSS制作三角形和按钮 用上一篇博文中关于边框样式的知识点,能制作出三角形和按钮. 我先说如何制作三角形吧,相信大家在平时逛网站的时候都会看到一些导航栏中的三角形吧,比如说: 网易首页的头部菜单栏中, ...

  9. 前端开发css实战:使用css制作网页中的多级菜单

    前端开发css实战:使用css制作网页中的多级菜单 在日常工作中,大家都会遇到一些显示隐藏类菜单,比如页头导航.二维码显示隐藏.文本提示等等......而这些效果都是可以使用纯css实现的(而且非常简 ...

随机推荐

  1. IOS之以UIBezierPath绘制饼状图

    1.绘制的饼状图是通过多个扇形拼和而成,绘制一个扇形也是比较简单的,核心代码如下: 先画一条圆弧,再画半径,接着再画一条圆弧,最后闭合路径: UIBezierPath*  aPath = [[UIBe ...

  2. oc-13-多文件

    Dog.h #import <Foundation/Foundation.h> @interface Dog : NSObject { @public NSString *_name; i ...

  3. C++检测一个文件是否存在

    ifstream::is_open - C++ Reference http://www.cplusplus.com/reference/fstream/ifstream/is_open/ // if ...

  4. (转)从Membership 到 .NET4.5 之 ASP.NET Identity

    引入 - 用户信息是如何存在数据库中的 我们前两篇都只讲到了怎么用Membership注册,登录等,但是我们漏掉了一个很重要并且是基本上每个用Membership的人都想问的,我的用户信息怎么保存?我 ...

  5. java.util Pattern 和 Mathcer

    1.测试给定的正则表达式是否匹配输入的字符串,这里该正则表达式只使用一次 private String regex ; private String input; @Before public voi ...

  6. 杂乱无章之Oracle(二)

    六.IMPDP用法 1.导入表 impdp hsiufo/hsiufo directory=dump_dir dumpfile=full.dmp tables=scott.emp remap_sche ...

  7. 函数参数选项的处理getopt getopt_long getopt_long_only

    转载:http://blog.chinaunix.net/uid-20321537-id-1966849.html   在头文件中int getopt(int argc,char *argv[], c ...

  8. iOS 多线程讲解2

    1.GCD其他方法 1.GCD应用 单例模式 static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ NSLog(@&qu ...

  9. test命令的用法

    test命令可用于:文件属性的测试字符串测试算数测试test命令语法如下所示:test EXPRESSION或者[EXPRESSION] 示例:# test -d "$HOME"; ...

  10. 20145102 《Java程序设计》第3周学习总结

    20145102 <Java程序设计>第3周学习总结 教材学习内容总结 以""包含的字符串,只要内容相同(序列,大小写相同),无论在程序代码中出现几次,都只会建立一个S ...