搜尋
首頁web前端html教學记一次项目中的css样式复用_html/css_WEB-ITnose

本文同步至微信公众号:http://mp.weixin.qq.com/s?__biz=MzAxMzgwNDU3Mg==&mid=401616238&idx=1&sn=3c6e965283c632e9035875be43e6a305&scene=0#wechat_redirect

二维码:

一直觉得css是一个不被重视,或者说是重视不够的饭后甜点。因为它太“简单”,门槛低,不能彰显或提升广大闷骚程序猿的逼格。。。一直都想聊聊css相关的一些杂碎。正好借最近的一次项目实践来侃侃css。

    玉伯曾发文章做过类似的比喻说:“css就像语文。大家都认识汉字,也都会写汉字,但是也只有那些牛逼的作家才能写出优秀的文章,而我们却不能”。也就是说css易学难用。一个项目随着页面的增多,css的代码数量也可能直线飙升。不仅加载起来比较慢,对维护的人来说,也不确定这些代码都有什么地方在用,轻易不敢动。。因此,css样式复用的重要性就可想而知了。而这个也是新手或对css不够重视的人欠缺的。。

    上面这些,是不是很虚?不罗嗦了,先上页面设计图(一个答题页面),分析页面布局先:

从设计稿上看,最直观的就是页面中的每一个问题的样式是统一的,也就是可以把问题当作一个question模块进行开发。但是就布局而言,纵坐标上,这些问题的纵坐标好无规律。怎么确定这些问题在页面中的位置呢?私想了一个办法,看下一张图:

没错,就是把整个页面拆解成一个一个的格子。私是把每到题放到500*500的格子,这样,问题就在格子里相对于格子来进行定位,就简单多了。以上就是页面的布局。

    然后是具体的代码了:

    最开始当然是css reset了,

大家都知道,浏览器对于标签是有默认样式的。比如a标签默认是有下划线,li标签默认有一个小点等。然而不同的浏览器对于这些元素的默认值不尽相同,为了屏蔽浏览器对元素默认样式的差异,我们需要重置部分元素的样式。可能大家都看过reset.css。那里面重置的样式有好多,我觉得完全没有必要。我的css reset就上面只有上面这些就够了。我也并不是说别的版本的cssreset就不好。脱离的实际的业务单纯的谈论某个类库的好坏,高下都是不可取的。没有最好的框架,只有最适合自己业务的框架。。

然后是css原子类。所谓的css原子类,入下图:

为什么要有这些css原子类呢?一个大型的项目,一些常用的css规则,比如text-align,float,border,positon等有可能出现十几次,几十次。。加入我们已经在项目开始的时候就已经定义好了我们的css原子类,那么在需要左浮动的元素上只需要引入.fl的class就可以了。原来需要出现几十次的float:left现在只需要出现一次就可以了(理论上是这样)。从理论上讲,只要我们把每个css原子类都定义成一个原子类,那么我们就可以通过这些原子类的不同组合来完成我们的页面了。css原子类是跟具体的项目和业务无关的,定义好的css原子类可以应用到任何的项目当中。css样式分离的确实彻底,其可复用性就越高。就像这些原子类。但是,当一个元素引入的css原子类多起来的时候,那么这个元素的class的值也会快速膨胀起来。。。我在写页面的时候,所能接受的class值得最多的个数是4个。考虑到这个问题呢,就引入了下一个话题,css模块化。

    通常一个项目一个站点,要考虑到站点整体的风格统一。正式因为风格统一,所以大部分的css样式都是可以复用的。比如我本次的项目来说,问题就可以看成是一个模块。问题的html如下

qh是标题,qa是三个选项。最外层的div就是格子,qwrapper相对于格子进行定位。然后定义统一的css样式。虽然页面上有十道题,我只需要写一次html和css.

 

对于每到题目的个性化的样式用过.question1, .question2等类来实现。说到这里,其实这个页面的css样式就差多多了。实际效果见第一张图。在开发中除了这种一个区块看作一个模块来处理之外,比如页面中的所有的buton,text也可以看成一个模块。在需要有button的地方,只需要引入.btn就可以了。就像bootstrap。。。这里需要注意,定义模块样式的时候,只能定义那些稳定的公共的样式。就文本框而言,有的地方的文本框的宽度是100,有的地方是80,这个时候我们就需要把width从样式中分离出去。想下面这样

.txt {

    height: 30px;

    line-height:30px;

    backgroud:#fff;

    font-size:14px

}

那么宽度为100的文本就可以写为:

