您好,登錄后才能下訂單哦!
使用css3怎么實現一個LED 數字時鐘?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
css是一種用來表現HTML或XML等文件樣式的計算機語言,主要是用來設計網頁的樣式,使網頁更加美化。它也是一種定義樣式結構如字體、顏色、位置等的語言,并且css樣式可以直接存儲于HTML網頁或者單獨的樣式單文件中,而樣式規則的優先級由css根據這個層次結構決定,從而實現級聯效果,發展至今,css不僅能裝飾網頁,也可以配合各種腳本對于網頁進行格式化。
<div class="digital digital_0"> <span class="c1"></span> <span class="c2"></span> <span class="c3"></span> <span class="l1"></span> <span class="l2"></span> <span class="r1"></span> <span class="r2"></span> </div>
至于 digital_0 這個的作用,其實很簡單,就是控制從 0 ~ 9 這十個數字的變化而存在的。
.digital_1 .c1, .digital_1 .c2, .digital_1 .c3, .digital_1 .l1, .digital_1 .l2, .digital_2 .l1, .digital_2 .r2, .digital_3 .l1, .digital_3 .l2, .digital_4 .c1, .digital_4 .c3, .digital_4 .l2, .digital_5 .l2, .digital_5 .r1, .digital_6 .r1, .digital_7 .c2, .digital_7 .c3, .digital_7 .l1, .digital_7 .l2, .digital_9 .l2, .digital_0 .c2 { animation: changeDigital 200ms 0ms 1 ease-in forwards; }
這里使用了一個 animation 動畫,并且時間是 200ms,主要是為了讓某些部分消失的時候,有一個過渡效果。
@keyframes changeDigital { form { opacity: 1; } to { opacity: 0; } }
那么剩下來的就是最需要耐心的地方了,調整控制那 7 條線的位置,同時還要考慮每條線是帶有斜角的,而且還稍微有點圓弧的感覺。帶點圓弧的感覺那么直接使用 border-radius 就可以了,至于那個斜角的話,如果各位知道 CSS 中用邊框畫三角的方法,那么就應該明白怎么做這個斜角了。
當我們要畫三角的時候,width 和 height 都是為 0,然后用過控制 border-width 而得到最終的三角的大小,那么這里如果我們根據線條的位置,適當選擇 width 和 height 有具體的值,是不是就有斜角的感覺了呢。
接著,需要注意橫著的中間那根線,也就是 .c2 這個元素,線條兩邊是三角突出的,可以實現的方式也很多,這里我選擇使用 :after 和 :before 相疊加。
最后就是對每個元素的位置做調整,控制好大小位置就可以了,因為是使用定位的方式來操作,所以,調整起來還是很簡單的。
.digital span { position: absolute; border-radius: 50vh; box-sizing: border-box; } .digital .c1, .digital .c2, .digital .c3 { height: 0; width: 26px; border-left: 4px solid transparent; border-right: 4px solid transparent; } .digital .c1 { top: 0; left: 0; border-top: 4px solid currentColor; } .digital .c2 { top: 50%; left: 0; margin-top: -2px; } .digital .c2:before, .digital .c2:after { content: ""; height: 0; width: 24px; border-left: 2px solid transparent; border-right: 2px solid transparent; box-sizing: border-box; } .digital .c2:before { position: absolute; top: 0; left: -3px; border-bottom: 2px solid currentColor; } .digital .c2:after { position: absolute; top: 2px; left: -3px; border-top: 2px solid currentColor; } .digital .c3 { bottom: 0; left: 0; border-bottom: 4px solid currentColor; } .digital .l1, .digital .l2 { height: 21px; width: 0; left: 0; border-top: 2px solid transparent; border-bottom: 2px solid transparent; border-left: 4px solid currentColor; } .digital .l1 { top: 1px; border-top-width: 4px; } .digital .l2 { top: 24px; border-bottom-width: 4px; } .digital .r1, .digital .r2 { height: 21px; width: 0; right: 0; border-top: 2px solid transparent; border-bottom: 2px solid transparent; border-right: 4px solid currentColor; } .digital .r1 { top: 1px; border-top-width: 4px; } .digital .r2 { top: 24px; border-bottom-width: 4px; }
做完這些,剩下的就是簡單的對外層元素做點優化,比如稍微傾斜一點。
.digital { position: relative; width: 26px; height: 46px; margin-left: 10px; transform: skew(-6deg); }
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。