快速精通掌握FRAME的使用

2023-01-15 23:24:02 字數 5621 閱讀 1738

frame(框架)是web上經常會看到的頁面結構。使用可視web開發工具(比如dreamwe**er或者frontpage),雖然可以在wysiwyg環境中通過簡單的滑鼠託拽完成frame的構建,但是要實現真正細緻甚至強大的功能,仔細理解frame的**結構至關重要!你將發現,frame原來是這樣的親切易用。

建立基本的frameset

frameset頁面與普遍的web頁面有些不同。雖然仍舊以<html>和包含標題的<head>標記以及其他指令碼開始,但是其內容僅僅是表示的各個頁面的版式設計。因此,不再需要有<body>元素,只需要<frameset>標記。

通過<frameset>標記的<rows>和<cols>屬性,瀏覽器視窗被分割為乙個個格仔。<rows>和<cols>的設定值可以是固定的畫素值,可以是總空間的百分比值,還可以是用*以及乙個數字相乘表示的分割剩餘空間的比例值。比如說:

cols=」80,20%,*」 分為3列,寬度分別為80畫素,視窗寬度的20%,以及剩餘寬度

rows=」25%,75%」 分為2列,寬度分別為視窗寬度的25%和75%

rows=」*,3*」 與上述第2個表示的一樣,分為2列,但表示方法不同:第一列寬度為第二列的1/3

在<frameset>和</frameset>之間,用多個<frame>標記表示每個分割區。col表示從左到右的列,row表示從上到下的行。每個<frame>有乙個src屬性,給出了這個frame的內容。

它可以是瀏覽器能顯示的任何乙個合法url,或者是另外乙個frameset。為預防遞迴現象,乙個frame不能包含它本身所在的frameset頁面。要用name屬性定義frame的名字,這樣就可以在**或者指令碼程式中引用它。

請看一段基本的frameset**:

<html>

<head>

<title>****** frameset</title>

</head>

<frameset cols=」40%,60%」 rows=」2*,*」>

<frame name=」topleft」 src=」

<frame name=」topright」 src=」

<frame name=」botleft」 src=」

<frame name=」botright」 src=」

</frameset>

</html>

<frameset rows=」105,*」>

<frame name=」adbanner」 src=」

<frameset cols=」40%,60%」>

<frame name=」left」 src=」

<frameset rows=」*,*」>

<frame name=」top」 src=」

<frame name=」bottom」 src=」

</frameset>

</frameset>

</frameset>

frame間的鏈結

乙個frameset結構的頁面,新文件只**進視窗的一部分中,而其他頁面則保持靜態不變。當使用者點選frame中的鏈結時,新內容就在同一frame內開啟。要讓新內容在其他frame中開啟,可以設定<a>標記的target屬性值為那個frame的name值。

而且,我們還可以設定開啟目標為當前可見的任意乙個frame,而不侷限於本身的frameset。目標可能是乙個巢狀的frameset中的frame,也可能是其他視窗中的frame。但是如果目標frame不存在,就會產生乙個帶有目標frame名字的新視窗。

下面舉個例子說明一下,假設有乙個簡單含2-frame的frameset,檔名叫做**如下:

<html>

<head><title>frommco home page</title></head>

<frameset cols=」115,*」>

<frame src=」

<frame name=」content」 src=」

</frameset>

</html>

檔案在左邊的frame中,其中有一系列鏈結,點選它們後新內容將在右邊的叫做content的frame中開啟。下面是的**:

<html><head></head>

<body><p><br>

<img src=」images/tmp_ alt=」frommco」><p>

<a href=」 target=」content」>main page</a><p>

<a href=」 target=」content」>our mission</a><p>

<a href=」 target=」content」>our staff</a><p>

<a href=」 target=」_parent」>frommco splash page</a>

</body></html>

請注意最後乙個鏈結中target的定義為_parent,這屬於4個特殊的保留值。它們是:

_parent:在當前frameset位置顯示新href。

_top:在當前整個視窗位置顯示新href,比如本身frameset位於另乙個frameset中。

_self:強制在當前frame中顯示新href。

_blank:在新視窗中顯示href。

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

<area shape=circle coords=」75,75,50″ href=」 target=」content」 alt=」main page」>

還有一種經常的情況是:web頁面中的大部分或者全部鏈結都要求在乙個特別的frame中開啟。這時,可以在頁面的<head>**區使用<base>標記設定預設的target,然後再分別定義特殊鏈結的target值。

修飾frame

frameset不僅在寬度、高度等方面具有可控制的數值,在美觀方面也同樣可以精確設定。

預設情況下,frameset的frame間有乙個凸起的邊沿,表示分割效果。如果不喜歡這個,想營造「無縫連線」的效果,可以在<frame>標記中設定frameborder=0來消除它。在3.

0及高版本的n**igator和internet explorer中,如果在<frameset>標記中設定frameborder=0,那麼除了設定為frameborder=1的frame外,所有其他frame的邊沿都將消失。

雖然設定了frameborder=0,有些瀏覽器仍舊會在frame間保留一些邊沿的顏色痕跡。這時,可以在<frameset>標記中新增framespacing=0(對internet explorer)或者border=0(對n**igator和opera)實現真正的無縫連線。

請看下面的**是如何使用這些屬性的:

<html>

