犀利的CSS邏輯屬性-優(yōu)雅的減少代碼量
什么是CSS邏輯屬性
CSS邏輯屬性是CSS3中新增的屬性,它將多個CSS屬性合并成一個屬性,從而簡化CSS的書寫。邏輯屬性可以同時設(shè)置元素的多個方向上的屬性,例如內(nèi)聯(lián)方向和塊狀方向。邏輯屬性的名稱以“-inline”或“-block”結(jié)尾,表示它們可以用于設(shè)置元素的內(nèi)聯(lián)方向?qū)傩曰驂K狀方向?qū)傩浴_壿媽傩赃€可以用于更方便地管理flexbox和grid布局等CSS布局屬性。
使用CSS邏輯屬性的優(yōu)勢
1.代碼簡潔明了:使用邏輯屬性可以將多個CSS屬性合并成一個屬性,從而減少了代碼的重復書寫,使代碼更加簡潔明了。
2.增強可讀性:邏輯屬性可以使代碼更加語義化,增強了代碼的可讀性。使用邏輯屬性時,可以更加清晰地表達元素的樣式和布局意圖。
3.提高可維護性:使用邏輯屬性可以減少代碼的冗余,從而降低了代碼的維護成本。如果需要修改元素的樣式和布局,只需要修改邏輯屬性的值即可,而不需要修改多個CSS屬性。
4.更加靈活:邏輯屬性可以同時設(shè)置元素的多個方向上的屬性,例如內(nèi)聯(lián)方向和塊狀方向。這使得CSS的書寫更加靈活,可以更加方便地控制元素的樣式和布局。
5.提高開發(fā)效率:使用邏輯屬性可以提高開發(fā)效率,減少了代碼的書寫量,使開發(fā)更加高效。 綜上所述,使用CSS邏輯屬性可以提高代碼的可讀性和可維護性,減少代碼的冗余,提高開發(fā)效率,使CSS的編寫更加簡潔明了和靈活。
例子
1.margin-inline?和?margin-block
在以前,如何我們希望某個元素水平距離的?margin?值為16px
margin:?0?16px;?//?這個簡寫會影響margin的上下距離 //?分開左右寫就不會影響上下 margin-left:?16px; margin-right:?16px;
但是現(xiàn)在,我們可以直接這樣寫:
margin-inline:?16px;
是不是超方便簡潔。
同理,希望某個元素垂直距離的?margin?值為16px時:
margin-block:?16px;
pading?的屬性和margin一樣。
2.border-inline?和?border-block
在以前,如何我們希望某個元素須同時設(shè)置上下邊框:
border-top:?1px?solid?#ddd; border-bottom:?1px?solid?#ddd; //?或者 border:?solid?#ddd; border-width:?1px?0;
但是現(xiàn)在,我們可以直接一步到位:
border-block:?1px?solid?#ddd;
同理,希望某個元素某個元素須同時設(shè)置左右邊框時:
border-inline:?1px?solid?#ddd;
3.最犀利的?inset?屬性
在以前,我們寫頁面彈窗上下左右居中時:
position:?fixed; left:?0; top:?0; right:?0; bottom:?0; margin:?auto;
現(xiàn)在,我們可以直接這樣:
position:?fixed; inset:?0; margin:?auto;
一模一樣的效果,屬性少寫好幾個。
如果只需?left: 0; right: 0?為0的話,這樣寫:
inset-inline:?0;
垂直方向:
inset-block:?0;
兼容性
CSS邏輯屬性雖部分兼容性較差,但但對于現(xiàn)代瀏覽器,基本已做到完全兼容。目前在內(nèi)部項目中已經(jīng)可以放心使用。也可以使用合適的CSS工具自動轉(zhuǎn)換為安全的傳統(tǒng)的CSS屬性,這樣,開發(fā)便捷和最終的呈現(xiàn)兩不耽誤啦。
結(jié)語
牽手 持續(xù)為你分享各類知識和軟件 ,歡迎訪問、關(guān)注、討論 并留下你的小心心?