宽度为80的就可以写为:

.w100为上文中的原子类.w100 {width: 100px}

通过这种方式把项目中的可复用的区块进行模块化。后续开发的时候,只需要引入之前定义好的类库就行了。假设开发之前,我们已经认真的分析过设计稿。分析过那些组件式公共的,在页面中重复出现的。我们就可以开开发初期先开发这些公共的样式,便于后期复用。刚开始的时候,可能会慢一些,但是越到后期会越轻松。

当完成上面的这几步的时候,理论上一个项目的大部分的css样式就已经开发完成了。后续再写页面的时候,只需要引入我们定义好的类就行。仿佛就像是我们针对自己的项目开发了定制版的"bootstrap"...剩下的就是页面特有的页面级的css了。

    考虑到时间和篇幅关系,就不往下写了。以上是我写css的套路。私以为,每个人都应该有自己的套路和模式。形成自己的风格。。。以上的都是个人观点,如果有不对的地方,或者有不同意见的欢迎交流讨论哈

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
HTML標籤和HTML屬性有什麼區別?HTML標籤和HTML屬性有什麼區別?May 14, 2025 am 12:01 AM

HTMLtagsdefinethestructureofawebpage,whileattributesaddfunctionalityanddetails.1)Tagslike,,andoutlinethecontent'splacement.2)Attributessuchassrc,class,andstyleenhancetagsbyspecifyingimagesources,styling,andmore,improvingfunctionalityandappearance.

HTML的未來:進化和趨勢HTML的未來:進化和趨勢May 13, 2025 am 12:01 AM

HTML的未來將朝著更加語義化、功能化和模塊化的方向發展。 1)語義化將使標籤更明確地描述內容,提升SEO和無障礙訪問。 2)功能化將引入新元素和屬性,滿足用戶需求。 3)模塊化將支持組件化開發,提高代碼復用性。

為什麼HTML屬性對Web開發很重要?為什麼HTML屬性對Web開發很重要?May 12, 2025 am 12:01 AM

htmlattributesarecrucialinwebdevelopment forcontrollingBehavior,外觀和功能

Alt屬性的目的是什麼?為什麼重要?Alt屬性的目的是什麼?為什麼重要?May 11, 2025 am 12:01 AM

alt屬性是HTML中標籤的重要部分,用於提供圖片的替代文本。 1.當圖片無法加載時,alt屬性中的文本會顯示,提升用戶體驗。 2.屏幕閱讀器使用alt屬性幫助視障用戶理解圖片內容。 3.搜索引擎索引alt屬性中的文本,提高網頁的SEO排名。

HTML,CSS和JavaScript:示例和實際應用HTML,CSS和JavaScript:示例和實際應用May 09, 2025 am 12:01 AM

HTML、CSS和JavaScript在網頁開發中的作用分別是:1.HTML用於構建網頁結構;2.CSS用於美化網頁外觀;3.JavaScript用於實現動態交互。通過標籤、樣式和腳本,這三者共同構築了現代網頁的核心功能。

如何在標籤上設置lang屬性?為什麼這很重要?如何在標籤上設置lang屬性?為什麼這很重要?May 08, 2025 am 12:03 AM

設置標籤的lang屬性是優化網頁可訪問性和SEO的關鍵步驟。 1)在標籤中設置lang屬性,如。 2)在多語言內容中,為不同語言部分設置lang屬性,如。 3)使用符合ISO639-1標準的語言代碼,如"en"、"fr"、"zh"等。正確設置lang屬性可以提高網頁的可訪問性和搜索引擎排名。

HTML屬性的目的是什麼?HTML屬性的目的是什麼?May 07, 2025 am 12:01 AM

htmlattributeseresene forenhancingwebelements'functionalityandAppearance.TheyAdDinformationTodeFineBehavior,外觀和互動,使網站互動,響應式,visalalyAppealing.AttributesLikutesLikeSlikEslikesrc,href,href,href,類,類型,類型,和dissabledtransfransformformformformformformformformformformformformformformforment

您如何在HTML中創建列表?您如何在HTML中創建列表?May 06, 2025 am 12:01 AM

toCreateAlistInHtml,useforforunordedlistsandfororderedlists:1)forunorderedlists,wrapitemsinanduseforeachItem,RenderingeringAsabulletedList.2)fororderedlists,useandfornumberedlists,useandfornumberedlists,casundfornumberedlists,casundfornthetthetthetthetthetthetthetttributefordforderfordforderforderentnumberingsnumberingsnumberingStys。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能