在CSS中,設置元素的高度(height)是一項基本的樣式設置。通常情況下,我們可以很輕松地使用height屬性來定義元素的高度值。但是,有時候我們會遇到一些需要hack的情況。下面就來講一講關于CSS中height的hack技巧。
/*設置元素高度為父元素的50%*/ .child{ height: 50%; } /*hack方法1:采用絕對定位*/ .child{ position: absolute; top: 0; bottom: 0; left: 0; right: 0; height: auto; min-height: 50%; } /*hack方法2:采用padding*/ .parent{ height: 100px; padding-top: 50%; } .child{ height: auto; position: relative; top: -50%; }
針對第一個hack方法,可以很容易地理解:通過設置絕對定位和相對定位來實現高度百分比的設置。其中,絕對定位的left、right、top、bottom值都等于0,也就是將元素定位于父元素的左上角,當元素高度小于父元素高度的50%時,會自動填充父元素剩余的50%高度。此方法的缺點是,容易引起父元素的高度計算錯誤,可能會影響其他元素的布局。
而第二個hack方法,則是通過設置父元素的padding-top值為50%,然后通過向上定位子元素的高度為它的50%來實現高度百分比的設置。這種方法的好處是比較穩定,適用于絕大多數情況。缺點是容易引起子元素內容溢出問題,需要額外處理。