CSS Code復(fù)制內(nèi)容到剪貼板
- .about-title{
- margin: 0 auto 6rem; color: #333; text-align: center; letter-spacing: 4px;
- font-size: 2rem;
- }
- .achieve-title{
- margin: 0 auto 6rem; color: #fff; text-align: center; letter-spacing: 4px;
- font-size: 2rem;
- }
這兩個(gè)樣式的區(qū)別在于文字顏色的不同,我們可以將其公共的樣式提取出來(lái),然后再分別設(shè)置其不同的樣式
CSS Code復(fù)制內(nèi)容到剪貼板
- .column-title{
- margin: 0 auto 6rem; text-align: center; letter-spacing: 4px; font-size: 2rem;
- }
- .about{
- color: #333;
- }
- .achieve{
- color:#fff;
- }
提取公用的部分,然后在頁(yè)面上分別引用column-title和about等,這樣代碼更簡(jiǎn)潔,維護(hù)起來(lái)也更方便了。這個(gè)例子非常簡(jiǎn)單,實(shí)際上項(xiàng)目中可能有更復(fù)雜的情況,總之就要要盡可能的DRY,盡可能的提取重復(fù)的東西。
CSS Code復(fù)制內(nèi)容到剪貼板
- .btn-primary{
- width:100px;
- height:50px;
- padding:5px 3px;
- background:#ccc;
- color:#000;
- }
- .btn-delete{
- width:100px;
- height:50px;
- padding:5px 3px;
- background:red;
- color:#fff;
- }
這兩個(gè)或者可能更多的按鈕擁有一些不同的樣式,但是它們同時(shí)擁有相同的大小樣式等,我們將其抽象的部分提取出來(lái),結(jié)果如下:
CSS Code復(fù)制內(nèi)容到剪貼板
- .btn{width:100px;height:50px;padding:5px 3px;}
- .primary{background:red;color:#fff;}
- .delete{background:red;color:#fff;}
這樣提取公用的樣式出來(lái),然后按鈕同時(shí)引用btn和primary等。這種做法除了減少重復(fù)的代碼精簡(jiǎn)CSS之外,還有一個(gè)好處是復(fù)用性,如果需要增加其他額外的按鈕,只需要編寫(xiě)不同的樣式,和btn配合使用即可。
CSS Code復(fù)制內(nèi)容到剪貼板
- .content h3{
- font-size:20px;
- color:#333;
- }
這樣的代碼就是內(nèi)容依賴于容器,沒(méi)有分離的代碼,也就是說(shuō)h3的樣式依賴于.content容器,如果其他地方要用到相同的樣式,但是它的容器卻不是.content,那你可能就是要再寫(xiě)一遍.something h3。
CSS Code復(fù)制內(nèi)容到剪貼板
- .title{
- font-size:20px;
- color:#333;
- }
關(guān)于這一點(diǎn),我個(gè)人建議要分情況來(lái)看,像前面這個(gè)例子,它適合樣式和容器分離。但是比如下面這種情況:
CSS Code復(fù)制內(nèi)容到剪貼板
- .menu li{
- font-size:12px;
- }
這種ul,li列表的樣式,我覺(jué)的就按照我們?cè)鹊淖龇ň涂梢?,不一定非得給一個(gè)類給li來(lái)設(shè)定樣式,即
CSS Code復(fù)制內(nèi)容到剪貼板
- .menu-item{
- font-size:12px;
- }
這樣頁(yè)面的li標(biāo)簽需要引用menu-item類。
CSS Code復(fù)制內(nèi)容到剪貼板
- .block{}
- .block-element{}
- .block-modifier{}
- .block-element-modifier{}
BEM將頁(yè)面解析為block和element,然后根據(jù)不同的狀態(tài)使用modifier來(lái)設(shè)置樣式。