<head><title>frommco home page</title></head>

<frameset cols=」115,*」 framespacing=0 border=0>

<frame src=」 frameborder=0 noresize scrolling=no>

<frame name=」content」 src=」 frameborder=0>

</frameset>

</html>

上面的**中有2個新的屬性:noresize表示鎖住frame而不允許使用滑鼠改變大小,scrolling=no表示遮蔽frame的滾動條,scrolling=yes表示允許,scrolling=auto表示根據顯示內容需要自動顯示滾動條。

浮動frame

浮動frame是html4.0規範中的乙個定義,目前的瀏覽器都支援它。

不象frameset表示的分割區樣子,乙個浮動frame作為乙個內建物件存在於web頁面上,其樣式就象乙個頁面上的乙個圖形或者乙個applet。浮動frame使用<iframe>標記,它具有與<frame>相同的大多數屬性設定,包括:name、src、marginwidth、marginheight、frameborder以及scrolling。

同時,它還具有與圖形或者applet一樣的height、width和align屬性。

而且,浮動frame遵循與普通frame一樣的target原則:我們可以通過它的name來指向它。本原則適用於在任一型別frame中的浮動frame,反之易然。

浮動frame中的沒有traget的鏈結指向它本身,而_parent鏈結則指向包含<iframe>的文件所在的frame或者視窗。比如:

<iframe name=」floater」 src=」 width=150 height=200 hspace=10 align=left>

<img src=」images/ alt=」you can』t see the floating frame」

width=150 height=200 hspace=10 align=right>

</iframe><br>

<a href=」 target=」floater」>show

<a href=」 target=」floater」>show

<a href=」 target=」floater」>bring back

注意,對應支援<iframe>標記的瀏覽器,任何位於<iframe>和</iframe>間的內容都將忽略。反之,其中的內容將顯示出來,這可以用作解釋當前瀏覽器不支援<iframe>。

何時使用frame

我們知道,frameset的基本用途就是分割瀏覽器視窗,使得視窗的一部分內容改變,而其他部分保持不變。利用這個特性,就可以實現工具欄導航功能,乙個frame內放置靜態選單頁面,使用者點選其中的專案後,在另外的frame內顯示相關的內容。這樣就可以從整體上減少檔案大小,因為不必在每個內容頁面中再包含選單專案。

frame有2個明顯的不足:

frame從另外的級別上增加了站點的管理,原因在於超級鏈結不僅僅要指向適當的頁面,而且也會裝載到相關的frame內。

另外,大多數瀏覽器在執行「新增書籤」的操作時,只能記錄下frameset的初始位置。不管新增書籤時是位於多麼深的frameset中,當再次選擇這個書籤時,就會返回到frameset的初始頁面。這就加大了訪問者瀏覽指定內容的難度。

但是,如果好好地組織站點資訊,使導航操作只有不深的幾層,那麼,使用frame就能很好地為訪問者服務。記住:訪問者都希望簡潔的導航資訊。

當然,導航並非是使用frame的唯一原因,也可以使用frame建立交換工具和交換頁面。而且,frame的多文件框架結構非常適於被j**ascript應用程式所操作。

用frame設計站點

最常用的frame結構就是「選單-內容」frameset。乙個frame內放置導航選單,另乙個frame內**子選單,每個子選單的鏈結就指向本身。唯一的有target的鏈結都在選單frame內。

請看下面的例程**:

<html><head>

<title>welcome to my site!</title>

</head>

<frameset cols=」150,*」>

<frame name=」menu」 src=」

<frame name=」content」 src=」

</frameset>

<body>

<!–如果是支援frame的瀏覽器,則不會顯示下面的內容;否則,也顯示出簡單選單頁面–>

welcome to my site.<p>

<a href=」

<a href=」

<a href=」

</body></html>

用指令碼控制導航frame

快速掌握漢字間架結構的方法

在傳統的書法教學中,儘管歷史上早已有了 歐陽詢間架結構36法 和 黃自元間架結構92法 等多種關於間架結構的說法,但由於這些 法則 過於深奧複雜,所以許多練習者一生苦練也很難弄明白其中的奧妙。我們的祖先發明了 公尺字格 田字格 九宮格 以及描紅 描摹 拓寫等諸多方式 方法來進行寫字教學。然而,許多人...

快速掌握佳能40D的基本拍攝技巧

快速掌握佳能40d的基本拍攝技巧 入門篇續 快速掌握佳能40d的基本拍攝技巧 入門篇續 前言當我的 快速掌握佳能40d的基本使用功能 入門篇 發貼後,得到了版主和眾多攝影愛好朋友的關注與支援。每當我收看到朋友的回貼,都被朋友們的熱情與支援所打動!近日我又陸續收到了許多朋友的回貼,強烈要求我寫攝影基本...

如何讓新招聘的業務員快速掌握信貸的專業知識及話術

重點關注 及時疏導新人的心理狀態。新人到乙個陌生的環境時,會產生陌生 迷茫 無助 不熟悉等等的情況,所以團隊經理要做的第一件事是關注新人的心理狀態,及時進行輔導。一定要想辦法讓新人盡快的和大家熟悉起來,所以多聚餐多唱歌是必不可少的,因為中國人最喜歡在飯桌上開啟自己。團隊組建完成後,第二道坎就是如何輔...