亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTML > 正文

HTML表單元素覆蓋樣式元素問題及其補救之道

2024-08-26 00:21:46
字體:
來源:轉載
供稿:網友
在設計HTML頁面的過程中經常會遇到表單元素覆蓋樣式元素引起的問題,圖一就是一個典型的例子。不要小看這個貌似“低級”的問題,即使一些規模較大的網站上類似的問題也絕不鮮見。本文探討了造成這一問題的根本原因,并提出一種補救辦法――之所以說補救辦法而不是一勞永逸的解決辦法,是因為微軟和NetScape這兩個巨頭也還沒有對策。


  一、HTML元素的顯示優先級

  HTML中常用的表單元素包括:文本區域(TEXTAREA),列表框(SELECT),文本輸入框(INPUT type=text),密碼輸入框(INPUT type=password),單選輸入框(INPUT type=radio),復選輸入框(INPUT type=checkbox),等等。常見的非表單元素包括:鏈接標記(A),DIV標記,SPAN標記,TABLE標記,等等。表單元素覆蓋樣式元素的根本原因在于HTML元素默認的顯示優先級規則,例如:幀元素總是比其他HTML元素優先,因此也總是顯示在最前面;表單元素總是比所有非表單元素優先。

  所有這些HTML元素又可以根據其顯示要求分成兩類,即有窗口的HTML元素(Windowed Element),無窗口的HTML元素(Windowless Element)。有窗口的元素包括:SELECT元素,OBJECT元素,插件,IE 5.01以及更早版本中的IFRAME元素。無窗口的元素包括:大多數的普通HTML元素,如鏈接和TABLE標記,除了SELECT元素之外的大多數表單元素,NS6+/IE 5.5以及更高版本中的IFRAME元素。本文討論的問題主要與有窗口的HTML元素有關,問題的癥結其實就在于操作系統默認總是把有窗口的元素顯示在無窗口的元素前面。

  二、瀏覽器類型與顯示優先級

  按照瀏覽器類型比較,HTML元素的顯示次序也有所不同,總結如下:

 ?、?Netscape/Mozilla

  在NS瀏覽器6.0以前的版本中,表單元素總是比其他HTML元素有更高的優先級。但在NS 6+瀏覽器中,IFRAME元素和所有表單元素的顯示次序或者由CSS的z-index屬性值確定,或者由它們在HTML頁面中出現的次序確定,但SELECT元素除外。

 ?、?Internet Explorer

  在最新的IE瀏覽器(6.0)中,IFRAME元素和所有表單元素根據z-index屬性值或它們在HTML頁面中出現的次序來確定顯示優先次序,但SELECT元素除外。

  ⑶ Opera

  在最新的Opera(7.10*)瀏覽器中,包括SELECT在內的所有表單元素根據z-index屬性或它們在HTML頁面中的出現次序來確定顯示優先級。但是,最新的Opera瀏覽器不將IFRAME作為無窗口元素顯示,IFRAME被看做有窗口元素,在顯示次序上要比所有無窗口元素優先。

  三、CSS的z-index屬性

  我們知道,CSS的z-index屬性可以用來控制任意HTML元素顯示時的覆蓋次序。當多個HTML元素重疊在同一空間中時,z-index值較大的元素將覆蓋z-index值較小的元素。

  但z-index屬性值不是萬能的。如前所述,有窗口的元素總是顯示在無窗口元素的前面,z-index屬性值只有在同一類元素之間才起決定作用。形象地說,有窗口元素和無窗口元素就像畫在同一瀏覽器窗口的兩塊不同畫布上,兩類元素分別自成體系,它們的z-index屬性也只相對于同一畫布上的其他元素起作用。

  四、補救之道

  就目前的瀏覽器而言,一種比較有效的補救辦法是:當無窗口元素需要覆蓋有窗口元素時,運用腳本程序動態地隱藏有窗口元素。下面是一個完整的例子:

<html><head>
<style type="text/css">
.menuBlock{position:relative;top:14px;width:165px;border:2px solid black;}
#subMenus{position:relative;left:15px;top:15px;width:171px;
padding-left:2px;padding-right:2px;border:2px solid black;
z-index:100;visibility:hidden;}
#lb_1{position:absolute;left:10px;top:40px; }
</style>

