CSS3样式linear-gradient的使用

时间:2023-03-09 01:16:49
CSS3样式linear-gradient的使用

linear-gradient

  1. linear-gradient是CSS3中新增的样式,主要用于颜色的渐变效果。MDN地址
  2. linear-gradient在不同内核下使用方式不同,详细内容可参考w3cplus

实用栗子(在Chrome下)

  1. 缺角效果

    先看效果图

    CSS3样式linear-gradient的使用

    <div class="div1">
    这是内容
    </div>
    .div1 {
    width: 100px;
    height: 40px;
    line-height: 40px;
    background:linear-gradient(-135deg, transparent 15px, #162e48 0);
    color: #fff;
    padding: 5px 15px;
    text-align: center;
    margin-bottom: 30px;
    }
  2. 补角效果

    先看效果图

    CSS3样式linear-gradient的使用

    <div class="div2">
    这是内容
    </div>
    .div2 {
    width: 100px;
    height: 40px;
    line-height: 40px;
    background:linear-gradient(-135deg, #f00 15px, #162e48 0);
    color: #fff;
    padding: 5px 15px;
    text-align: center;
    margin-bottom: 30px;
    }

    只是在栗子1的基础上修改了linear-gradient,将transparent修改为#f00

  3. 带边框的效果

    先看效果图

    CSS3样式linear-gradient的使用

    <div class="div3">
    这是内容
    </div>
    .div3 {
    width: 100px;
    height: 40px;
    line-height: 40px;
    background:linear-gradient(-135deg, #f00 15px, #162e48 0);
    color: #fff;
    padding: 5px 15px;
    text-align: center;
    margin-bottom: 30px;
    box-shadow: 0 0 1px 1px #fff inset;
    }

    在栗子2的基础上增加了box-shadow,当然加边框可以有多种方式,可自行选择。

  4. 开关效果

    效果图

    CSS3样式linear-gradient的使用

    <div class="div4">
    <div class="div4-1">OFF</div>
    <div class="div4-2 active">ON</div>
    </div>
    .div4 {
    width: 144px;
    height: 30px;
    line-height: 30px;
    background: #162e48;
    color: #FFF;
    text-align: center;
    margin-bottom: 30px;
    }
    .div4-1, .div4-2 {
    width: 86px;
    float: left;
    }
    .div4-1.active {
    margin-right: -28px;
    background:linear-gradient(-135deg, transparent 20px, #f00 0);
    }
    .div4-2.active {
    margin-left: -28px;
    background:linear-gradient(45deg, transparent 20px, #f00 0);
    }

    最终效果可根据需要自行调整

  5. 在栗子3的基础上做到以下效果,单纯使用linear-gradient没有找到解决方法,如有方案,请在评论下给出方案。以下是其中一种解决方式

    效果图

    CSS3样式linear-gradient的使用

    .div5 {
    width: 100px;
    height: 40px;
    line-height: 40px;
    background:linear-gradient(-135deg, #fff 15px, #162e48 0);
    color: #fff;
    padding: 5px 15px;
    text-align: center;
    box-shadow: 0 0 1px 1px #fff;
    margin-bottom: 30px;
    position: relative;
    }
    .div5:after {
    content: ' ';
    border: solid transparent;
    position: absolute;
    border-width: 12px;
    border-top-color: #000;
    border-right-color: #000;
    top: -2px;
    right: -2px;
    }
  6. 考虑到兼容性问题,可以通过:before:after实现同样的效果,给出一个栗子

    .div6 {
    width: 100px;
    height: 40px;
    line-height: 40px;
    background:#162e48;
    color: #fff;
    padding: 5px 15px;
    text-align: center;
    position: relative;
    border: 1px solid #fff;
    margin-bottom: 30px;
    }
    .div6:before {
    content: ' ';
    border: solid transparent;
    position: absolute;
    border-width: 15px;
    border-top-color: #fff;
    border-right-color: #fff;
    right: 0px;
    top: 0px;
    }
    .div6:after {
    content: ' ';
    border: solid transparent;
    position: absolute;
    border-width: 15px;
    border-top-color: #000;
    border-right-color: #000;
    top: -1px;
    right: -1px;
    }