CSS3里怎么完成單選框動畫特效
發表時間:2024-05-11 來源:明輝站整理相關軟件相關文章人氣:
[摘要]CSS3里怎么實現單選框動畫特效?為什么要實現單選框動畫特效?下面我們給大家舉倆個例子,幫大家熟練掌握用CSS3實現單選框動畫特效<div><input type="radio" name="radio-1" id="radio-...
CSS3里怎么實現單選框動畫特效?為什么要實現單選框動畫特效?下面我們給大家舉倆個例子,幫大家熟練掌握用CSS3實現單選框動畫特效
<div>
<input type="radio" name="radio-1" id="radio-1-1" checked="checked">
<label for="radio-1-1"></label>
<input type="radio" name="radio-1" id="radio-1-2">
<label for="radio-1-2"></label>
<input type="radio" name="radio-1" id="radio-1-3">
<label for="radio-1-3"></label>
</div>
這里,我們指定 input 標簽的 type 值為 radio,并且一下所有的 radio 的 name 值都相同,這樣才可以實現單選效果。對于這里的 label 中的 for 屬性,為什么這么設置一開始我也不明白,后來搜索了一下這個屬性的定義,反正大概的意思就是說,只要設置了這個屬性,當我們點擊label 元素的時候,瀏覽器會自動把焦點轉移到 radio 上去。下面用 CSS 對HTML設置效果。
.radio-1 { width: 900px; padding: 3% 0%; margin: 10px auto; background-color: darkseagreen; text-align: center;
}
.radio-1 label { display: inline-block; position: relative; width: 28px; height: 28px; border: 1px solid #cccccc; border-radius: 100%; cursor: pointer; background-color: #ffffff; margin-right: 10px;
}
這里我們首先看一下對 label 元素的設定,其中大部分屬性我都在以前的文章中介紹過了,唯一一個陌生的屬性就是 cursor,這個屬性是設定鼠標樣式的,設置成 pointer 之后,當我們的鼠標放到 label 元素上時,鼠標樣式就變成了一只手(在我電腦上是這樣)。好了,下面繼續來看
.radio-1 label:after {
content: ""; position: absolute; width: 20px; height: 20px; top: 4px; left: 4px; background-color: #666; border-radius: 50%; transform: scale(0); transition: transform .2s ease-out;
}
這里我們用到了 after 選擇器,為什么設置這個屬性?就是為了設置如上圖所示的小黑點。首先我們設置 content 屬性為空,意思就是我們不需要填充任何內容,因為我們只是想設置背景色為黑色,僅此而已。還有,剛開始的時候我們設置 transform 的 scale 值為 0 ,其達到的效果就是將小黑點隱藏。
.radio-1 [type="radio"]:checked + label { background-color: #eeeeee; transition: background-color .2s ease-in;
}
.radio-1 [type="radio"]:checked + label:after {
transform: scale(1); transition: transform .2s ease-in;
}
注意這里使用了 + 符號,是什么意思呢?它的學名叫做 相鄰同胞選擇器,意思就是選擇緊接在另一個元素后的元素,而且二者有相同的父元素,在這里的意思就是選中在radio 后出現的 label ,有人要問了,這么設置干嘛,直接設置 label 就是了。想象一下,在一個 非常龐大的系統中,我們可能多次使用到 label 元素,為了避免混淆,這樣設置將更加準確。這里我們看到了 transition 屬性,這個屬性是用于設置過渡效果的。最后,將我們的 radio 隱藏掉,就大功告成了。
.radio-1 [type="radio"]{ display: none;
}
Action two
這是我們的第二個特效
demo2.gif
其實看到這個動畫的第一感覺就是,和上一個一模一樣,除了將 transform 屬性設置成 rotate,下面我就不再解釋了,只要你結合上一個例子,就可以很容易做出這么一個效果,我們直接上代碼:
<!DOCTYPE html><html><head>
<meta charset="UTF-8">
<title>Radio</title>
<style>
.radio-2 { width: 900px;padding: 3% 0; margin: 50px auto; background-color: darkseagreen; text-align: center;
}
.radio-2 label { display: inline-block; width: 28px; height: 28px; overflow: hidden; border: 1px solid #eeeeee; border-radius: 100%; margin-right: 10px; background-color: #ffffff; position: relative;cursor: pointer;
}
.radio-2 label:after { content: ""; position: absolute;top: 4px; left: 4px; width: 20px; height: 20px; background-color: #666666; border-radius: 50%; transform: rotate(-180deg);transform-origin: -2px 50%; transition: transform .2s ease-in;
} .radio-2 [type="radio"] { display: none;
}
.radio-2 [type="radio"]:checked + label:after{
transform: rotate(0deg); transition: transform .2s ease-out;
} </style></head><body><div>
<input type="radio" name="radio-2" id="radio-2-1" checked="checked">
<label for="radio-2-1"></label>
<input type="radio" name="radio-2" id="radio-2-2">
<label for="radio-2-2"></label>
<input type="radio" name="radio-2" id="radio-2-3">
<label for="radio-2-3"></label></div></body><ml>
相信大家看了這倆個列子都已經清楚了在CSS3里怎么實現單選框動畫特效,更多精彩請關注php中文網其它相關文章!
相關閱讀:
怎樣用css3做出圖標效果
CSS的編碼怎么轉換
怎樣用canvas實現小球和鼠標的互動
以上就是CSS3里怎么實現單選框動畫特效的詳細內容,更多請關注php中文網其它相關文章!
網站建設是一個廣義的術語,涵蓋了許多不同的技能和學科中所使用的生產和維護的網站。