<script type="text/javascript">
var isActive = false;

function showMenu(){
isActive = true;
//document.getElementById("lb_1").style.visibility="hidden";
document.getElementById("subMenus").style.visibility="visible";
}

function hideMenu(){
isActive = false;
setTimeout('hide()',100);
}

function hide(){
if(!isActive){
document.getElementById("subMenus").style.visibility = "hidden";
document.getElementById("lb_1").style.visibility="visible";
}
}

function setStyle(menuItem){
isActive = true;
menuItem.style.backgroundColor = "Gray";
menuItem.style.color = "#FFFFFF"
}

function setDefault(menuItem){
isActive = false;
menuItem.style.backgroundColor = "";
menuItem.style.color = ""
hideMenu();
}
</script></head><body>

<div id="main" style="position:absolute;width:200px;">
<div id="menuBlock" class="menuBlock" onmouseover="showMenu();"
onmouseout="hideMenu();">CSS菜單</div>
<div id="subMenus" >
<div id="0" onmouseover="setStyle(this)"
onmouseout="setDefault(this)" >菜單項目一</div>
<!--共四個菜單項目 -->
</div><P>
<select id="lb_1" name="lb_1">
<option value="-1"/>選擇列表
 <!-- 三個選項 -->
</select>
</div>
</body></html>

  頁面的<STYLE>部分定義了三個樣式,分別用于菜單條、菜單項目、選擇列表,通過樣式定義保證菜單、選擇列表的顯示區域重疊。<BODY>部分包含菜單和<SELECT>選擇列表的定義。當鼠標經過菜單條時,JavaScript函數showMenu執行,顯示出菜單,同時隱藏SELECT選擇列表。鼠標離開后,hideMnu函數隱藏菜單,同時恢復選擇列表。其余幾個JavaScript函數主要用于模擬菜單動作,鼠標經過菜單項時以高亮度顯示菜單(setStyle函數),鼠標離開菜單項目時則將它恢復默認顯示形式(setDefault函數)。頁面的運行效果如圖二所示。將showMenu函數中的document.getElementById("lb_1").style.visibility="hidden"語句注釋掉就可以看到圖一的效果。

<descript>
<img src=http://www.chinahtml.com/cce/img/553/04601t02.jpg>
</descript>


  總之,表單元素覆蓋樣式元素的根源在于HTML元素默認的顯示優先級規則。本文介紹的補救辦法確實行之有效,不過如果你實在不想用這種辦法,那就只好考慮改變頁面布局,避免表單元素和樣式元素的顯示區域重疊。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
