如果父元素沒有指定高度,那么子元素的百分比的高度設置了也沒用。所以我們需要先設置父元素的高度:html,body{height:100%;}
可以是可以,就是你在寫html結構的時候,一定要把另一個元素寫在你hover的元素里面,即要求hover的元素是父元素,移動的元素是子元素,然后寫css的時候可以 div.hover a {...;}
回流與重繪 1. 當render tree中的一部分(或全部)因為元素的規模尺寸,布局,隱藏等改變而需要重新構建。這就稱為回流(其實我覺得叫重新布局更簡單明了些)。每個頁面至少需要一次回流,就是在頁面第一次加載的時候。
2. 當render tree中的一些元素需要更新屬性,而這些屬性只是影響元素的外觀,風格,而不會影響布局的,比如background-color。則就叫稱為重繪。 注:從上面可以看出,回流必將引起重繪,而重繪不一定會引起回流。
任何對render tree中元素的操作都會引起回流或者重繪,比如 1. 添加、刪除元素(回流+重繪) 2. 隱藏元素,display:none(回流+重繪),visibility:hidden(只重繪,不回流) 3. 移動元素,比如改變top,left(jquery的animate方法就是,改變top,left不一定會影響回流),或者移動元素到另外1個父元素中。(重繪+回流) 4. 對style的操作(對不同的屬性操作,影響不一樣) 5. 還有一種是用戶的操作,比如改變瀏覽器大小,改變瀏覽器的字體大小等(回流+重繪)
總體來說,CSS具有以下特點:
1.豐富的樣式定義
CSS提供了豐富的文檔樣式外觀,以及設置文本和背景屬性的能力;允許為任何元素創建邊框,以及元素邊框與其他元素間的距離,以及元素邊框與元素內容間的距離;允許隨意改變文本的大小寫方式、修飾方式以及其他頁面效果。
2.易于使用和修改
CSS可以將樣式定義在HTML元素的style屬性中,也可以將其定義在HTML文檔的header部分,也可以將樣式聲明在一個專門的CSS文件中,以供HTML頁面引用。總之,CSS樣式表可以將所有的樣式聲明統一存放,進行統一管理。
另外,可以將相同樣式的元素進行歸類,使用同一個樣式進行定義,也可以將某個樣式應用到所有同名的HTML標簽中,也可以將一個CSS樣式指定到某個頁面元素中。如果要修改樣式,我們只需要在樣式列表中找到相應的樣式聲明進行修改。
3.多頁面應用
CSS樣式表可以單獨存放在一個CSS文件中,這樣我們就可以在多個頁面中使用同一個CSS樣式表。CSS樣式表理論上不屬于任何頁面文件,在任何頁面文件中都可以將其引用。這樣就可以實現多個頁面風格的統一。
4.層疊
簡單的說,層疊就是對一個元素多次設置同一個樣式,這將使用最后一次設置的屬性值。例如對一個站點中的多個頁面使用了同一套CSS樣式表,而某些頁面中的某些元素想使用其他樣式,就可以針對這些樣式單獨定義一個樣式表應用到頁面中。這些后來定義的樣式將對前面的樣式設置進行重寫,在瀏覽器中看到的將是最后面設置的樣式效果。
5.頁面壓縮
在使用HTML定義頁面效果的網站中,往往需要大量或重復的表格和font元素形成各種規格的文字樣式,這樣做的后果就是會產生大量的HTML標簽,從而使頁面文件的大小增加。而將樣式的聲明單獨放到CSS樣式表中,可以大大的減小頁面的體積,這樣在加載頁面時使用的時間也會大大的減少。另外,CSS樣式表的復用更大程度的縮減了頁面的體積,減少下載的時間。