小身材大用途,用PrimusUI駕馭你的頁面

2021-09-08 11:53:41 字數 3707 閱讀 2417

「primusui

每個功能塊的css**都很少,力求簡單易懂,低門檻,**可根據自己實際情況輕易修改,改到符合自己場景為止。

之所以重複造輪子,有以下幾點原因:

1)現今開發很多時候講究效率,給你很短的時間,完成很多的內容。

如果不備點存貨,那只能加班加點的趕進度。

2)由於是加班加點趕出來的專案,百分百會有各種問題,相容性啊、功能性啊、與設計圖偏差。

如果碰到挑細節的測試或領導,搞不好就要讓你1畫素1畫素的調介面了。

3)如果有套經歷過沉澱的ui庫,那麼能夠通過樣式元件,快速搭建頁面,並且相容性等各方面都***。

開發的時候只要關注各個頁面中的細節即可,從容的寫**。

4)網上的很多開源庫都比較大,當需要在實際專案中使用的時候,可能就需要修改部分**。

正因為比較大,改動的時候就比較費勁。

5)很多開源庫都做些精細的雕琢,但自己公司的ui設計可能並不喜歡這種風格。

這樣他們設計出來的頁面會與那些庫不一致,就會出現第4種的情況。

6)寫一套自己的ui庫,可以提公升自己的想象空間,激發創造力。

css3提供了很多新特性,但平時可能都沒用到,不是不想用,而是想不到該如何用,例如偽元素、彈性布局等。

7)開發的過程也是學習和實踐的過程,將平時看到的,用到的,組合到一起,做了以後才會看到問題,再解決實際問題。

古人說的絕知此事要躬行還是很有道理的。

8)整套ui庫,其實更可以把其看成是套骨架,一套你可以隨意修改的骨架,要血肉豐滿可以自己動手,這樣更有成就感。

這裡只是分享一下思路,拋鑽引玉。

現在前端開發與以前不同了,以前只要個帶顏色的文字編輯器,乙個瀏覽器即可。

現在前端專案也越來越大,也需要管理配置。

1)工程搭建

本次開發使用了構建工具「gulp

」,基於流的構建工具。利用「node.js」豐富的包管理,可以將各種外掛程式收入囊中。

如果不熟悉這個玩意兒,可以參考一下我以前寫的一篇小教程《前端自動化構建工具gulp記錄

》。也可以參考primusui

庫的文件中《安裝

》與《外掛程式

2)css開發

css現在也可以預編譯了,sass

就是一種,有了預編譯,寫css也可以模組化開發,並且能夠自動打包。

預編譯可以使用gulp中的外掛程式「gulp-sass

」,在那篇兩教程中有提到過。

還裝了瀏覽器屬性相容外掛程式,rem自動計算外掛程式等。

3)頁面自適應

借助flexible.js

, 通過計算html中的font-size(用於計算rem),設定viewport的放大倍數,來實現移動自適應。

4)文件庫編輯

說明的文件庫是很有必要的,讓人更有感性的認識。

文件庫是用jekyll

編寫的,這是乙個靜態**生成器,前面一段時間也整理過兩篇小教程,《安裝與配置

》和《實際應用

所有的檔案就如上圖所示,下面就介紹下css的開發過程,demo展示頁面與文件編輯就直接略過了。

1)rem

rem(font size of the root element)是指相對於根元素的字型大小的單位。 

庫中大部分都用了這個單位,這樣能做更好的適配。但字型、邊框等使用了px單位。

由於要計算,如果手工算的話,那要累成狗了,所以可以使用「gulp」中的外掛程式「postcss-px2rem

」自動計算。

2)網格(grid.scss)

在做網格之前,曾經看過bootstrap

中的網格**,就是用float加百分比寬度,或px定寬實現的。

但移動端的話,這麼寫還不夠,移動端的瀏覽器比pc端的先進,所以可以用更新的css3屬性來實現。

css3中有個彈性布局(flexible),這是個好東西,可以自動計算寬度的,非常適合手機螢幕。

由於手機螢幕尺寸很多,很多情況下不能寫死,即使用百分比,某種角度來說,還是寫死的。

彈性布局還有個好處,那就是對齊,我以前碰到過兩個字型大小不一樣,但是要在同一行底部對齊,當時做起來很費勁。

而使用彈性布局只要乙個屬性即可,我在這個css模組中,封裝了多種對齊樣式。

如果對這個還比較陌生,可以參考下前面寫的一篇小教程《css3伸縮盒flexible box

》用網格可以輕易實現元素位置的擺放,而不像以前要用float、position來做布局,列表、布局、表單的實現就需要與網格的協作。

3)預編譯

css**用了預編譯

,就和開發伺服器**差不多了,下面幾個檔案裡面放的就是全域性會用到的mixin、變數或函式。

預編譯有很多優點:

1. 減少**,預編譯中有條件判斷和迴圈,這樣能組織更多的邏輯,還能復用。

@for $col from 1 through 12  }
2. 變數的定義,能夠使得值更有語義。

3. 巢狀語法,可以讓css更有層次,一眼就能看出父級是誰,不像以前還得寫一長串。

.ui-flex }
4. 混合(mixin)與函式(function)可以將通用的邏輯或**提煉出來,能更好的復用。

5. css也可以做模組化,通過「@import」引用不同的功能塊,適應不同的場景。

」雖然**量不多,但製作過程還是挺有勁的,雖然在使用sass、jekyll與gulp的時候有點學習成本,但都是非常輕量的。

會用了以後能夠做很多事情,方便開發,提公升效率。希望這個庫對大家平時的開發會有幫助。

github

的專案頁面用英文寫了些介紹,更接地氣點。

小小列表大用途(python)

列表 有點像陣列,可以存放多種型別資料,可以巢狀使用,就是多維陣列 可以從末尾開始索引比如從 1開始 運算子可以操作 namelist 空列表 list shangguan hao 19 保持原型別,可以迴圈列印 len 可以得到列表長度 print hello list 0 print list ...

工具用途 見微知著,小工具大用途!

為什麼同乙個飲品,店家做的嘗起來如此美味。拿到配方後自己做的不是甜了就是酸了呢?相信很多朋友都有這種疑惑。但真相往往就會在不經意間被忽視,很多初學者並沒有老師傅那樣的熟練手感,可以做到信手拈來的程度。當沒有那些量勺,量筒,量杯這些平時都不以為然的小工具輔助時,只憑感覺配料的成果,肯定沒有經過電子克秤...

Linux中小小 grep 命令 大用途

鑑於grep命令引數之多,功能之強大,我這裡僅僅提及幾個常用的使用方法。一 我想搜尋指定檔案中的字串 333 在終端敲入命令 root linux virtualbox grep 333 a.txt b.txt a.txt 333 b.txt 333 b.txt 333 二 我想搜尋當前資料夾中的所...