影音先锋欧美精品| 97视频在线观看免费高清完整版在线观看| 久久久亚洲国产天美传媒修理工| 91九色综合久久| 亚洲在线免费视频| 国产精品欧美一区二区三区奶水| 在线亚洲午夜片av大片| 高清亚洲成在人网站天堂| 国产精品第一页在线| 欧美电影免费在线观看| 亚洲性线免费观看视频成熟| 欧美高清在线视频观看不卡| 欧美午夜性色大片在线观看| 亚洲美女性生活视频| 午夜精品久久久久久久99热| 亚洲激情在线观看| 国内精品模特av私拍在线观看| 国产精品高潮呻吟久久av黑人| 久久久久久久亚洲精品| 国产精品爽爽爽| 亚洲国产精久久久久久| 亚洲国产精品人人爽夜夜爽| 最新日韩中文字幕| 热re99久久精品国产66热| 国产成人一区三区| 亚洲国产福利在线| 欧美在线视频免费播放| 欧美成人在线影院| 亚洲精品98久久久久久中文字幕| 午夜欧美不卡精品aaaaa| 亚洲欧美国产一区二区三区| 国产精品欧美亚洲777777| 一区二区欧美日韩视频| 日韩美女av在线| 国产精品自产拍在线观看中文| 夜色77av精品影院| 亚洲性线免费观看视频成熟| 中文字幕日韩在线播放| 91久久久久久久久| 91精品视频免费看| 中文字幕日本精品| 成人免费大片黄在线播放| 亚洲变态欧美另类捆绑| 国产精品7m视频| 久久在精品线影院精品国产| 久久影院中文字幕| 18一19gay欧美视频网站| 2019中文字幕免费视频| 久久色免费在线视频| 色综合亚洲精品激情狠狠| 成人网在线免费看| 性日韩欧美在线视频| 久久精品久久久久| 亚洲a级在线观看| 日韩免费av在线| 国产中文字幕91| 成人h视频在线| 伊人亚洲福利一区二区三区| 亚洲黄色在线观看| 美日韩精品免费观看视频| 国产成人精品a视频一区www| 国产精品99久久久久久白浆小说| 亚洲精品91美女久久久久久久| 欧美日韩日本国产| 久久免费精品日本久久中文字幕| 日本精品在线视频| 欧美成人四级hd版| 国产福利视频一区二区| 国产精品都在这里| 欧美日韩国产精品一区二区三区四区| 成人h猎奇视频网站| 国产精品视频99| 一本色道久久88综合日韩精品| 亚洲影院在线看| 欧美精品情趣视频| 欧美日韩色婷婷| 日韩成人小视频| 久久国产精品免费视频| 中文字幕在线观看日韩| 中文字幕精品一区二区精品| 亚洲欧洲国产精品| 日本免费久久高清视频| 欧洲成人免费aa| 欧美性在线观看| 日韩精品极品视频免费观看| 国产在线高清精品| 性欧美视频videos6一9| 在线国产精品视频| 亚洲国产成人精品女人久久久| 久久精品国产成人精品| 久久久999精品视频| 成人亚洲欧美一区二区三区| 92看片淫黄大片欧美看国产片| 色999日韩欧美国产| 久久久噜噜噜久噜久久| 96sao精品视频在线观看| 国产精品亚洲美女av网站| 国产日韩换脸av一区在线观看| 久久婷婷国产麻豆91天堂| 美乳少妇欧美精品| 国产精品成人aaaaa网站| 久久久久久91香蕉国产| 久久色免费在线视频| 亚洲福利精品在线| 国产+成+人+亚洲欧洲| 日韩电影在线观看中文字幕| 97avcom| 中文字幕亚洲欧美日韩高清| 午夜精品久久久久久久男人的天堂| 亚洲女在线观看| 久久久久久中文| 国产亚洲aⅴaaaaaa毛片| 日韩欧美在线免费观看| 日韩欧美福利视频| 亚洲电影免费观看高清完整版| 欧美性猛交99久久久久99按摩| 亚洲精品二三区| 91精品久久久久久综合乱菊| 国产精品第一区| 亚洲欧美在线第一页| 国产一区二区三区直播精品电影| 一本色道久久88精品综合| 国产精品wwwwww| 欧美另类暴力丝袜| 色综久久综合桃花网| 精品视频在线观看日韩| 国产精品网红福利| 成人a在线视频| 91久久久久久久一区二区| 成人av电影天堂| 国产精品久久久久久久久男| 亚洲精品永久免费| 亚洲人成免费电影| 国产精品白嫩初高中害羞小美女| 欧美性猛xxx| 最新日韩中文字幕| 久久香蕉国产线看观看网| 亚洲国产精品人人爽夜夜爽| 国产精品久久久久高潮| 国产中文日韩欧美| 海角国产乱辈乱精品视频| 日韩中文在线中文网三级| 日本精品视频在线观看| 亚洲精品aⅴ中文字幕乱码| 欧美性受xxxx黑人猛交| 欧美日韩免费在线观看| 欧美精品在线第一页| 亚洲综合在线做性| 亚洲伊人成综合成人网| 日韩av在线免播放器| 久久久久久久久久婷婷| 国产一区二区精品丝袜| 九九热视频这里只有精品| 日韩高清电影好看的电视剧电影| 亚洲国产另类 国产精品国产免费| 动漫精品一区二区| 亚洲va久久久噜噜噜| 91精品国产91久久久久久最新| 国产伦精品免费视频| 一区二区成人av| 国产精品专区一| 日本久久久久久久久久久| 亚洲欧美日韩国产中文| 国产精品a久久久久久|