使用 css 实现下面效果:

把效果分解.

代码一:

<style>
.helper1 {
height: 40px;
padding: 15px;
background: -webkit-linear-gradient( right, #fff 0%, #000 100%), -webkit-linear-gradient( right, #fff 0%, #74baff 100% );
}
</style>
<div class="helper1"></div>

效果:

原因: 
background 如果存在多个 image(gradient) 时, 显示层级是降低的. 即先的越靠前越优先显示.

代码2:

<style>
.helper2 {
height: 40px;
padding: 15px;
background: -webkit-linear-gradient( right, #fff 0%, #000 100%), -webkit-linear-gradient( right, #fff 0%, #74baff 100% );
background-clip: content-box, padding-box;
}
</style>
<div class="helper2"></div>

原因:
background-clip 对 background 进行裁剪. 
content-box: background 只显示在内容区.
border-box: background 从 border 位置开始显示.

background 图片(gradient)越向后书写的, 起始位置越渐近 border. 这样后定义的背景不会被先定义的完全覆盖.

重写代码2: 使用白色做背景. 代码3:

<style>
.helper3 {
height: 40px;
padding: 15px;
background: -webkit-linear-gradient( right, #fff 0%, #fff 100%), -webkit-linear-gradient( right, #fff 0%, #74baff 100% );
background-clip: content-box, padding-box;
}
</style>
<div class="helper3"></div>

代码 4:

<style>
.helper4 {
height: 40px;
padding: 15px;
padding-bottom:;
width: 100px;
box-sizing: border-box;
border-radius: 50px 50px 0 0;
background: -webkit-linear-gradient( right, #fff 0%, #fff 100%), -webkit-linear-gradient( right, #fff 0%, #74baff 100% );
background-clip: content-box, padding-box;
}
</style>
<div class="helper4"></div>

效果:

原因:
圆一周的效果不同, 因此上下两部分分开实现 - 添加 padding-bottom: 0; 即仅实现上半部分.
设置 width 指定 loading 圆尺寸. 使用 box-sizing 节省计算.
border-radius 把 loading 形状设置成圆.

实现上半部分效果, 下半部分相似. (借助:before/:after伪元素)
效果要求做了 rotate!

最终效果:

补充

对 css3 中 background 属性做下补充.

background-origin: 背景渲染的起始位置. 支持 value

  1. padding-box; (default)
  2. border-box;
  3. content-box;

background-color 和 background-image: linear-gradient(.... ) 会从 border 处开始,
但由于往往 border 存在 value 而看不到 background。
background-origin 设置为 padding-box 时, gradient 在 border 下面是实色的. 见下图:

代码:

border: 50px solid rgba( 255, 255, 255, 0.1 );
background-image: -webkit-linear-gradient( top, #ffa, #faa );

`background-clip': 背景裁剪. 即用户可看到的背景起始位置. value:

  1. padding-box;
  2. border-box;
  3. content-box;
background-origin: border-box;
background-clip: content-box;

背景从 border-box 开始渲染, 但用户看到的是从 content-box 开始. 
即图片会被就隐藏一部分. 而gradient 会发现不是从设置的 start 颜色开始.

'background-size': 背景大小. value:

    • 像素值 - 50px, 100px
    • 百分比 50% /* 以上是对图片做相应缩放 */
    • cover /* resize 图片, 让最小尺寸方向(width/height)覆盖容器 */
    • contain /* resize 图片, 让图片覆盖容器, 并且图片正好全部显示 */
    • 补充下 background-repeat.
      • no-repeat;
      • repeat
      • repeat-x;
      • repeat-y
      • space
      • round

      space: 
      重复 image 以适应整个这容器, 但不对 image 做处理
      容器不能放下两个 image 时, 仅放一个
      容器放2个后, 还有剩余空间时, 空间留中间

      round:
      会缩放 image, 来适应容器

    • 参考地址 https://github.com/zhanhongtao/blog/issues/43 

css3 如何实现圆边框的渐变的更多相关文章

  1. css3实现背景颜色渐变,文字颜色渐变,边框颜色渐变

    css3的渐变可以使用2个或者多个指定的颜色之间显示平稳的过渡的效果.这篇文章主要介绍下css3实现背景颜色渐变,文字颜色渐变,边框颜色渐变的方法,以便大家学习参考! 1.css背景颜色渐变 代码: ...

  2. (转)利用 SVG 和 CSS3 实现有趣的边框动画

    目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...

  3. CSS3实现半像素边框

    一.思路 普通的1px黑色实线边框: border: 1px solid #000; 半像素边框当然不是简单地把1px改为0.5px(没测试过,可能会被解析成1或者0),border-width的值只 ...

  4. 【01】CSS3 Gradient 分为 linear-gradient(线性渐变)和 radial-gradient(径 向渐变)(转)

    CSS3 Gradient 分为 linear-gradient(线性渐变)和 radial-gradient(径 向渐变).而我们今天主要是针对线性渐变来剖析其具体的用法.为了更好的应用 CSS3 ...

  5. css3:border-radius圆角边框详解 (变圆 图片)

    转:http://www.kuqin.com/shuoit/20141014/342620.html border-radius:50% 今天来聊聊这个border-radius属性,radius的英 ...

  6. css3如何实现圆角边框

    圆角边框是css3新增属性,在圆角边框出现之前,前端开发有的采用整块的圆角图片作为背景,有的采用小的圆角图片分别放在元素的四角,非常麻烦,灵活性差,也达到降低了网站的整体性能,而圆角边的出现则降低了开 ...

  7. 用CSS3.0画圆

    CSS3.0中有一个border-radius属性,这个属性允许向 div 元素添加圆角边框,也就是div边角不再一直是直角,在CSS3.0中可以做成圆角了,所以我们可以用这个属性用div画一个圆,或 ...

  8. css3神奇的圆角边框、阴影框及其图片边框

    css3圆角,建议IE10以上 如果border-radius 单位是百分比,则参考为自身宽高,因此当宽高不一致时,圆角为不规则形状 如果border-radius 为50%,则为椭圆:当宽高一致时, ...

  9. 【控件扩展】带圆角、边框、渐变的panel

    下载地址:  http://files.cnblogs.com/chengulv/custompanel_demo.zip using System; namespace LC.Fun { /// & ...

随机推荐

  1. PAT (Basic Level) Practise (中文)-1021. 个位数统计 (15)

    1021. 个位数统计 (15) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一个k位整数N = dk-1 ...

  2. HDU字符串基础题(1020,1039,1062,1088,1161,1200,2017)

    并不是很精简,随便改改A过了就没有再简化了. 1020. Problem Description Given a string containing only 'A' - 'Z', we could ...

  3. H5滚动轮播插件

      概述 JRedu 随着前端技术的发展,越来越多的H5技术被应用到实际开发中,尤其是js插件更是无处不用,本章节我们主要分享下如何去自己封装一个滚动轮播插件. 1效果图如下: 2主要功能   支持超 ...

  4. POJ 3254 Corn Fields:网格密铺类 状压dp

    题目链接:http://poj.org/problem?id=3254 题意: 给你一片n*m的耕地,你可以在上面种玉米.但是其中有一些地方是荒芜的,不能种植.并且种植玉米的地方不能相邻.问你在这片地 ...

  5. sqlite 的基本使用1

    mac 下自带的sqlite3 直接在终端键入 sqlite3 即进入 sqlite的交互界面 1,创建数据库 sqlite3 命令 被用来创建新的数据库 比如sqlite3 mydb,即创建了一个m ...

  6. 001-centos6.5下安装jenkins

    Jenkins是开源的,使用Java编写的持续集成的工具,在Centos上可以通过yum命令行直接安装. 需要先安装Java,如果已经Java可以跳过该步骤.   如果已安装java,可以通过该命令查 ...

  7. Qt实现九宫图类控件

    <1>. 头文件(类声明) class CPreviewWidge : public QWidget { Q_OBJECT public: CPreviewWidge( ); ~CPrev ...

  8. Linux下C程序的存储空间布局

    一个程序本质上都是由 BSS 段.data段.text段三个组成的.可以看到一个可执行程序在存储(没有调入内存)时分为代码段.数据区和未初始化数据区三部分. BSS段(未初始化数据区):在采用段式内存 ...

  9. .net core 2.0学习笔记(四):迁移.net framework 工程到.net core

    在迁移.net core的过程中,第一步就是要把.net framework 工程的目标框架改为.net core2.0,但是官网却没有提供转换工具,需要我们自己动手完成了..net framewor ...

  10. meta标签的name和http-equiv属性

    META标签是HTML语言HEAD区的一个辅助性标签,它位于HTML文档头部的<HEAD>标记和<TITLE>标记之间,它提供用户不可见的信息.META标签有两个重要的属性:H ...