終於發布啦,新 AL 更強大也更加靈活。可以說,新版 Auto Layout 是在設計工具中實現了一個 CSS Flex[1] 可視化編輯器。
視頻來源:https://twitter.com/figmadesign/status/1329455521355730945
下面,我給大家匯總一下這次更新帶來的功能。
•獨立的四個方向內邊距•更靈活的對齊方式•元素 Rezing 和 Constraints
獨立的四個方向內邊距之前的 Auto Layout 元素內邊距只能分別定義水平和垂直方向上的,如果你想實現左邊 10px 右邊 2px 這種是不行的。但是現在四個方向的內邊距都可以單獨定義啦。
點擊右邊的圖標,就可以單獨填寫四個內邊距啦,按 Tab 鍵還可以快速跳到下一個輸入框。
獨立內邊距
在外面的輸入框中還可以輸入逗號分隔的數字來快速定義四個方向的內邊距,其順序是按照上右下左順時針走的,和 CSS padding[2] 簡寫一樣。比如 8,10,8,10 就可以設置上下為 8px 左右為 10px 的內邊距。
快速設置內邊距
更靈活的對齊方式伴隨著獨立內邊距一起的,是對齊方式的更新。以前 Auto Layout 內元素的對齊方式是在內部元素身上控制的,現在所有的對齊控制都從父元素控制(不能使用方向鍵快速切換元素的對齊方式了)。
在設置獨立內邊距的面板中間就是設置對齊方式的地方,這些圖標含義很清晰,可以直接選取你需要的對齊方式。
設置對齊方式
值得一提的是,我們還可以設置元素是抱在一團還是平均分布,如果抱團就是上圖的效果,元素擠在一起,如果選擇了 space between,元素會被自動分開,中間的間距是自動變化的,保持它們平均分布在一條線上。
元素抱團還是分開
元素 Rezing 和 Constraints現在 Auto Layout 元素多了一個 Rezing 控制,主要用來控制元素尺寸變化行為。以前 Auto Layout 元素尺寸隨著內部元素變化而變化,現在更靈活了,我們既可以靠內部元素撐開父元素,也可以讓父元素控制內部。
如下圖,我們設置外部容器寬度固定,高度 Hug Content,也就是「適應內容」,那麼當我們修改內部元素時它的寬度不會變,而高度會隨著內部元素被撐高或縮小。
Rezing
對於內部元素來說,我們除了可以設置「固定寬高」和「適應內容」,還可以設置填滿整個容器。比如下圖,我們想讓左邊頭像固定大小,右邊文字自動填滿剩餘空間,就可以設置它為 Fill Container。
fill container
更厲害的是,現在的 Auto Layout 和 Constraints 可以結合使用啦。如果你把一個 Auto Layout 放在一個普通 Frame 內部,可以給它設置響應式約束,比如下圖中讓卡片左右跟隨屏幕寬度變化拉伸,同時又可以保持自己的自動布局特性。
Rezing and Constraints
總的來說,新的 Auto Layout 非常強大了,基本上各種效果都可以實現了,我們再也不用一層層嵌套了。
如果你想了解更詳細的內容,可以查看幫助文檔和示例文件:
•幫助文檔[3]•Auto Layout 使用說明[4]•Auto Layout 使用說明中文版[5]•介紹博文[6]
更詳細的細節讓我們看這個叫做超能銅草帽的男人錄製的最新講解視頻吧。
Bilibili 視頻地址:https://www.bilibili.com/video/BV1Uv411r7iD
References[1] CSS Flex: https://developer.mozilla.org/zh-CN/docs/Web/CSS/flex
[2] CSS padding: https://developer.mozilla.org/zh-CN/docs/Web/CSS/padding
[3] 幫助文檔: https://help.figma.com/hc/en-us/articles/360040451373
[4] Auto Layout 使用說明: https://www.figma.com/community/file/784448220678228461
[5] Auto Layout 使用說明中文版: https://www.figma.com/community/file/911267393900607489
[6] 介紹博文: https://www.figma.com/blog/behind-the-feature-the-making-of-the-new-auto-layout/