RELATEED CONSULTING
相(xiàng)關咨詢
選擇下(xià)列産品馬上(shàng)在線溝通(tōng)
服務時間:9:30-18:00
你可能(néng)遇到(dào)了下(xià)面的問題
關閉右側工(gōng)具欄
快速精通(tōng)網頁框架FRAME
  • 作者:
  • 發表時間:2010-04-07 09:29
  • 來源:

FRAME(框架)是Web上(shàng)經常會(huì)看(kàn)到(dào)的頁面結構。使用可視Web開(kāi)發工(gōng)具(比如Dreamweaver或者Frontpage),雖然可以在 WYSIWYG環境中通(tōng)過簡單的鼠标托拽完成FRAME的構建,但是要實現真正細緻甚至強大的功能(néng),仔細理解FRAME的代碼結構至關重要!你将發現, FRAME原來是這樣的親切易用。

  創建基本的FRAMESET

  FRAMESET頁面與普遍的Web頁面有些不同。雖然仍舊(jiù)以和包含标題的标記以及其他腳本開(kāi)始,但是其内容僅僅是表示的各個(gè)頁面的版式設計。因此,不再需要有元素,隻需要标記。

  通(tōng)過标記的屬性,浏覽器(qì)窗(chuāng)口被分割為(wèi)一(yī)個(gè)個(gè)格子。 的設置值可以是固定的像素值,可以是總空間的百分比值,還(hái)可以是用*以及一(yī)個(gè)數字相(xiàng)乘表示的分割剩餘空間的比例值。比如說:

cols="80,20%,*" 分為(wèi)3列,寬度分别為(wèi)80像素,窗(chuāng)口寬度的20%,以及剩餘寬度
rows="25%,75%" 分為(wèi)2列,寬度分别為(wèi)窗(chuāng)口寬度的25%和75%
rows="*,3*" 與上(shàng)述第2個(gè)表示的一(yī)樣,分為(wèi)2列,但表示方法不同:第一(yī)列寬度為(wèi)第二列的1/3

  在和之間,用多(duō)個(gè)标記表示每個(gè)分割區。col 表示從(cóng)左到(dào)右的列,row表示從(cóng)上(shàng)到(dào)下(xià)的行。每個(gè)有一(yī)個(gè)src屬性,給出了這個(gè)FRAME的内容。它可以是浏覽器(qì)能(néng)顯示的任何一(yī)個(gè)合法URL,或者是另外一(yī)個(gè)FRAMESET。為(wèi)預防遞歸現象,一(yī)個(gè)FRAME不能(néng)包含它本身所在的FRAMESET頁面。要用name屬性定義 FRAME的名字,這樣就(jiù)可以在代碼或者腳本程序中引用它。 請看(kàn)一(yī)段基本的FRAMESET代碼:



Simple FRAMESET

















  FRAME間的鏈接

  一(yī)個(gè)FRAMESET結構的頁面,新文檔隻轉載進窗(chuāng)口的一(yī)部分中,而其他頁面則保持靜(jìng)态不變。當用戶點擊FRAME中的鏈接時,新内容就(jiù)在同一(yī) FRAME内打開(kāi)。要讓新内容在其他FRAME中打開(kāi),可以設置标記的target屬性值為(wèi)那個(gè)FRAME的name值。

  而且,我們還(hái)可以設置打開(kāi)目标為(wèi)當前可見(jiàn)的任意一(yī)個(gè)FRAME,而不局限于本身的FRAMESET。目标可能(néng)是一(yī)個(gè)嵌套的FRAMESET中的 FRAME,也可能(néng)是其他窗(chuāng)口中的FRAME。但是如果目标FRAME不存在,就(jiù)會(huì)産生(shēng)一(yī)個(gè)帶有目标FRAME名字的新窗(chuāng)口。

  下(xià)面舉個(gè)例子說明一(yī)下(xià),假設有一(yī)個(gè)簡單含2-FRAME的FRAMESET,文件(jiàn)名叫做home.html,代碼如下(xià):


FrommCo home page




  文件(jiàn)menu.htm在左邊的FRAME中,其中有一(yī)系列鏈接,點擊它們後新内容将在右邊的叫做content的FRAME中打開(kāi)。下(xià)面是menu.html的代碼:




FrommCo


Main page


Our mission


Our staff


FrommCo splash page

  請注意最後一(yī)個(gè)鏈接中target的定義為(wèi)_parent,這屬于4個(gè)特殊的保留值。它們是:

