在商城項目中,購物車是一個很重要的功能。其中最常見的是購物車中對庫存的“+-”操作,包括搶購后面有很多算法。但是作為前端來說,購物車的結算中的+-就是一個計算而已。傳統的實現方式是通過圖片來實現+-按鈕,而本文卻將使用CSS3的linear-gradient線性漸變來實現購物車的加減操作。
要實現一個減號效果非常簡單,例如要實現一個10px*2px的減號圖形,則CSS:
.minus { background-image: linear-gradient(to top, #666, #666); background-size: 10px 2px; }
原理如下,先使用漸變生成一個鋪滿整個元素背景的純色(#666)漸變圖片,然后使用background-size屬性控制成我們想要的大小,效果就實現了。
加號效果也是類似,只是要多一層linear-gradient的累加。
最終可以實現類似下圖效果:
和傳統::before, ::afetr偽元素配合background-color或border相比,使用漸變背景生成有個非常重要的好處,那就是居中定位非常方便,直接在background屬性后面加個center即可,而傳統實現通常需要絕對定位,然后再巴拉巴拉一通代碼來居中,很啰嗦的。
下面給出本實例的全部代碼,css代碼如下:
.btn { display: inline-block; background: #f0f0f0 no-repeat center; border: 1px solid #d0d0d0; width: 24px; height: 24px; border-radius: 2px; box-shadow: 0 1px rgba(100,100,100,.1); color: #666; transition: color .2s, background-color .2s; } .btn:active { box-shadow: inset 0 1px rgba(100,100,100,.1); } .btn:hover { background-color: #e9e9e9; color: #333; } .btn-plus { background-image: linear-gradient(to top, currentColor, currentColor), linear-gradient(to top, currentColor, currentColor); background-size: 10px 2px, 2px 10px; } .btn-minus { background-image: linear-gradient(to top, currentColor, currentColor); background-size: 10px 2px; }
關鍵的html代碼如下:
<a href="javascript:" class="btn btn-plus" role="button" title="增加"></a> <input value="1" size="1"> <a href="javascript:" class="btn btn-minus" role="button" title="減少"></a>
最終的運行效果就是和上面的貼圖一樣。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持。
【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。