一.需求:替換單選按鈕默認圖標url
二.原理:spa
1.使用label擴大選擇熱區,隱藏input元素,blog
2.添加一個元素設置其背景圖做爲默認顯示的按鈕圖標並顯示,input
3.爲該元素添加一個僞元素相對於添加的元素絕對定位且默認不顯示,在該僞元素中添加默認選中的背景圖it
4.在input元素選中後,顯示該僞元素,由於僞元素是絕對定位層級比較高因此會顯示在上面,即選中的圖標io
三.HTMLclass
<label>
<input name="price" type="radio" value="1" />
<span className="show-radio"></span>
<p>100-500</p>
</label>原理
四.CSSim
input{僞元素
display:none
};
.show-radio{
display: inline-block;
width:34px;
height:35px;
background:url('../../imgs/icons.png') no-repeat;
background-position:-529px -180px;
vertical-align: middle;
position: relative;
}
.show-radio:before{
content:'';
display: none;
width:34px;
height:35px;
background:url('../../imgs/icons.png') no-repeat;
background-position:-474px -180px;
vertical-align: middle;
position:absolute;
left:0;
top:0;
}
input:checked~show-radio:before{
display:block;
}
五.效果
近重視實現思路和重要代碼,部分省略,望見諒