摘要:現(xiàn)在回到我們這一章節(jié)的標(biāo)題,將它做下補(bǔ)充關(guān)于那些事四之基于構(gòu)架基礎(chǔ)樣式庫(kù)基礎(chǔ)庫(kù)構(gòu)思為什么要做基礎(chǔ)庫(kù)我上一章節(jié)的末尾拋出了幾個(gè)問(wèn)題假設(shè)你要做一個(gè)游戲單頁(yè)面,網(wǎng)頁(yè)上并不存在表單內(nèi)容,那么你就要移除一些冗余的代碼,開(kāi)始自定義樣式來(lái)滿足自己的需求。
前言
先來(lái)回顧一下前幾章節(jié),我們都說(shuō)了哪些內(nèi)容:
CSS Reset 歷史 與 Normalize.css 介紹
Normalize.css 源碼解讀
Normalize-zh.css 出爐
圍繞著CSS Reset這個(gè)話題我們已將講了3章節(jié),從中了解到CSS Reset的作用,Normalize.css的優(yōu)勢(shì),以及它是如何幫我修復(fù)跨瀏覽器的兼容性問(wèn)題的;
這一章節(jié)內(nèi)容會(huì)弱化CSS Reset的主題,不是因?yàn)檫@章節(jié)與CSS Reset無(wú)關(guān)了,而是因?yàn)槲覀円谒U(kuò)展更多的內(nèi)容,來(lái)幫助我們解決實(shí)際開(kāi)發(fā)中更多的問(wèn)題。
現(xiàn)在回到我們這一章節(jié)的標(biāo)題,將它做下補(bǔ)充:
CSS 基礎(chǔ)庫(kù)構(gòu)思 為什么要做基礎(chǔ)庫(kù)《關(guān)于CSS Reset 那些事(四)之 基于CSS Reset 構(gòu)架CSS基礎(chǔ)樣式庫(kù)》
我上一章節(jié)的末尾拋出了幾個(gè)問(wèn)題:
1.假設(shè)你要做一個(gè)游戲單頁(yè)面,網(wǎng)頁(yè)上并不存在表單內(nèi)容,那么你就要移除一些冗余的代碼,開(kāi)始自定義Normalize.css樣式來(lái)滿足自己的需求。
2.假設(shè)你要做一份文案策劃的網(wǎng)頁(yè),包含很多文字排版時(shí),此時(shí)Normalize.css也許并不完全適合你,因?yàn)樗哪J(rèn)字體設(shè)置和排版布局可能不能滿足你的要求。
3.假設(shè)你要做一個(gè)企業(yè)類(lèi)型的網(wǎng)站,并考慮跨瀏覽器兼容性,網(wǎng)站包含內(nèi)容元素也很豐富,那么你可以選擇使用Normalize.css來(lái)統(tǒng)一你的瀏覽器樣式,但是它僅僅幫助我們解決了樣式統(tǒng)一的問(wèn)題是不夠的,你是不是還要設(shè)計(jì)一套布局系統(tǒng),來(lái)解決該網(wǎng)站的布局問(wèn)題呢?
從以上幾個(gè)問(wèn)題可以看出,在構(gòu)建大型網(wǎng)站的時(shí)候,我們可以把Normalize.css作為基礎(chǔ)樣式,然后根據(jù)不同的頁(yè)面需求,進(jìn)行添加樣式覆蓋它。
但是這只是我們的第一步,關(guān)于網(wǎng)頁(yè)開(kāi)發(fā)中更多的基礎(chǔ)解決方案還有很多,比如剛剛說(shuō)的布局系統(tǒng),或許你還會(huì)用到很多常用的CSS問(wèn)題解決方法,如浮動(dòng)和清除浮動(dòng),自適應(yīng)兩端對(duì)其等等。
那么下一節(jié),我們就來(lái)分析一下CSS 基礎(chǔ)庫(kù)到底包含什么內(nèi)容?
什么是基礎(chǔ)庫(kù)我認(rèn)為基礎(chǔ)樣式庫(kù) 始終 能幫我們解決開(kāi)發(fā)時(shí)遇到的一些基礎(chǔ)性問(wèn)題:
如瀏覽器樣式不統(tǒng)一,需要重置樣式;
如基礎(chǔ)表單樣式過(guò)于難看不易操作,需要優(yōu)化其樣式;
如布局樣式需要重復(fù)編寫(xiě),需要一套穩(wěn)定復(fù)用的解決方案;
如一些樣式的浮動(dòng),對(duì)齊操作,需要統(tǒng)一管理起來(lái)進(jìn)行多次復(fù)用;
如常見(jiàn)的CSS動(dòng)畫(huà)效果,需要統(tǒng)一起來(lái)管理方便復(fù)用;
如一些常用的圖標(biāo),需要一套可復(fù)用的字體圖標(biāo);
如需要打印,提供一套更為合理的打印樣式
基礎(chǔ)庫(kù)初衷和未來(lái)方向:
最大程度減少開(kāi)發(fā)難度
提供簡(jiǎn)潔高效開(kāi)發(fā)體驗(yàn)
趨于模塊化樣式構(gòu)建規(guī)范
做為未來(lái)UI組件庫(kù)核心基礎(chǔ)
始終站在巨人肩上
基礎(chǔ)庫(kù)的結(jié)構(gòu)normal.css [基于Normalize.css自定義模塊,繼承其優(yōu)勢(shì),改善文字與部分細(xì)節(jié)] html5.css [html5樣式修復(fù),默認(rèn)會(huì)導(dǎo)入normal.css,可按需引用] form.css [表單的一些基礎(chǔ)樣式,可按需引用] grid.css [響應(yīng)式網(wǎng)格系統(tǒng),優(yōu)化命名與精簡(jiǎn)代碼,可按需引用] utils.css [HTML中直接使用的工具類(lèi),可按需引用] iconfont.css [一套復(fù)用率極高的字體圖標(biāo),可按需引用] animate.css [常用的動(dòng)畫(huà)效果組合,可按需引用] print.css [優(yōu)化默認(rèn)的打印樣式,可按需使用]
我們按照需求,初步劃分了基礎(chǔ)樣式庫(kù)的結(jié)構(gòu),起初html5.css的內(nèi)容是考慮直接放在normal.css里面的,但是為了考慮一部分人在頁(yè)面中使用了像html5shiv的解決方案來(lái)兼容低版本瀏覽器,所以這里就體現(xiàn)出了分模塊的便捷性,拆分為一個(gè)獨(dú)立的css文件,需要時(shí)再進(jìn)行使用,不過(guò)這里默認(rèn)使用@import "html5.css"進(jìn)行導(dǎo)入只是為了預(yù)覽調(diào)試,請(qǐng)?jiān)趯?shí)際使用中將代碼拷貝至normal.css,或者使用yuicompressor進(jìn)行壓縮合并后再使用。
下一節(jié)我們來(lái)細(xì)化基礎(chǔ)樣式庫(kù)的內(nèi)容,看一看它都需要幫我們做哪一些事情。
CSS 基礎(chǔ)庫(kù)內(nèi)容 樣式重置方案 normal.cssNormalize.css不僅統(tǒng)一了樣式,還保留元素的可辨識(shí)性,這是我們應(yīng)該繼承和發(fā)揚(yáng)的優(yōu)點(diǎn),normal.css也會(huì)參考借鑒Normalize.css所有優(yōu)勢(shì),不過(guò)為了讓其更簡(jiǎn)潔,讓開(kāi)發(fā)者更容易上手,我選擇對(duì)它進(jìn)行瘦身,比如移除一些不會(huì)用到的元素標(biāo)簽hgroup,將一些元素進(jìn)行分模塊管理,比如html5.css,form.css等,方便按需求靈活引用。
normal.css 包含內(nèi)容以及調(diào)整部分
字體約定62.5%,方便單位轉(zhuǎn)換
統(tǒng)一元素的內(nèi)外邊距
設(shè)置全局字體,修復(fù)表單元素不繼承父級(jí)font的問(wèn)題
添加鏈接基本樣式
移除列表元素的默認(rèn)標(biāo)識(shí)
移除元素默認(rèn)邊框
移除鏈接默認(rèn)的下劃線
移除單元格間距讓其邊重合
修復(fù)th不繼承text-align,默認(rèn)左對(duì)齊
重置標(biāo)題,采用自定義
把所有斜體標(biāo)簽?zāi)J(rèn)扶正
統(tǒng)一引用標(biāo)記
統(tǒng)一上標(biāo)和下標(biāo)
HTML5元素 html5.csshtml5.css主要是用于解決html5新元素在舊瀏覽器中的不識(shí)別,并且修復(fù)一些元素存在的隱性問(wèn)題。
但是為什么不把html5.css這部分內(nèi)容直接放入normal.css,而是考慮將其進(jìn)行分模塊管理呢? 是為了考慮一部分人在頁(yè)面中已經(jīng)使用了像html5shiv的解決方案來(lái)兼容低版本瀏覽器,所以這里就體現(xiàn)出了分模塊的靈活性,拆分為一個(gè)獨(dú)立的css文件,需要時(shí)再進(jìn)行使用。
不過(guò)這里默認(rèn)使用@import "html5.css"進(jìn)行導(dǎo)入只是為了預(yù)覽調(diào)試,請(qǐng)?jiān)趯?shí)際使用中將代碼拷貝合并至normal.css,或者使用yuicompressor,Grunt進(jìn)行壓縮合并后再使用。
html5.css 包含內(nèi)容以及調(diào)整部分
修復(fù)HTML5新元素不能正確顯示的問(wèn)題
修復(fù)progress元素的對(duì)其問(wèn)題
修復(fù)沒(méi)有controls屬性的audio顯示出來(lái)
修復(fù)hidden屬性不起作用的問(wèn)題
修復(fù)svg元素overflow不正常的問(wèn)題
統(tǒng)一mark標(biāo)簽的樣式
修復(fù)拖動(dòng)元素添加拖動(dòng)的光標(biāo)
表單元素 form.cssform.css修復(fù)表單元素在不同瀏覽器下的默認(rèn)樣式,尤其是IE低瀏覽器版本下的一些怪異問(wèn)題;并且還修復(fù)了一些表單顯示狀態(tài),致力于提升用戶體驗(yàn);
button按鈕在網(wǎng)頁(yè)中是最常用的基礎(chǔ)元件,但是不同瀏覽器下按鈕的默認(rèn)樣式千奇百怪,而且表現(xiàn)形式過(guò)于單一,所以考慮在form.css里內(nèi)置了一套按鈕組件,提供幾種表現(xiàn)場(chǎng)景,并且可以和下面要介紹的iconfont.css搭配使用。
form.css 包含內(nèi)容以及調(diào)整部分
統(tǒng)一fieldset元素的顯示樣式
修復(fù)"legend"元素的若干問(wèn)題
修復(fù)表單元素字體與字號(hào)不繼承的問(wèn)題
統(tǒng)一表單元素的垂直對(duì)其方式
統(tǒng)一表單元素的overflow屬性為visible
重置按鈕禁用時(shí)光標(biāo)樣式
修復(fù)checkbox,radio的屬性box-sizing: border-box;
統(tǒng)一button,input內(nèi)邊距和內(nèi)邊框
統(tǒng)一select的樣式
修復(fù)textarea只能為縱向拉伸
ui-btn 按鈕組件包含的內(nèi)容
初始化默認(rèn)按鈕樣式,增加不同狀態(tài)下的效果
提供多種場(chǎng)景按鈕,如主要,警告與錯(cuò)誤
提供可定制的大小按鈕,如較小,更小,一般,較大,更大
提供組合式按鈕
支持iconfont.css,搭配圖標(biāo)按鈕使用
使用示例
柵格系統(tǒng) grid.css
借鑒了Bootstrap的一套響應(yīng)式流式柵格布局系統(tǒng),隨著屏幕或視口(viewport)尺寸的增加,系統(tǒng)會(huì)自動(dòng)分為最多12列。
對(duì)柵格系統(tǒng)的樣式命名進(jìn)行重新組織,簡(jiǎn)化和移除工具代碼,只保留核心布局樣式。
簡(jiǎn)潔即是高效率。
grid.css 包含內(nèi)容以
.ui-grid-container(固定寬度)和.ui-grid-fluid(100%寬度)用于包裹.ui-row
.ui-grid-container(固定寬度)通過(guò)媒體查詢來(lái)實(shí)現(xiàn)響應(yīng)式寬度
.ui-row用于包裹一組.ui-col-1-.ui-col-12列
xs,sm,lg通過(guò)媒體查詢來(lái)實(shí)現(xiàn)響應(yīng)式
.ui-col-xs-* 超小屏幕 手機(jī) (<768px)
.ui-col-sm-* 小屏幕 平板 (≥768px)
.ui-col-* (默認(rèn))中等屏幕 桌面顯示器 (≥992px)
.ui-col-lg-* 大屏幕 大桌面顯示器 (≥1200px)
支持列嵌套,必須包裹在.ui-row行中
簡(jiǎn)化代碼,不支持列偏移,列排序
使用示例
輔助工具 utils.css.ui-col-8.ui-col-8
提供最常用的功能類(lèi)class,命名使用fn-前綴來(lái)進(jìn)行區(qū)別表示,如果在項(xiàng)目中能夠靈活復(fù)用這些類(lèi),那將大大提升開(kāi)發(fā)效率。
utils.css 包含內(nèi)容以及調(diào)整部分
浮動(dòng)元素與清楚浮動(dòng)元素
垂直與水平滾動(dòng)
元素顯示類(lèi)型
元素與文本隱藏
文本不換行
文本強(qiáng)制換行
文本溢出顯示省略號(hào)
文本左右對(duì)齊
文本垂直對(duì)齊
常用符號(hào)(關(guān)閉,箭頭,下三角等)
自適應(yīng)兩端對(duì)齊
未知高度垂直居中
列表平鋪
使用示例
字體圖標(biāo) iconfont.css文字那是相當(dāng)?shù)拈L(zhǎng)
iconfont都已經(jīng)很熟悉了,是一種把圖標(biāo)放入自定義字體中,然后使用字體圖標(biāo)來(lái)替代普通圖標(biāo)的技術(shù),使用起來(lái)方便靈活。
iconfont.css 包含內(nèi)容以及調(diào)整部分
提供網(wǎng)頁(yè)中66個(gè)最常用的字體圖標(biāo)
可搭配form.css按鈕組件使用
使用示例
動(dòng)畫(huà)庫(kù) animate.css
CSS3的動(dòng)畫(huà)讓網(wǎng)頁(yè)變的更加有活力,所以這里引入一套CSS3動(dòng)畫(huà)庫(kù),可以通過(guò)簡(jiǎn)單的引用類(lèi)名的方式在你的項(xiàng)目中實(shí)現(xiàn)最常見(jiàn)的動(dòng)畫(huà)效果。
animate.css 包含內(nèi)容以及調(diào)整部分
彈跳
閃爍
搖動(dòng)
淡入 (up,down,left,righ)
淡出
滑入 (up,down,left,righ)
滑出
使用示例
打印 print.css淡入效果
可以優(yōu)化打印出的網(wǎng)頁(yè)更適合瀏覽,并且加快打印速度,節(jié)省打印機(jī)耗材。
print.css 包含內(nèi)容以及調(diào)整部分
修復(fù)打印時(shí)的背景和文字顏色
刪除所有的陰影效果
標(biāo)注超鏈接,并顯示URL鏈接
CSS 基礎(chǔ)庫(kù)的產(chǎn)出 項(xiàng)目地址通過(guò)對(duì)以往開(kāi)發(fā)中遇到問(wèn)題的總結(jié),以及對(duì)CSS基礎(chǔ)庫(kù)的需求進(jìn)一步細(xì)化,當(dāng)我們明確的知道需要什么了以后,從參考業(yè)內(nèi)最優(yōu)秀的CSS框架,到提取出能夠解決我們實(shí)際問(wèn)題的代碼;從以往的開(kāi)發(fā)經(jīng)驗(yàn)中整理出最高效復(fù)用的方案,再到一次次的“取之精華去之糟粕”; 最終這篇文章有了產(chǎn)出:
項(xiàng)目名稱:Koala - 更簡(jiǎn)潔高效的基礎(chǔ)樣式庫(kù)
項(xiàng)目版本:alpha(內(nèi)部測(cè)試與學(xué)習(xí)參考使用)
項(xiàng)目地址:https://github.com/Alsiso/Koala
項(xiàng)目交流:New issue
歡迎大家Fork代碼,提出問(wèn)題與意見(jiàn),一起進(jìn)行學(xué)習(xí)交流 ~
最后再說(shuō)明一點(diǎn):當(dāng)前版本并不是正式生產(chǎn)版,所以還不能完全應(yīng)用到項(xiàng)目中,目前僅供學(xué)習(xí)參考使用,部分的細(xì)節(jié)完善和優(yōu)化還在進(jìn)行中,如果你有意見(jiàn)和問(wèn)題,歡迎隨時(shí)聯(lián)系:chyi722到163.com
后續(xù)的擴(kuò)展CSS基礎(chǔ)樣式庫(kù)只是前端解決方案中最小的一個(gè)分支,其實(shí)我們還可以完善更多的內(nèi)容來(lái)幫助解決前端開(kāi)發(fā)中所有的問(wèn)題,就猶如下面這個(gè)表格。
分層 | 結(jié)構(gòu)層+表示層 | 行為層 |
html+css | js | |
基礎(chǔ)庫(kù) | normal/grid/utils/scss擴(kuò)展/ | jquery/base/seajs/ |
組件 | 元件/靜態(tài)組件 | ui組件/業(yè)務(wù)組件 |
模塊 | html/css/js(基礎(chǔ)庫(kù)+組件) |
后續(xù)會(huì)持續(xù)跟進(jìn)完善內(nèi)容,致力于讓前端開(kāi)發(fā)變得更簡(jiǎn)單,高效,穩(wěn)定,也讓我們的工作生活變的像Koala一樣,每天擁有18個(gè)小時(shí)的睡眠時(shí)間~
至此《關(guān)于CSS Reset 那些事》的系列文章已經(jīng)完結(jié)了,感謝大家關(guān)注Alsiso,后續(xù)也會(huì)以這種方式來(lái)分享學(xué)習(xí)成果與方法。
關(guān)于CSS Reset 那些事(一)之 歷史演變與Normalize.css
關(guān)于CSS Reset 那些事(二)之 Normalize.css 源碼解讀
關(guān)于CSS Reset 那些事(三)之 Normalize-zh.css 出爐
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/49597.html
摘要:現(xiàn)在回到我們這一章節(jié)的標(biāo)題,將它做下補(bǔ)充關(guān)于那些事四之基于構(gòu)架基礎(chǔ)樣式庫(kù)基礎(chǔ)庫(kù)構(gòu)思為什么要做基礎(chǔ)庫(kù)我上一章節(jié)的末尾拋出了幾個(gè)問(wèn)題假設(shè)你要做一個(gè)游戲單頁(yè)面,網(wǎng)頁(yè)上并不存在表單內(nèi)容,那么你就要移除一些冗余的代碼,開(kāi)始自定義樣式來(lái)滿足自己的需求。 前言 先來(lái)回顧一下前幾章節(jié),我們都說(shuō)了哪些內(nèi)容: CSS Reset 歷史 與 Normalize.css 介紹 Normalize.css...
摘要:本章節(jié)會(huì)完成所有源代碼翻譯整理,最終會(huì)整理出中文版本并開(kāi)源至供大家交流使用。現(xiàn)已將源代碼開(kāi)源至項(xiàng)目地址源碼解讀上章節(jié)對(duì)與元素,元素,鏈接,語(yǔ)義化文本,內(nèi)嵌元素,群組元素等源碼內(nèi)容已經(jīng)做了解析,這章節(jié)繼續(xù)完成表單,表格部分。 前言 上一章節(jié)我們對(duì)Normalize.css源碼進(jìn)行解析,但是由于其代碼過(guò)長(zhǎng)導(dǎo)致不宜瀏覽,所以表單Forms,表格Table部分內(nèi)容放在此章節(jié)介紹。本章節(jié)會(huì)完成...
摘要:國(guó)內(nèi)各大公司都已經(jīng)投入使用,在一些常見(jiàn)的網(wǎng)站,如淘寶騰訊小米等移動(dòng)站點(diǎn),隨處可見(jiàn)其蹤影。變革之騰訊手機(jī)淘寶的設(shè)計(jì)與實(shí)現(xiàn)前端亂燉適配總結(jié)樣式重置上文已提及,這里推薦閱讀同學(xué)寫(xiě)的專題文章。 前言 CSS代碼難維護(hù)眾所皆知。 為一個(gè)元素設(shè)置樣式的方式可以通過(guò)定義的class、定義的id、元素的標(biāo)簽名、元素的屬性等選擇器以及這些選擇器的組合來(lái)實(shí)現(xiàn); 作用于某個(gè)元素上的樣式又可能來(lái)自單個(gè)樣式規(guī)...
閱讀 1707·2023-04-26 02:30
閱讀 1033·2021-11-10 11:36
閱讀 1380·2021-10-08 10:14
閱讀 3496·2021-09-28 09:35
閱讀 1552·2021-08-23 09:47
閱讀 2544·2019-08-30 15:56
閱讀 1469·2019-08-30 15:44
閱讀 1750·2019-08-30 13:59