_parent:在當前FRAMESET位置顯示新href。
_top:在當前整個(gè)窗(chuāng)口位置顯示新href,比如本身FRAMESET位于另一(yī)個(gè)FRAMESET中。
_self:強制在當前FRAME中顯示新href。
_blank:在新窗(chuāng)口中顯示href。

  表示客戶端圖形地圖的标記同樣可以應用target屬性,比如:

  Main page

  還(hái)有一(yī)種經常的情況是:Web頁面中的大部分或者全部鏈接都要求在一(yī)個(gè)特别的FRAME中打開(kāi)。這時,可以在頁面的代碼區使用标記設置默認的target,然後再分别定義特殊鏈接的target值。

  修飾FRAME

  FRAMESET不僅在寬度、高(gāo)度等方面具有可控制的數值,在美觀方面也同樣可以精确設置。

  默認情況下(xià),FRAMESET的FRAME間有一(yī)個(gè)凸起的邊沿,表示分割效果。如果不喜歡這個(gè),想營造“無縫連接”的效果,可以在< FRAME>标記中設置FRAMEborder=0來消除它。在3.0及高(gāo)版本的Navigator和Internet Explorer中,如果在标記中設置FRAMEborder=0,那麽除了設置為(wèi)FRAMEborder=1的 FRAME外,所有其他FRAME的邊沿都将消失。

  雖然設置了FRAMEborder=0,有些浏覽器(qì)仍舊(jiù)會(huì)在FRAME間保留一(yī)些邊沿的顔色痕迹。這時,可以在< FRAMESET>标記中添加FRAMEspacing=0(對Internet Explorer)或者border=0(對Navigator和Opera)實現真正的無縫連接。

  請看(kàn)下(xià)面的代碼是如何使用這些屬性的:


FrommCo home page




  上(shàng)面的代碼中有2個(gè)新的屬性:noresize表示鎖住FRAME而不允許使用鼠标改變大小(xiǎo),scrolling=no表示屏蔽FRAME的滾動條,scrolling=yes表示允許,scrolling=auto表示根據顯示内容需要自(zì)動顯示滾動條。

  浮動FRAME

  浮動FRAME是HTML4.0規範中的一(yī)個(gè)定義,目前的浏覽器(qì)都支持它。

  不象FRAMESET表示的分割區樣子,一(yī)個(gè)浮動FRAME作為(wèi)一(yī)個(gè)内置對象存在于Web頁面上(shàng),其樣式就(jiù)象一(yī)個(gè)頁面上(shàng)的一(yī)個(gè)圖形或者一(yī)個(gè) applet。浮動FRAME使用

  而且,浮動FRAME遵循與普通(tōng)FRAME一(yī)樣的target原則:我們可以通(tōng)過它的name來指向它。本原則适用于在任一(yī)類型FRAME中的浮動FRAME,反之易然。浮動FRAME中的沒有traget的鏈接指向它本身,而_parent鏈接則指向包含



Show one.htm


Show two.htm


Bring back start.htm

  注意,對應支持間的内容都将忽略。反之,其中的内容将顯示出來,這可以用作解釋當前浏覽器(qì)不支持

  何時使用FRAME

  我們知道,FRAMESET的基本用途就(jiù)是分割浏覽器(qì)窗(chuāng)口,使得窗(chuāng)口的一(yī)部分内容改變,而其他部分保持不變。利用這個(gè)特性,就(jiù)可以實現工(gōng)具欄導航功能(néng),一(yī)個(gè)FRAME内放(fàng)置靜(jìng)态菜單頁面,用戶點擊其中的項目後,在另外的FRAME内顯示相(xiàng)關的内容。這樣就(jiù)可以從(cóng)整體上(shàng)減少文件(jiàn)大小(xiǎo),因為(wèi)不必在每個(gè)内容頁面中再包含菜單項目。

  FRAME有2個(gè)明顯的不足:

  FRAME從(cóng)另外的級别上(shàng)增加了站點的管理,原因在于超級鏈接不僅僅要指向适當的頁面,而且也會(huì)裝載到(dào)相(xiàng)關的FRAME内。

  另外,大多(duō)數浏覽器(qì)在執行“添加書簽”的操作時,隻能(néng)記錄下(xià)FRAMESET的初始位置。不管添加書簽時是位于多(duō)麽深的FRAMESET中,當再次選擇這個(gè)書簽時,就(jiù)會(huì)返回到(dào)FRAMESET的初始頁面。這就(jiù)加大了訪問者浏覽指定内容的難度。

  但是,如果好好地組織站點信息,使導航操作隻有不深的幾層,那麽,使用FRAME就(jiù)能(néng)很好地為(wèi)訪問者服務。記住:訪問者都希望簡潔的導航信息。

  當然,導航并非是使用FRAME的唯一(yī)原因,也可以使用FRAME創建交換工(gōng)具和交換頁面。而且,FRAME的多(duō)文檔框架結構非常适于被JavaScript應用程序所操作。

  用FRAME設計站點

  最常用的FRAME結構就(jiù)是“菜單-内容”FRAMESET。一(yī)個(gè)FRAME内放(fàng)置導航菜單,另一(yī)個(gè)FRAME内轉載子菜單,每個(gè)子菜單的鏈接就(jiù)指向本身。唯一(yī)的有target的鏈接都在菜單FRAME内。 請看(kàn)下(xià)面的例程代碼:


Welcome to my site!







Welcome to my site.


Introduction
Products
Reviews