table布局 height=100%無效分析
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
在使用table表格進行頁面布局時,經常使用將表格高度設置style="height:100%"來實現表格高度滿屏效果,但在最新的瀏覽器中經常遇到無效,根本原因再于瀏覽器使用用的工作模式的不同造成的;在Firefox與IE8標準模式下,HTML與Body標簽默認是沒有高度(即高度為0) ,而是根據其中的內容自適應,如果設置表格的style="height:100%",達不到全屏效果。 問題分析:
常見 HTML中<!DOCTYPE>(文檔對象類型)有: (1)<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">(注意其中 Transitional 表示:Almost Standarded Mode ) (2)<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" " http://www.w3.org/TR/html4/strict.dtd">(表示:Standarded Mode ) (3) 未寫<!DOCTYPE>聲明,或<!DOCTYPE >聲明書寫有誤,則工作在Quriks Mode (4) <!DOCTYPE html>(Transitional 的簡化:Almost Standarded Mode) 獲取更多有關DOCTYPE信息請查看:W3C DOCTYPE 回到問題: 一個對象高度是否可以使用百分比顯示,取決于對象的父級對象,Table在body之中,因此它的父級是body,而瀏覽器在標準模式下,是沒有給body一個高度屬性的,因此當設置height:100%;時,不會產生任何效果(內容根據高度自適應),而當給body設置了100%之后(相對于html標簽),它的子級對象Table的height:100%;便發生作用了,這便是瀏覽器解析規則引發的高度自適應問題。值得注意:Firefox中的HTML標簽不是 100%高度,因此給兩個標簽都定義為height:100%;以保證兩個瀏覽器下均能夠正常顯示。 解決方案:(1)為<html>與<body>標簽添加100%的高寬屬性。 (2)可直接刪除<!DOCTYPE>定義,這樣瀏覽器會工作在Quriks Mode下,body與html默認有高寬度,但不推薦這種方式 <style type="text/css"> html,body{ width:100%; height:100%; } <!--以下設置全屏--> body { margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; } </style> 該文章在 2014/5/18 23:54:26 編輯過 |
關鍵字查詢
相關文章
正在查詢... |