前端 - 這個(gè)外圈漸變效果能否用純css實(shí)現(xiàn)?
問(wèn)題描述
純css無(wú)法實(shí)現(xiàn)的話說(shuō)說(shuō)其他方法
問(wèn)題解答
回答1:自問(wèn)自答吧,上面幾個(gè)答案沒(méi)懂我的意思,動(dòng)畫(huà)效果的那個(gè)比較接近我想要的,最后還是codepen上搜找到了差不多的demo,一個(gè)臺(tái)灣人寫(xiě)的:鏈接描述
思路很簡(jiǎn)單,寫(xiě)6個(gè)p,每個(gè)代表一段漸變,通過(guò)linear-gradient的角度和css3的skew把6個(gè)p拼成如下樣子:
然后裁出一個(gè)圓環(huán)就行了.唯一不太清楚的是漸變的透明度為什么是12%到88%,不知道有什么特別用意,知道的各位還請(qǐng)指教一下。
還有個(gè)坑爹的東西,移動(dòng)端使用漸變要注意兼容性,linear-gradient和帶瀏覽器前綴比如-webkit-的角度標(biāo)準(zhǔn)不一樣,一個(gè)是順時(shí)針一個(gè)是逆時(shí)針,我的安卓支持-webkit-linear-gradient,不支持linear-gradient。鏈接描述
回答2:用CSS可以實(shí)現(xiàn):1、做一個(gè)空的正方形的p;2、將p的偽元素after和before設(shè)置為p的一半高和一樣寬,這樣就相當(dāng)于在p里上下各有一個(gè)半高的塊元素;3、分別根據(jù)需要的顏色設(shè)置這after和before的漸變;4、通過(guò)這是border-radius將after和before設(shè)置成半圓;5、在p正中間放置一個(gè)小一點(diǎn)塊元素,通過(guò)border-radius設(shè)置成圓。
示例如下:HTML
<p class='loading'><p class=’loading-indicator’><i></i></p>
CSS
.loading { position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: #eee}.loading-indicator { position: absolute; top: 50%; left: 50%; margin-left: -25px; margin-top: -25px; width: 50px; height: 50px;}.loading-indicator:before { content: ''; display: block; width: 50px; height: 25px; padding-bottom: 0; box-sizing: border-box; border-top-left-radius: 25px; border-top-right-radius: 25px; background: -webkit-linear-gradient(0deg, #999, #bbb);}.loading-indicator:after { content: ''; display: block; width: 50px; height: 25px; padding-top: 0; box-sizing: border-box; border-bottom-left-radius: 25px; border-bottom-right-radius: 25px; background: -webkit-linear-gradient(0deg, #eee, #bbb);}.loading-indicator>i { display: block; position: absolute; width: 40px; height: 40px; background: #eee; top: 5px; left: 5px; border-radius: 20px;}
如果需要的話還可以再加上動(dòng)畫(huà)。
PS:還有一種利用background-clip替代中間那個(gè)i元素的方法。但是這種方法在android的微信上有問(wèn)題,中間不是圓的。
回答3:codepen源碼 鏈接描述效果如下,會(huì)有轉(zhuǎn)圈效果,顏色也是一直在變。
可以用CSS3和漸變慢慢調(diào)整顏色,看看能不能盡可能得還原
回答5:比較麻煩。
實(shí)現(xiàn)圓環(huán)還是簡(jiǎn)單的,麻煩的是漸變。css3的漸變要么是沿著直線的方向的線性漸變,要么是從圓心向外一圈一圈的徑向漸變,還沒(méi)有沿著圓弧方向的漸變。
也許用svg可以實(shí)現(xiàn),沒(méi)試過(guò)不知道了。
回答6:css3可以
相關(guān)文章:
1. docker 下面創(chuàng)建的IMAGE 他們的 ID 一樣?這個(gè)是怎么回事????2. 在應(yīng)用配置文件 app.php 中找不到’route_check_cache’配置項(xiàng)3. html按鍵開(kāi)關(guān)如何提交我想需要的值到數(shù)據(jù)庫(kù)4. mysql取模分表與分表5. gvim - 誰(shuí)有vim里CSS的Indent文件, 能縮進(jìn)@media里面的6. HTML 5輸入框只能輸入漢字、字母、數(shù)字、標(biāo)點(diǎn)符號(hào)?正則如何寫(xiě)?7. 跟著課件一模一樣的操作使用tp6,出現(xiàn)了錯(cuò)誤8. PHP類屬性聲明?9. objective-c - ios 怎么實(shí)現(xiàn)微信聯(lián)系列表 最好是swift10. java - 安卓接入微信登錄,onCreate不會(huì)執(zhí)行
