>您正在啟動一個新的Web項目,並正在尋找一種新的CSS方法,該方法將幫助您擴展代碼。提供了越來越多的用於編寫模塊化CSS的技術,包括SMACS,BEM和許多其他類似的方法,所有方法都是基於面向對象的CSS(OCS)的。如您所見,有很多編寫和組織CSS的技術。
,重複的代碼較少:助手類(也稱為實用程序類)。 這個概念是在Thierry Koblentz上有關Smashing Magazine的文章中進行了討論的,但我想我會用自己的話來解釋這種方法。
鑰匙要點通過創建一組可以在HTML元素上反複使用的抽像類,可以通過創建一組抽像類來幫助刪除CSS中的重複。這使得代碼更加重複使用,可擴展以使以後的添加。
>讓我們看看一個簡單的示例,說明什麼實用程序類別以及如何使用它們。查看以下代碼片段:
>在這裡,我們創建了一組CSS規則,在構建新組件時,我們可以在以後使用這些規則。例如,如果您想對左邊的某些內容對齊,則可以使用文本左類。同樣,您可以使用左或右類以沿所需方向浮動元素。 >
讓我們看看一個需要以其內在內容為中心的框的框架的示例。
。
我們通常會做這樣的事情:
><span><span>.left</span> { float: left; } </span><span><span>.right</span> { float: right; } </span> <span><span>.text-left</span> { text-align: left; } </span><span><span>.text-right</span> { text-align: right; } </span><span><span>.text-center</span> { text-align: center; }</span>
>使用此CSS:
<span><span>.left</span> { float: left; } </span><span><span>.right</span> { float: right; } </span> <span><span>.text-left</span> { text-align: left; } </span><span><span>.text-right</span> { text-align: right; } </span><span><span>.text-center</span> { text-align: center; }</span>
<span><span><span><div</span> class<span>="box"</span>></span> </span><span><span><span></div</span>></span></span>
如果要更改浮點並對齊方向,而不是在不可重用的.box類上進行此操作,則可以使用其他助手類:
網格系統是使用輔助類別的一個很好的例子。這是Foundation網格的一個示例:
<span><span>.box</span> { </span> <span>float: left; </span> <span>text-align: center; </span><span>}</span>
基礎提供了許多可以使用和組合在一起的類,以創建一個具有不同寬度的網格系統,適合不同的屏幕尺寸。這種靈活性可幫助開發人員更快地創建新的自定義佈局,而無需為網格本身編輯任何CSS。例如:
<span><span><span><div</span> class<span>="left text-center"</span>></span> </span><span><span><span></div</span>></span></span>
> .small-2和.large-4類將根據屏幕大小設置元素的寬度。
我們首先為我們的設計定義一個基本空間單元的變量(使用SASS)。讓我們從1EM開始,最重要的是,我們可以為不同的空間尺寸創建類。
選擇適合您和您的團隊的方法。長名稱顯然會使您的HTML元素更大,但是與短名稱相比,它們更可讀,因此您可能需要查看您的CSS來弄清楚事物的工作原理。
寬度和高度
<span><span><span><div</span> class<span>="right text-right"</span>></span> </span><span><span><span></div</span>></span></span>
>
<span><span><span><div</span> class<span>="row"</span>></span> </span> <span><span><span><div</span> class<span>="small-2 large-4 columns"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="small-4 large-4 columns"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="small-6 large-4 columns"</span>></span><span><span></div</span>></span> </span><span><span><span></div</span>></span></span>
和CSS:
<span><span>$base-space-unit: 1em;</span> </span> <span>// Top margin </span><span>.margin-top-none { margin-top: 0; } </span><span>.margin-top-quarter { margin-top: $base-space-unit / 4; } </span><span>.margin-top-half { margin-top: $base-space-unit / 2; } </span><span>.margin-top-one { margin-top: $base-space-unit; } </span><span>.margin-top-two { margin-top: $base-space-unit * 2; } </span> <span>// Top padding </span><span>.padding-top-none { padding-top: 0; } </span><span>.padding-top-quarter { padding-top: $base-space-unit / 4; } </span><span>.padding-top-half { padding-top: $base-space-unit / 2; } </span><span>.padding-top-one { padding-top: $base-space-unit; } </span><span>.padding-top-two { padding-top: $base-space-unit * 2; }</span>
,但我們可以通過一個稱為全高的類減少所有這些:
<span><span>.m0</span> { margin: 0 } </span><span><span>.mt0</span> { margin-top: 0 } </span><span><span>.mr0</span> { margin-right: 0 } </span><span><span>.mb0</span> { margin-bottom: 0 } </span><span><span>.ml0</span> { margin-left: 0 }</span>
>位置和z index
與位置相關的屬性可以與其他屬性(例如Z-Index創建複雜的佈局)結合使用。我們可以創建一組類,以設置與視口或祖先元素相關的任何元素的確切位置(右,左,左上等):<span><span><span><div</span> class<span>="contact-section"</span>></span> </span> <span><!-- Content here... --> </span><span><span><span></div</span>></span></span>
“ PIN”助手類是受Mapbox的CSS啟發的。
>讓我們擴展全高示例,以包含位於右下角的元素。
<span><span>.left</span> { float: left; } </span><span><span>.right</span> { float: right; } </span> <span><span>.text-left</span> { text-align: left; } </span><span><span>.text-right</span> { text-align: right; } </span><span><span>.text-center</span> { text-align: center; }</span>
通過組合多個類,我們可以在更少的代碼中獲得所需的結果。如果要將內部元素放置在右上角,則可以使用銷釘右上方而不是銷釘右右。您可能已經在上面的代碼中註意到了我還添加了另一個輔助類別:填充一類可確保元素不會齊平與容器或視口的邊緣齊平。
浮動元素
demo
<span><span><span><div</span> class<span>="box"</span>></span> </span><span><span><span></div</span>></span></span>
對齊元素
可見性類
<span><span>.box</span> { </span> <span>float: left; </span> <span>text-align: center; </span><span>}</span>
和我們的html:
>
<span><span><span><div</span> class<span>="left text-center"</span>></span> </span><span><span><span></div</span>></span></span>
我們還可以使用這些類來控制觸摸設備上的元素:
<span><span><span><div</span> class<span>="right text-right"</span>></span> </span><span><span><span></div</span>></span></span>
可見性課程的一個很好的例子是基金會和自舉的響應式實用。
版式
<span><span><span><div</span> class<span>="row"</span>></span> </span> <span><span><span><div</span> class<span>="small-2 large-4 columns"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="small-4 large-4 columns"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="small-6 large-4 columns"</span>></span><span><span></div</span>></span> </span><span><span><span></div</span>></span></span>
顏色
>讓我們看看如何將其翻譯成代碼。首先,讓我們用sass定義我們的變量:
<span><span>$base-space-unit: 1em;</span> </span> <span>// Top margin </span><span>.margin-top-none { margin-top: 0; } </span><span>.margin-top-quarter { margin-top: $base-space-unit / 4; } </span><span>.margin-top-half { margin-top: $base-space-unit / 2; } </span><span>.margin-top-one { margin-top: $base-space-unit; } </span><span>.margin-top-two { margin-top: $base-space-unit * 2; } </span> <span>// Top padding </span><span>.padding-top-none { padding-top: 0; } </span><span>.padding-top-quarter { padding-top: $base-space-unit / 4; } </span><span>.padding-top-half { padding-top: $base-space-unit / 2; } </span><span>.padding-top-one { padding-top: $base-space-unit; } </span><span>.padding-top-two { padding-top: $base-space-unit * 2; }</span>
>在Mapbox和Google Web Starter套件項目中找到了使用顏色和背景輔助類別的兩個好示例。
<span><span>.m0</span> { margin: 0 } </span><span><span>.mt0</span> { margin-top: 0 } </span><span><span>.mr0</span> { margin-right: 0 } </span><span><span>.mb0</span> { margin-bottom: 0 } </span><span><span>.ml0</span> { margin-left: 0 }</span>
>
<span><span><span><div</span> class<span>="contact-section"</span>></span> </span> <span><!-- Content here... --> </span><span><span><span></div</span>></span></span>
>列表
>
<span><span>.left</span> { float: left; } </span><span><span>.right</span> { float: right; } </span> <span><span>.text-left</span> { text-align: left; } </span><span><span>.text-right</span> { text-align: right; } </span><span><span>.text-center</span> { text-align: center; }</span>
輔助類可用於將邊界添加到一個元素中,無論是針對各個方面還是一側。因此,您的CSS/SASS可能看起來像這樣:
<span><span><span><div</span> class<span>="box"</span>></span> </span><span><span><span></div</span>></span></span>
以下輔助類別使我們能夠使用CSS的顯示屬性的不同值:
<span><span>.box</span> { </span> <span>float: left; </span> <span>text-align: center; </span><span>}</span>
遵循這一抽象原則可能與您習慣於創作CSS時的方法有很大不同。但是根據我的經驗,我可以說這是您下一個項目的一個很好的方法。
相關庫鏈接
mapbox styleguide - base.css
}
然後,您可以將此類應用於任何HTML元素以將其文本中心。
>我可以在單個元素上使用多個輔助類嗎?一個HTML元素。這使您可以組合不同的樣式和效果,而無需為每種組合創建一個單獨的類。例如,如果您有用於中心文本和更改其顏色的助手類,則可以在這樣的同一元素上使用兩者:
這是一些文本。
>>我如何使用助手類來提高我的生產力?在編寫CSS時,幫助人課可以顯著提高您的生產力。通過將常見樣式封裝在可重複使用的類中,您可以減少編寫所需的代碼量,並使樣式表更易於管理。這可以節省大量時間,尤其是在較大的項目上。此外,輔助課程可以幫助您保持設計的一致性,因為它們確保以相同的方式在不同元素和組件中使用相同的樣式。
輔助類可以在擴展CSS代碼方面起關鍵作用。通過在可重複使用的類中封裝常見樣式,您可以輕鬆地在不同的元素和組件上應用這些樣式。這使您的代碼更加模塊化,可擴展,因為您可以添加,刪除或修改樣式而不會影響代碼的其他部分。此外,隨著項目的增長,輔助類可以幫助您保持設計的一致性。
>以上是使用助手類乾燥和擴展CSS的詳細內容。更多資訊請關注PHP中文網其他相關文章!