? ? ? ? 我們讓一個標簽呈現出正方形的樣式蟀伸,那是再簡單不過的事情了蚀同,最先想到的是:
? ? ? ? ? ? ? ??display: inline-block;
????????????????height: 300px;
????????????????width: 300px;
????????????????background-color: blue;
? ? ? ? 沒錯,我們只需要簡單地定義成長寬一樣啊掏。但是有一天蠢络,被要求自適應(等比例縮放)設計界面時,標簽的寬度已知是父級的10%迟蜜,這個時候要寫正方形就不是那么順利了刹孔,似乎不利用JS就很難完成這個任務。我們嘗試換位思考一下娜睛,標簽是父級的10%髓霞,那我們可以手工算一下父級的寬度10%賦值給高度,于是便興沖沖地去改代碼畦戒,發(fā)現父級的寬度又是一個適應寬度方库,它是相對與View(視窗)的60%,這就很尷尬了障斋,這個時候高度該怎么賦值才能成為正方形呢纵潦?
? ? ? ? 這個時候,我們的Css3新特性就要登場了垃环,那就是vw單位邀层,vw單位是相對于View(視窗)的一個百分比單位,其中w表示Width(寬度)晴裹,舉個例子被济,假設視窗寬度為x,那么10vw == 10% * x涧团,這個單位的出現只磷,就是為了方便快速的自適應布局经磅,而不是一味的尋求Js解決問題。有了這個單位钮追,這個正方形也變得簡單了预厌,我們思考,標簽寬度是父級10%元媚,而父級寬度是View的60%轧叽,這個時候我們只需要解出標簽相對View的寬度是多少刊棕,直接用vw單位帶入到高度甥角,就可以得出。
? ? ? ? 有些人不會解這個方程嗤无?!算了当犯,簡單的解答一遍:假設View的寬度是x嚎卫,則標簽父級寬度是60% * x,因標簽相對父級寬度10%胸懈,帶入得出標簽相對視窗的寬度為60% * x * 10% == 6% * x趣钱,單位用vw胚宦。
? ??????