技能GET-使用CSS3漸變實現單一元素多顏色展示

發現一個比較好玩的東東,CSS3漸變,基本介紹和使用方式詳見http://www.runoob.com/css3/css3-gradients.html
原本是實現顏色的過渡效果,已替代圖片的使用,但是配置合理的顏色參數,便可以實現單一元素的多顏色展示,上代碼。

Demo1 簡單的例子

html
<body>
    <div class="demo"></div>
</body>
css
.demo {
        height: 300px;
        width: 300px;
        margin: 0 auto;
        border: 1px solid black;
        background: linear-gradient(red, red 10%, blue 10%, blue);//注意中間red和blue後面的值
    }

實現效果圖
這裏寫圖片描述


Demo2 hover效果

html
<body><div id="demoPanel" class="demo"></div></body>

css
.demo {
        height: 400px;
        width: 400px;
        margin: 0 auto;
        border: 1px solid black;
    }
.li-1 { background: linear-gradient(red, red 25%, white 25%, white);}
.li-2 { background: linear-gradient(white, white 25%, red 25%, red 50%, white 50%, white);}
.li-3 { background: linear-gradient(white, white 50%, red 50%, red 75%, white 75%, white);}
.li-4 { background: linear-gradient(white, white 75%, red 75%, red);}

js
(function() {
    var _demoPanel = document.getElementById('demoPanel');
    _demoPanel.addEventListener('mousemove', function(event) {
        _demoPanel.className = 'demo li-' + (Math.ceil(event.offsetY / 100));
    });
    _demoPanel.addEventListener('mouseout', function(event) {
        _demoPanel.className = 'demo';
    });
})()    

執行效果可自行嘗試,在hover到對應顏色時改變css樣式,得到不同的效果,如下hover在第三行的效果圖2。
這裏寫圖片描述


總結:在線性漸變樣式的屬性中,在兩個漸變終端顏色中(white,red),添加前端顏色的截斷顏色,並設置比例(white,white 25%,red),使其漸變距離爲零,從而達到取消漸變的效果。比較簡單,歡迎板磚~~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章