CSS3樣式linear-gradient的使用


linear-gradient

  1. linear-gradient是CSS3中新增的樣式,主要用於顏色的漸變效果。MDN地址
  2. linear-gradient在不同內核下使用方式不同,詳細內容可參考w3cplus

實用栗子(在Chrome下)

  1. 缺角效果
    先看效果圖

    <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. 補角效果
    先看效果圖

    <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. 帶邊框的效果
    先看效果圖

    <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. 開關效果
    效果圖

    <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沒有找到解決方法,如有方案,請在評論下給出方案。以下是其中一種解決方式
    效果圖

    .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;
    	}
    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM