CSS3实例教程:使用border-radius制作文本文档图标


这个实例的目的:熟练使用border-radius

涉及的属性:border-radiuslinear-gradient box-shadow
提示:“:before” “:after”,IE对after、before是不支持的,请在firefox、opera、chrome下试调!
要求浏览器:firefox、opera、chrome
效果图:


先看下大致的步骤:
1.定义class,绘制一个矩形;
2.用border-radius属性进行对其圆角处理;
3.使用pseudo元素创建蜷缩角;
4.创建条文渐变的效果。
详细步骤
第一步:定义class,绘制一个矩形:

<a class="docIcon" href="#">Document Icon</a>

这里要注意下:“display“默认属性值是“inline”,所以我们要使用“block”这个属性值以保证其正确显示:

  1. .docIcon {
  2. background: #eee;
  3. background: -webkit-linear-gradient(top, #ddd 0, #eee 15%, #fff 40%, #fff 70%, #eee 100%);
  4. background: -moz-linear-gradient(top, #ddd 0, #eee 15%, #fff 40%, #fff 70%, #eee 100%);
  5. background: -o-linear-gradient(top, #ddd 0, #eee 15%, #fff 40%, #fff 70%, #eee 100%);
  6. background: -ms-linear-gradient(top, #ddd 0, #eee 15%, #fff 40%, #fff 70%, #eee 100%);
  7. background: linear-gradient(top, #ddd 0, #eee 15%, #fff 40%, #fff 70%, #eee 100%);
  8. border: 1px solid #ccc;
  9. display: block;
  10. width: 40px;
  11. height: 56px;
  12. position: relative;
  13. margin: 42px auto;
  14. }

这里的linear-gradient是渐变效果设置。
下面加上阴影效果,使用“box-shadow ”属性来实现:

  1. .docIcon
  2. {
  3. ...
  4. -webkit-box-shadow:inset rgba(255,255,255,0.8) 0 1px 1px;
  5. -moz-box-shadow:inset rgba(255,255,255,0.8) 0 1px 1px;
  6. box-shadow:inset rgba(255,255,255,0.8) 0 1px 1px;
  7. text-indent:-9999em;
  8. }

这里的box-shadow是阴影效果设置。
到目前为止,我们完成了下面的效果,如图:



第二部:用border-radius属性进行对其圆角处理:
Border-radius的定义、用法请点击此处了解。代码:
  1. .docIcon
  2. {
  3. ...
  4. -webkit-border-radius:3px 15px 3px 3px;
  5. -moz-border-radius:3px 15px 3px 3px;
  6. border-radius:3px 15px 3px 3px;
  7. }

如图:


Ps:这里要着重提示下:before是一个伪类选择器,仅支持firefox、opera、chrome。
大家可能对下面俩步不太了解,这个没关系,我会针对它们另外写一篇详细的文章。在这个实例当中,大家只要知道我们用到过":before"":after"这个俩个伪类选择器即可。
第三部:蜷缩角

首先,添加“:before”,我们需要创建一个15px的矩形并应用背景渐变:
  1. .docIcon:before {
  2. content: "";
  3. display: block;
  4. position: absolute;
  5. top: 0;
  6. right: 0;
  7. width: 15px;
  8. height: 15px;
  9. background: #ccc;
  10. background: -webkit-linear-gradient(45deg, #fff 0, #eee 50%, #ccc 100%);
  11. background: -moz-linear-gradient(45deg, #fff 0, #eee 50%, #ccc 100%);
  12. background: -o-linear-gradient(45deg, #fff 0, #eee 50%, #ccc 100%);
  13. background: -ms-linear-gradient(45deg, #fff 0, #eee 50%, #ccc 100%);
  14. background: linear-gradient(45deg, #fff 0, #eee 50%, #ccc 100%);
  15. -webkit-box-shadow: rgba(0,0,0,0.05) -1px 1px 1px, inset white 0 0 1px;
  16. -moz-box-shadow: rgba(0,0,0,0.05) -1px 1px 1px, inset white 0 0 1px;
  17. box-shadow: rgba(0,0,0,0.05) -1px 1px 1px, inset white 0 0 1px;
  18. border-bottom: 1px solid #ccc;
  19. border-left: 1px solid #ccc;
  20. }

接下来我们要实现右上角圆角的效果,我们使用相同的方法进行对齐:

...

-webkit-border-radius:3px 15px 3px 3px;

-moz-border-radius:3px 15px 3px 3px;

border-radius:3px 15px 3px 3px;

下面是我们目前实现的效果:


第四步:添加条文渐变效果:

 

下面我们使用“:after”来实现效果,我们出示高度定位0,0。我们应用整体宽度的60%,再加上

 

 

margin-left和margin-right各20%(也就是100%):

  1. .docIcon:after
  2. {
  3. content:"";
  4. display:block;
  5. position:absolute;
  6. left:0;
  7. top:0;
  8. width:60%;
  9. margin:22px 20% 0;
  10. height:15px;
  11. }


用CSS3实现多条线渐变:

  1. .docIcon:after
  2. {
  3. ...
  4. background:#ccc;
  5. background: -webkit-linear-gradient(top, #ccc 0, #ccc 20%, #fff 20%, #fff 40%, #ccc 40%, #ccc 60%, #fff 60%, #fff 80%, #ccc 80%, #ccc 100%);
  6. background: -moz-linear-gradient(top, #ccc 0, #ccc 20%, #fff 20%, #fff 40%, #ccc 40%, #ccc 60%, #fff 60%, #fff 80%, #ccc 80%, #ccc 100%);
  7. background: -o-linear-gradient(top, #ccc 0, #ccc 20%, #fff 20%, #fff 40%, #ccc 40%, #ccc 60%, #fff 60%, #fff 80%, #ccc 80%, #ccc 100%);
  8. background: -ms-linear-gradient(top, #ccc 0, #ccc 20%, #fff 20%, #fff 40%, #ccc 40%, #ccc 60%, #fff 60%, #fff 80%, #ccc 80%, #ccc 100%);
  9. background:linear-gradient(top, #ccc 0, #ccc 20%, #fff 20%, #fff 40%, #ccc 40%, #ccc 60%, #fff 60%, #fff 80%, #ccc 80%, #ccc 100%);
  10. }



最后结果:


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3