在Web應(yīng)用程序上部署CSS邏輯屬性

2023-01-04 2706 0
20221229_114752_026

您可能已經(jīng)聽說過CSS邏輯屬性或RTL改編,但仍在決定是否廣泛部署它們。為了幫助您提高對其可能性的認(rèn)識,Nicolas Hoffmann分享了他和他的團(tuán)隊(duì)在Proton如何從CSS邏輯道具到制作進(jìn)行大規(guī)模轉(zhuǎn)移的經(jīng)驗(yàn),以及您如何在自己的項(xiàng)目中從不同的角度考慮它們。

就用戶界面而言,本地化是最有趣的領(lǐng)域之一:文本長度可能因語言而異,文本的默認(rèn)對齊方式可能不同,閱讀方向可以是鏡像的或垂直的,以及許多其他不同的情況。簡而言之,這是一個(gè)令人難以置信的多樣性來源,這使得我們的界面和前端工作方式更強(qiáng)大、更可靠、更具挑戰(zhàn)性。

對從右到左界面的需求

大多數(shù)語言,如法語或英語,都是從左向右閱讀的(LTR)。但是,在這些情況下,有些語言(如波斯語、阿拉伯語和希伯來語)具有不同的閱讀方向—從右向左(RTL)。

問題是怎么我們能讓我們的界面適應(yīng)這種巨大的變化嗎?

CSS邏輯屬性之前

在CSS邏輯屬性之前,我們可以用不同的方法進(jìn)行RTL改編:

  • 只為RTL附加費(fèi)/布局添加專用CSS文件;
  • 僅追加同一CSS中需要修改的部分,例如[dir="rtl"]。浮動-左{浮動:右;}。

即使這些方法在起作用——我使用了第二種方法來創(chuàng)建支持人權(quán)網(wǎng)站的阿拉伯文版幾年前——兩者都相當(dāng)次優(yōu):

  • 您需要為第一個(gè)文件維護(hù)另一個(gè)文件;
  • 第二個(gè)文件的CSS文件有點(diǎn)重,可能需要處理一些問題(特殊性、添加更多屬性等等)。

當(dāng)然,我們可以用Sass創(chuàng)建巨大的機(jī)器來生成幾個(gè)構(gòu)建,并使用UnCSS之類的工具來刪除不需要的內(nèi)容,但是說實(shí)話:這很無聊,而且會導(dǎo)致“不自然”的代碼片段,就像前面的例子一樣。

為什么CSS邏輯屬性非常適合/有前途

這就是CSS邏輯屬性模塊進(jìn)入游戲。這個(gè)CSS模塊的主要思想是擁有一個(gè)邏輯抽象這使我們能夠根據(jù)文本方向和書寫模式(如書寫模式,方向,以及文本方向,或者目錄HTML中的屬性)。這給了我們像水平從右到左或從左到右,垂直RTL,等等的可能性。

實(shí)踐中的實(shí)施

它是如何工作的

有幾個(gè)概念需要理解,雷切爾·安德魯斯已經(jīng)解釋過了理解邏輯屬性和值":

  • 我們不再考慮左邊的/正確但是開始/結(jié)束(同樣的道理也適用于頂端/底部):
  • 我們不再說寬度或者高度但是相反在一條直線上的和街區(qū)—相當(dāng)經(jīng)典。(你可能聽說過違約在一條直線上的或者街區(qū)元素。

0
評論區(qū)(0)
正在加載評論...