CSS優(yōu)點(diǎn)和缺點(diǎn)
創(chuàng)新互聯(lián)長(zhǎng)期為上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為嘉蔭企業(yè)提供專業(yè)的網(wǎng)站制作、做網(wǎng)站,嘉蔭網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
優(yōu)點(diǎn):
1,CSS對(duì)于設(shè)計(jì)者來(lái)說(shuō)是一種簡(jiǎn)單、靈活、易學(xué)的工具,能使任何瀏覽器都聽(tīng)從指令,知道該如何顯示元素及其內(nèi)容
2,個(gè)樣式表可以用于多個(gè)頁(yè)面,甚至整個(gè)站點(diǎn),因此具有更好的易用性和擴(kuò)展性
3,使用CSS樣式表定義整個(gè)站點(diǎn),可以大大簡(jiǎn)化網(wǎng)站建設(shè),減少設(shè)計(jì)者的工作量
缺點(diǎn):
瀏覽器支持的不一致性
2.CSS沒(méi)有父層選擇器
3.不能明確地指定繼承性
4.垂直控制的局限
5.顯示的缺乏
6.缺乏正交性
CSS就是一種叫做樣式表(stylesheet)的技術(shù)。也有的人稱之為層疊樣式表(Cascading Stylesheet)。
在主頁(yè)制作時(shí)采用CSS技術(shù),可以有效地對(duì)頁(yè)面的布局、字體、顏色、背景和其它效果實(shí)現(xiàn)更加精確的控制。
只要對(duì)相應(yīng)的代碼做一些簡(jiǎn)單的修改,就可以改變同一頁(yè)面的不同部分,或者頁(yè)數(shù)不同的網(wǎng)頁(yè)的外觀和格式。
它的作用可以達(dá)到:
(1)在幾乎所有的瀏覽器上都可以使用。
(2)以前一些非得通過(guò)圖片轉(zhuǎn)換實(shí)現(xiàn)的功能,現(xiàn)在只要用CSS就可以輕松實(shí)現(xiàn),從而更快地下載頁(yè)面。
(3)使頁(yè)面的字體變得更漂亮,更容易編排,使頁(yè)面真正賞心悅目。
(4)你可以輕松地控制頁(yè)面的布局 。
(5)你可以將許多網(wǎng)頁(yè)的風(fēng)格格式同時(shí)更新,不用再一頁(yè)一頁(yè)地更新了。你可以將站點(diǎn)上所有的網(wǎng)頁(yè)風(fēng)格都使用一個(gè)CSS文件進(jìn)行控制,只要修改這個(gè)CSS文件中相應(yīng)的行,那么整個(gè)站點(diǎn)的所有頁(yè)面都會(huì)隨之發(fā)生變動(dòng)。
想一想,沒(méi)有使用CSS前我們是如何控制字體的顏色和大小以及所使用的字體的?我們一般使用HTML標(biāo)簽來(lái)實(shí)現(xiàn),代碼非常煩瑣。
很難想象,如果在一個(gè)頁(yè)面里需要頻繁地更替字體的顏色大小,最終生成的HTML代碼的長(zhǎng)度一定臃腫不堪。
說(shuō)實(shí)話,CSS就是為了簡(jiǎn)化這樣的工作誕生的,當(dāng)然其功能決非這么簡(jiǎn)單。
CSS是通過(guò)對(duì)頁(yè)面結(jié)構(gòu)的風(fēng)格控制的思想,控制整個(gè)頁(yè)面的風(fēng)格的。
式樣單放在頁(yè)面中,通過(guò)瀏覽器的解釋執(zhí)行,是完全的文本,任何懂得HTML的人都可以掌握,非常的容易。生殖對(duì)一些非常老的瀏覽器,頁(yè)不會(huì)產(chǎn)生頁(yè)面混亂的現(xiàn)象。
css是樣式編輯的啊 沒(méi)有邏輯 他只是一個(gè)翻譯型語(yǔ)言, 你讓他干什么 他就干什么,比方說(shuō)你上面的代碼 margin-bottom:0px 這個(gè)的意思 你翻譯成中文 你就很好理解了 margin是外邊距,bottom 這個(gè)是下 一起就是下面的外邊距是0 color 這個(gè)是顏色 后面跟著相應(yīng)的顏色代碼
CSS 模塊化重要的是要解決好兩個(gè)問(wèn)題:CSS 樣式的導(dǎo)入和導(dǎo)出。靈活按需導(dǎo)入以便復(fù)用代碼;導(dǎo)出時(shí)要能夠隱藏內(nèi)部作用域,以免造成全局污染。Sass/Less/PostCSS 等前仆后繼試圖解決 CSS 編程能力弱的問(wèn)題,結(jié)果它們做的也確實(shí)優(yōu)秀,但這并沒(méi)有解決模塊化最重要的問(wèn)題。Facebook 工程師?Vjeux?首先拋出了 React 開(kāi)發(fā)中遇到的一系列 CSS 相關(guān)問(wèn)題。加上我個(gè)人的看法,總結(jié)如下:
全局污染
CSS 使用全局選擇器機(jī)制來(lái)設(shè)置樣式,優(yōu)點(diǎn)是方便重寫(xiě)樣式。缺點(diǎn)是所有的樣式都是全局生效,樣式可能被錯(cuò)誤覆蓋,因此產(chǎn)生了非常丑陋的?!important,甚至 inline?!important?和復(fù)雜的選擇器權(quán)重計(jì)數(shù)表,提高犯錯(cuò)概率和使用成本。Web Components 標(biāo)準(zhǔn)中的 Shadow DOM 能徹底解決這個(gè)問(wèn)題,但它的做法有點(diǎn)極端,樣式徹底局部化,造成外部無(wú)法重寫(xiě)樣式,損失了靈活性。
命名混亂
由于全局污染的問(wèn)題,多人協(xié)同開(kāi)發(fā)時(shí)為了避免樣式?jīng)_突,選擇器越來(lái)越復(fù)雜,容易形成不同的命名風(fēng)格,很難統(tǒng)一。樣式變多后,命名將更加混亂。
依賴管理不徹底
組件應(yīng)該相互獨(dú)立,引入一個(gè)組件時(shí),應(yīng)該只引入它所需要的 CSS 樣式。但現(xiàn)在的做法是除了要引入 JS,還要再引入它的 CSS,而且 Saas/Less 很難實(shí)現(xiàn)對(duì)每個(gè)組件都編譯出單獨(dú)的 CSS,引入所有模塊的 CSS 又造成浪費(fèi)。JS 的模塊化已經(jīng)非常成熟,如果能讓 JS 來(lái)管理 CSS 依賴是很好的解決辦法。Webpack 的?css-loader?提供了這種能力。
無(wú)法共享變量
復(fù)雜組件要使用 JS 和 CSS 來(lái)共同處理樣式,就會(huì)造成有些變量在 JS 和 CSS 中冗余,Sass/PostCSS/CSS 等都不提供跨 JS 和 CSS 共享變量這種能力。
代碼壓縮不徹底
由于移動(dòng)端網(wǎng)絡(luò)的不確定性,現(xiàn)在對(duì) CSS 壓縮已經(jīng)到了變態(tài)的程度。很多壓縮工具為了節(jié)省一個(gè)字節(jié)會(huì)把 '16px' 轉(zhuǎn)成 '1pc'。但對(duì)非常長(zhǎng)的 class 名卻無(wú)能為力,力沒(méi)有用到刀刃上。
上面的問(wèn)題如果只憑 CSS 自身是無(wú)法解決的,如果是通過(guò) JS 來(lái)管理 CSS 就很好解決,因此 Vjuex 給出的解決方案是完全的?CSS in JS,但這相當(dāng)于完全拋棄 CSS,在 JS 中以 Object 語(yǔ)法來(lái)寫(xiě) CSS,估計(jì)剛看到的小伙伴都受驚了。直到出現(xiàn)了 CSS Modules。
本文標(biāo)題:評(píng)價(jià)css樣式,關(guān)于css樣式規(guī)則格式的描述
URL鏈接:http://sd-ha.com/article24/dsesjce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、微信公眾號(hào)、網(wǎng)站制作、網(wǎng)站設(shè)計(jì)公司、小程序開(kāi)發(fā)、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)