整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          CSS 的能量超乎你想象!12 個開源的 CSS 項(xiàng)目竟如此酷炫

          許,你認(rèn)為 CSS 只能用來控制網(wǎng)頁的結(jié)構(gòu)與樣式,但它的功能和應(yīng)用卻超乎你的想象。從逼真的圖像到特效動畫,優(yōu)秀的開發(fā)者利用它已創(chuàng)造了無數(shù)種可能。

          在本文中,我們精選了純 CSS 實(shí)現(xiàn)的濾鏡以及各種效果,與大家分享。它們都是開源的網(wǎng)頁設(shè)計(jì)相關(guān)項(xiàng)目。除了體驗(yàn)之外,有興趣的話,你還可以嘗試來實(shí)現(xiàn)它們。

          1.Solar System

          哇!如果你對太空場景情有獨(dú)鐘,那么一定會被這個 CSS 實(shí)現(xiàn)的太陽系動畫所震撼。作為空間學(xué)與物理學(xué)愛好者,作者參照了太陽系軌道運(yùn)行的真實(shí)時間進(jìn)行設(shè)計(jì),意味著每個行星都有相對地球年的時間,準(zhǔn)確的圍繞太陽公轉(zhuǎn)。

          項(xiàng)目地址:

          https://codepen.io/kowlor/pen/ZYYQoy

          2.Gradient Background Animation

          對于網(wǎng)站性能來說,動畫是眾人皆知的問題引發(fā)者。如果優(yōu)化不佳,它們會直接影響頁面的打開速度。而這個 CSS 實(shí)現(xiàn)的漂亮的漸變動畫,卻相當(dāng)?shù)妮p量,不僅易于編輯,而且支持自定義顏色。

          項(xiàng)目地址:

          https://codepen.io/P1N2O/pen/pyBNzX

          3.Stack Game

          實(shí)現(xiàn)一款簡單的游戲,并不一定需要 JS 的幫助,純 CSS 也能夠創(chuàng)造一款界面漂亮的 Stack 游戲。當(dāng)然,游戲看似容易,背后的設(shè)計(jì)并非那么簡單。

          項(xiàng)目地址:

          https://codepen.io/finnhvman/pen/xJRMJp

          4.3D Progress Bars

          這是一款漂亮、輕量、易于定制的進(jìn)度條開源項(xiàng)目。進(jìn)度條采用 3D 制作,同時擁有清澈的外觀,你甚至可以將它們變成迷你 3D 圖表!

          項(xiàng)目地址:

          https://codepen.io/rgg/pen/QbRyOq

          5.Glitched Text

          故障風(fēng)格的文本總會讓人有眼前一亮的感覺,而這個項(xiàng)目就是純 CSS 實(shí)現(xiàn)的故障效果。如果你想為網(wǎng)站增添酷炫的故障效果,那么不妨多了解下。

          項(xiàng)目地址:

          https://codepen.io/lbebber/pen/ypgql

          6.Francine

          CSS 的能量超乎你想象,你甚至還可以利用它制作出藝術(shù)品效果。Francine 就是一個純 CSS 制作、展示的 18 世紀(jì)風(fēng)格的繪畫作品。或許,你會驚訝 CSS 實(shí)現(xiàn)的效果竟能如此逼真。

          項(xiàng)目地址:

          https://github.com/cyanharlow/purecss-francine

          7.Mobile Phone

          這個項(xiàng)目與《Francine》有異曲同工之處,它僅使用 CSS 和 HTML 便實(shí)現(xiàn)了手機(jī)界面效果,而且效果可以同網(wǎng)站照片相媲美。如果你有興趣,可詳細(xì)的了解其實(shí)現(xiàn)的過程。

          項(xiàng)目地址:

          https://codepen.io/Wujek_Greg/pen/LmrweG

          8.Map Creator

          利用 JS 創(chuàng)造一個簡單的 3D 地圖?不用那么復(fù)雜,純 CSS 就可以搞定。怎么樣,看上去還不錯吧!

          項(xiàng)目地址:

          https://codepen.io/onediv/pen/NrNebj

          9.Instagram.css

          想為你的網(wǎng)站添加一些 Instagram 風(fēng)格的圖片濾鏡效果?那么,純 CSS 實(shí)現(xiàn)的 Instagram 風(fēng)格的濾鏡庫 —— Instagram.css 一定是你的菜。它的靈感來源于 CSSgram.

          項(xiàng)目地址:

          https://picturepan2.github.io/instagram.css/

          10.Animated Gradient Ghost Button

          這是一個純 CSS 實(shí)現(xiàn)的漸變幽靈按鈕。漂亮的動畫和漸變效果,是不是很酷呢?相信,它可以很好的融入到任何網(wǎng)站之中。

          項(xiàng)目地址:

          https://codepen.io/ARS/pen/vEwEPP

          11.Devices.css

          如果你想在網(wǎng)站增添 iPhone X、iPhone 8 等移動設(shè)備用于展示的話,那么一定不要錯過 Devices.css. 它是一個使用了純 CSS 實(shí)現(xiàn)主流移動設(shè)備的庫,并以現(xiàn)代設(shè)備為模版。

          項(xiàng)目地址:

          https://picturepan2.github.io/devices.css/

          12.Dynamic Image Colorizing

          這是一個很酷的純 CSS 實(shí)現(xiàn)的項(xiàng)目。你只需要通過電腦自帶的選色器,就能輕松地更換圖像的顏色,來試試吧!

          項(xiàng)目地址:

          https://codepen.io/noahblon/pen/ZbjmbK

          最后

          利用 JS,我們能實(shí)現(xiàn)各種讓人驚嘆的頁面/動畫效果,但 JS 并不是最輕量的解決方案。如果合理使用 CSS,你依然可以實(shí)現(xiàn)一些炫酷的效果,并且它對性能的影響會小得多。當(dāng)然,無論你使用哪種方式(JS or CSS),你都可以創(chuàng)造出創(chuàng)意且有趣的作品。

          以上的作品,你最喜歡哪一個?歡迎評論與我們分享。


          感謝你的閱讀。若你有所收獲,歡迎點(diǎn)贊與分享。

          注:

          1. 本文版權(quán)歸原作者所有,僅用于學(xué)習(xí)與交流;
          2. 如需轉(zhuǎn)載譯文,煩請按下方注明出處信息,謝謝!

          英文原文:12 Incredible Pure CSS Experiments

          作者:Brenda Stokes Barron

          譯者:IT程序獅

          譯文地址:

          https://zhuanlan.zhihu.com/p/58424141

          ss是前端領(lǐng)域的一個難纏戶,一提到css,沒有人會說難,也沒有人愿意承認(rèn)自己不會寫,甚至在面試的過程中css相關(guān)的內(nèi)容都很少提及,足以說明大家對css的不重視。你真的會寫css嗎?

          關(guān)于css有兩類問題值得我們重視:樣式和工程。樣式問題指的是具體的效果實(shí)現(xiàn),能否實(shí)現(xiàn)某個效果,同一個效果有多種實(shí)現(xiàn)方式,如何抉擇;工程問題是如何在大型項(xiàng)目中寫出可維護(hù)性、可讀的css。

          在各種論壇中經(jīng)常看到關(guān)于css是否是一門編程語言的爭論。在我看來,最好用對待編程語言的態(tài)度來看待css,不要忽視css,否則,在項(xiàng)目后期,你會發(fā)現(xiàn),你的css越來越混亂,important會越來越多,不同位置的類名互相沖突覆蓋,改一個類的樣式,要檢查整個項(xiàng)目的頁面是否受到影響,項(xiàng)目內(nèi)部的css共享完全依賴拷貝……從這個角度來說,你敢說css不是編程語言?它完全有了像編程語言一樣能把你搞得焦頭爛額的能力。而這一切都來源于你在一開始對她的忽視與不屑。出來混,總要還的啊!

          css的問題

          盲目的定義基礎(chǔ)樣式

          在項(xiàng)目開始之初,拿到UI設(shè)計(jì)稿,信心滿滿地開始定義css的全局基礎(chǔ)樣式,謝天謝地,css對這一點(diǎn)支持得很徹底,一處定義,所有頁面都可以引用。

          先來一個color-red。

          .color-red {
          	color: red
          }

          這樣,在整個項(xiàng)目中,都可以給任意元素添加一個color-red類,美滋滋,我真是個小機(jī)靈鬼!

          幾個迭代過去,你已經(jīng)把color-red這面紅旗插滿了整個項(xiàng)目。UED說,咱們改個版,所有紅色的文本改為藍(lán)色,紅色的link不變!

          嗶!——(你發(fā)出的聲音)

          你又得屁顛屁顛地把一個一個的紅旗拔出來,再插上藍(lán)色的旗子(因?yàn)槟悴桓也桓裳剑?/p>

          命名沖突

          在一個頁面,你定義了一個.header,寫了個完美的特效,發(fā)布到dev一看,就是不管用,橫看豎看,本地是好的啊,神奇(生氣)!過了若干時間的排查,另一個同事在另一個地方也寫了一個.header,完美的覆蓋了你的。把你頭打歪!

          編輯器可不會提醒你哦!

          慢慢你會發(fā)現(xiàn),這種命名沖突可太頻繁了呀!頭大,要不要用上css modular啊?

          子類覆蓋

          有的小伙伴聰明地將類名嵌套定義,這就不會沖突了吧?嘿嘿,你想多了!

          /* in article.css */
          .article .title {
            border-bottom: 1px solid;
            font-size: 1.5em;
          }
          
          /* in widget.css */
          .widget .title {
            color: gray;
            text-transform: uppercase;
          }

          如果在dom樹里面,article和widget在一棵樹的路徑上,你說title是沖突呢還是不沖突呢?

          以上的這些問題,在項(xiàng)目中相信大家都遇見過,并且項(xiàng)目越大,出現(xiàn)的概率就越高,最后就會演變成一座[屎]山。

          “大家都別動,牽一發(fā)而動全身哦!”

          “這就是蝴蝶效應(yīng)吧???”

          認(rèn)識BEM

          難道css這些問題就沒法解決了嗎?當(dāng)然不是,我們來看看大神們是如何解決這些問題的。

          BEM是Block、Element、Modifier的縮寫,是一個類命名的規(guī)范。

          首先我們來看一個例子:

          /* Block */
          .btn {}
          
          /* Element that depends upon the block */ 
          .btn__price {}
          
          /* Modifier that changes the style of the block */
          .btn--orange {} 
          .btn--big {}

          相信小伙伴們已經(jīng)有了一個初步的認(rèn)知:

          Block是一個獨(dú)立的組件(元素),定義的了“組件是什么,按鈕?還是菜單?”。

          Element是屬于Block,是依賴于Block的元素,描述的是“Block里面的什么?比如,文本?圖標(biāo)?”

          Modifier用于描述Block或者Element的外在表現(xiàn),比如大小、顏色、狀態(tài)等。

          看一個例子:

          <form class="search-form search-form_theme_islands">
              <input class="search-form__input">
              <button class="search-form__button search-form__button_size_m">Search</button>
          </form>

          search-form是Block;

          search-form_theme_islands是Modifier,描述了theme為islands的search-form;

          search-form__input是Element,描述的是search-form內(nèi)部的input元素;

          search-form__button是Element,描述的是search-form內(nèi)部的button元素;

          search-form__button_size_m是Modifier,描述的是size為m的search-form__button;

          這樣寫css是不是非常的清晰?瞬間就提高了可讀性和可維護(hù)性?

          概念如此簡單,還不趕緊多了解一下?

          另外,可能有些小伙伴也注意到了,Block和Element使用雙下劃線分隔,和Modifier是用中劃線分隔,這也不是一成不變的,可以按照自己的喜好來決定如何分割。

          Saas、Css Module

          有些小伙伴可能會有疑問,BEM和Saas、Css Module有什么區(qū)別?解決的問題是一樣的嗎?

          Sass是css的預(yù)處理器,在寫css的時候定義了一套規(guī)范,經(jīng)過編譯處理后輸出為css,和BEM是兩個不同的概念。使用saas或less也能實(shí)現(xiàn)BEM。BEM其實(shí)是不推崇類名的嵌套定義的,如果想像sass那樣嵌套的寫出標(biāo)準(zhǔn)的BEM,可以使用@at-root。

          Css Module解決的問題是多個模塊的css的命名沖突問題,個人覺得是傻瓜式解決方案,在應(yīng)用層的css-in-js應(yīng)用比較多,適合css入門選手。要想寫好css,還是得從根本上入手呀!

          言:

          最近在 GitHub 上發(fā)現(xiàn)了一個 vanillawebprojects[1] 開源倉庫,里面收集了 20 個 JavaScript+Html+CSS的練手項(xiàng)目,沒有使用任何框架,可以讓你從基礎(chǔ)入門到深入學(xué)習(xí)。這些項(xiàng)目原本是 Udemy20 Web Projects With Vanilla JavaScript 課程的一部分,但是如果你已經(jīng)擁有了一些基礎(chǔ),不妨試著看一下源碼,然后模仿實(shí)現(xiàn)吧

          1. Form Validator 表單驗(yàn)證

          判斷輸入的表單字段是否合法


          2. Movie Seat Booking 預(yù)定電影座位

          一個簡單的電影座位預(yù)定演示項(xiàng)目


          3. Custom Video Player 定制視頻播放器

          一個簡單的網(wǎng)頁視頻播放器


          4. Exchange Rate Calculator 匯率計(jì)算器

          計(jì)算不同貨幣的兌換匯率


          5. DOM Array Methods Project DOM 數(shù)組方法

          練習(xí)如何操作 DOM 數(shù)組


          6. Menu Slider & Modal 動態(tài)菜單以及彈窗

          練習(xí)如何彈出登錄注冊窗口,以及滑動彈出菜單


          7. Hangman Game 字符偵探游戲

          練習(xí)如何判斷隱藏字符是否正確


          8. Mealfinder App 點(diǎn)餐應(yīng)用

          簡單的點(diǎn)餐查詢應(yīng)用


          9. Expense Tracker 購物結(jié)算應(yīng)用

          簡單的購物車結(jié)算應(yīng)用


          10. Music Player 音樂播放器

          簡單的網(wǎng)頁音樂播放器


          11. Infinite Scrolling 網(wǎng)頁無限滾動演示

          網(wǎng)頁無限向下滾動實(shí)現(xiàn)


          12. Typing Game 打字游戲

          簡單的打字輸入游戲


          13. Speech Text Reader 文本閱讀器

          文本閱讀器


          14. Memory Cards 記憶卡片

          測試記憶的記憶卡片


          15. LyricsSearch App 歌詞搜索應(yīng)用

          網(wǎng)頁歌詞搜索器


          16. Relaxer App 休閑呼吸應(yīng)用

          模擬呼吸的節(jié)奏


          17. Breakout Game 彈跳破冰游戲

          簡單的網(wǎng)頁破冰游戲


          18. New Year Countdown 新年倒計(jì)時

          網(wǎng)頁新年倒計(jì)時


          19. Sortable List 榜單應(yīng)用

          網(wǎng)頁財(cái)富榜單


          20. Speak Number Guessing Game 猜數(shù)字游戲

          說出數(shù)字,猜測數(shù)字


          今天我們給大家分享了,20 個 JavaScript+Html+CSS 練手小項(xiàng)目,大家覺得哪個最簡單,哪個最復(fù)雜呢?趕緊去 Github 倉庫拉取項(xiàng)目,碼上行動吧

          歡迎關(guān)注公眾號:KnowHub 知識加油站!

          參考資料

          [1]

          vanillawebprojects: https://github.com/bradtraversy/vanillawebprojects


          主站蜘蛛池模板: 在线精品视频一区二区| 日韩一区二区三区射精| 久久精品亚洲一区二区| 无码人妻久久久一区二区三区 | 麻豆AV天堂一区二区香蕉 | 麻豆精品久久久一区二区| 99精品久久精品一区二区| 中文字幕一区在线观看| 国产一区二区三区夜色| 欧洲精品码一区二区三区免费看 | 亚洲AV无码一区二区三区系列 | 人妻AV一区二区三区精品 | 一区二区三区福利视频免费观看| 久久精品一区二区国产| 91久久精品午夜一区二区| 免费无码A片一区二三区| 天天看高清无码一区二区三区| 亚洲中文字幕丝袜制服一区| 国产免费播放一区二区| 亲子乱AV视频一区二区| 韩国一区二区视频| a级午夜毛片免费一区二区| 韩国理伦片一区二区三区在线播放| 视频一区二区在线播放| 日韩中文字幕一区| 国产AV午夜精品一区二区入口| 日本一区二区三区在线看| 久久精品亚洲一区二区三区浴池 | 国产小仙女视频一区二区三区| 国产成人片视频一区二区| tom影院亚洲国产一区二区 | 亚洲日本一区二区三区| 国产成人精品一区二区三区| 久久久久久人妻一区二区三区 | 色综合视频一区二区三区44| 免费精品一区二区三区第35| 一区二区三区免费电影| 一区在线免费观看| 日本精品一区二区久久久| 国产精品一区视频| 91香蕉福利一区二区三区|