通過使用框架,你可以在同一個瀏覽器視窗中顯示不止一個頁面。 1、框架標簽(Frame) 簡單的三框架頁面: 所有主流瀏覽器都支持 <frame> 標簽。 標簽定義及使用說明 <frame> 標簽定義 <frameset> 中的子視窗(框架)。 <frameset> 中的每個 <frame> 都可以設 ...
通過使用框架,你可以在同一個瀏覽器視窗中顯示不止一個頁面。
通過使用框架,你可以在同一個瀏覽器視窗中顯示不止一個頁面,簡而言之,就是在一個視窗中顯示多個頁面。 每個頁面稱之為一個框架。並且每個框架獨立於其他的框架。
使用框架的壞處:必須同時跟蹤多個框架(網頁或HTML文檔),整個頁面很難列印。
1、框架標簽(Frame)
簡單的三框架頁面:
<frameset cols="25%,50%,25%"> <frame src="frame_a.htm"> <frame src="frame_b.htm"> <frame src="frame_c.htm"> </frameset>
所有主流瀏覽器都支持 <frame> 標簽。
標簽定義及使用說明
<frame> 標簽定義 <frameset> 中的子視窗(框架)。
<frameset> 中的每個 <frame> 都可以設置不同的屬性,比如 border、scrolling, noresize 等等。
HTML 4.01 與 HTML5之間的差異
HTML5 不支持 <frame> 標簽,HTML 4.01 支持 <frame> 標簽。
HTML 與 XHTML 之間的差異
在 HTML 中,<frame> 標簽沒有結束標簽。在 XHTML 中,<frame> 標簽必須被正確地關閉。
可選的屬性
屬性 | 值 | 描述 |
---|---|---|
frameborder | 0 1 |
HTML5 不支持。規定是否顯示框架周圍的邊框。 |
longdesc | URL | HTML5 不支持。規定一個包含有關框架內容的長描述的頁面。 |
marginheight | pixels | HTML5 不支持。規定框架的上方和下方的邊距。 |
marginwidth | pixels | HTML5 不支持。規定框架的左側和右側的邊距。 |
name | name | HTML5 不支持。規定框架的名稱。 |
noresize | noresize | HTML5 不支持。規定無法調整框架的大小。 |
scrolling | yes no auto |
HTML5 不支持。規定是否在框架中顯示滾動條。 |
src | URL | HTML5 不支持。規定在框架中顯示的文檔的 URL。 |
標準屬性
在 HTML 4.01 中,<frame> 標簽支持如下標準屬性:
屬性 | 值 | 描述 |
---|---|---|
class | classname | 規定元素的類名 |
id | id | 規定元素的唯一 id |
style | style_definition | 規定元素的行內樣式 |
title | text | 規定元素的額外信息 |
事件屬性
根據 W3C 的標準,在 HTML 4.01 中,<frame> 標簽不支持任何的事件屬性。
但是,所有的瀏覽器都支持 onload 事件。
基本的註意事項 - 有用的提示
假如一個框架有可見邊框,用戶可以拖動邊框來改變它的大小。為了避免這種情況發生,可以在 <frame> 標簽中加入:noresize="noresize"。
為不支持框架的瀏覽器添加 <noframes> 標簽。
重要提示:不能將 <body></body> 標簽與 <frameset></frameset> 標簽同時使用!不過,假如你添加包含一段文本的 <noframes> 標簽,就必須將這段文字嵌套於 <body></body> 標簽內。(在下麵的第一個實例中,可以查看它是如何實現的。)
<html> <frameset cols="25%,50%,25%"> <frame src="/example/html/frame_a.html"> <frame src="/example/html/frame_b.html"> <frame src="/example/html/frame_c.html">
<noframes> <body>您的瀏覽器無法處理框架!</body> </noframes> </frameset> </html>
2、框架結構標簽(<frameset>)
-
- 框架結構標簽(<frameset>)定義如何將視窗分割為框架
- 每個 frameset 定義了一系列行或列
- rows/columns 的值規定了每行或每列占據屏幕的面積
編者註:frameset 標簽也被某些文章和書籍譯為框架集。
3、標簽<iframe> 標簽
iframe 是個內聯框架,是在頁面里生成個內部框架。
格式
<iframe></iframe>
屬性
frameborder {int}:是否顯示框架的邊框;
src {URL}:指定一個資源(如網頁、圖片)的uri;
scrolling {boolean}:是否顯示框架的滾動條;
width {int}:定義iframe的寬度;
height {int}:定義iframe的高度;
示例
<body>
<h3>HTML標簽演示</h3>
<iframe src=1.1-ShowHtml.htm ></iframe>
</body>
註意事項
在 "<iframe>我是內容</iframe>" 內添加內容時,在展示頁面不會顯示添加的內容。所以還是使用src屬性指定一個頁面吧。應用場景
1) 版本升級頁面,版本日誌過多,可以把升級的信息放到一個iframe里。
2) 富文本編輯框,如博客園的【新建隨筆】區域。
4、frame,iframe,frameset之間的關係與區別
iframe 是在html頁面內嵌入框架 框架內可以連接另一個頁面, 如 <html> <head></head> <body> <iframe src="xxx.html"></iframe> </body> </html> frameset 在一個頁面中設置一個或多個框架 不能嵌套在body標簽里 <html> <head></head> <frameset> <frame src=""></frame> <frame src=""></frame> </frameset> </html>
frameset 它稱為框架標記,是用來告知HTML文件是框架模式,並且設定可視視窗怎麼分割
frame 它只是設定某一個框架視窗中的參數屬性
iframe 它是在一個頁面中嵌入一個框架視窗
frameset的屬性
1、cols 它是把整個畫面豎向分割成幾個畫面
2、rows 它是把整個畫面橫向分割成幾個畫面
3、frameborder 它表示設定這個框架的邊框值。它的值只有兩個0或者1.0表示不顯示邊框,1表示顯示邊框。
4、border 它表示了邊框的寬度
5、bordercolor 它是設定了框架邊框的顏色
frame的屬性
1、src 指在此框架視窗中要顯示的網頁檔案的鏈接
2、name 指這個框架視窗的名稱
3、framespacing 指框架和框架之間保留的空白的距離
4、scrlling 指該框架視窗是否要顯示滾動條
6、noresize 指框架的尺寸不能被隨意拖動,改變大小
7、marginheight 指框架頂部和底部邊緣所保留的空間的大小
8、marginwidth 指框架左右兩邊邊緣所保留的空間的大小。
frameset和frame標簽必須在一起使用
frame有一個重要的值是target,它表示在指定的框架中打開網頁
而target有四個值
1、blank 它表示在一個新的視窗中打開鏈接網頁
2、top 它表示在本視窗中打開鏈接網頁
3、parent 在上一層的框架中打開鏈接網頁
4、self 在超鏈接中打開鏈接網頁
target是在編寫導航時肯定會用到的
noframes 指當瀏覽器完全顯示不出這個框架時,頁面就會顯示出<noframes></noframes>內的內容。
iframe的屬性
1、name 是框架視窗的名稱
2、align 是框架視窗中內容的對其方式
3、width 是框架視窗的寬,單位是pixels
4、height 是框架視窗的長,單位是pixels
5、marginwidth 是插入的文件和框架左右邊緣所保留的空間
6、marginheight 是插入的文件和框架上下邊緣所保留的空間
7、frameborder 是指是否顯示邊框。1表示顯示邊框,0表示不顯示邊框
8、scrolling 是指是否允許使用滾動條。
利用frameset和frame可以把網頁製作成所需要的不同大小的框架,可以用來佈局。
iframe則是把一些網頁嵌入到當前網頁中,達到所需要的效果。
■ 框架概念 :
所謂框架便是網頁畫面分成幾個框窗,同時取得多個 URL。只需要 <FRAMESET> <FRAME>
即可,而所有框架標記需要放在一個總起的 html 檔,這個檔案只記錄了該框架 如何劃分,不會顯示任何資料,所以不必放入 <BODY>
標記,瀏覽這框架必須讀取這檔 案而不是其它框窗的檔案。<FRAMESET> 是用以劃分框窗,每一框窗由一個
<FRAME> 標 記所標示,<FRAME>必須在 <FRAMESET> 範圍中使用。如下例:
<frameset cols="50%,*">
<frame name="hello" src="up2u.html">
<frame name="hi" src="me2.html">
</frameset>
此例中 <FRAMESET> 把畫面分成左右兩相等部分,左便是顯示 up2u.html,右邊則會顯示 me2.html 這檔案,<FRAME> 標記所標示的框窗永遠是按由上而下、由左至右的次序。
本節與 Composer 教室的【運用框架】大部分相同,只是本節增加了內容及較為詳細,正 如其它篇章一樣並不會提及網頁製作工具,若閣下學會了 HTML 相信你亦不會選用 Composer , FrontPage 一類的工具了。
■ <FRAMESET> <FRAME> :
<FRAMESET> 稱框架標記,用以宣告HTML文件為框架模式,並設定視窗如何分割。
<FRAME> 則只是設定某一個框窗內的參數屬性。
<FRAMESET> 參數設定:
例子:<frameset rows="90,*" frameborder="0" border=0 framespacing="2" bordercolor="#008000">
COLS="90,*"
垂直切割畫面(如分左右兩個畫面),接受整數值、百分數, * 則代表占用餘下空
間。數值的個數代表分成的視窗數目且以逗號分隔。例如COLS="30,*,50%" 可以 切成叄個視窗,第一個視窗是 30 pixels
的寬度,為一絕對分割,第二個視窗是當 分配完第一及第叄個視窗後剩下的空間,第叄個視窗則占整個畫面的 50% 寬度 為
一相對分割。您可自己調整數字。
ROWS="120,*"
就是橫向切割,將畫面上下分開,數值設定同上。唯 COLS 與 ROWS 兩參數儘量 不要同在一個 <FRAMESET> 標記中,因 Netacape 偶然不能顯示這類形的框架,盡 採用多重分割。
frameborder="0"
設定框架的邊框,其值只有 0 和 1 , 0 表示不要邊框, 1 表示要顯示邊框。(避 免使用 yes 或 no )
border="0"
設定框架的邊框厚度,以 pixels 為單位。
bordercolor="#008000"
設定框架的邊框顏色。顏色值請參考【調色原理】。
framespacing="5"
表示框架與框架間的保留空白的距離。
<FRAME> 參數設定:
例子:<frame name="top" src="a.html" marginwidth="5"
marginheight="5" scrolling="Auto" frameborder="0" noresize
framespacing="6" bordercolor="#0000FF">
SRC="a.html"
設定此框窗中要顯示的網頁檔案名稱,每個框窗一定要對應著一個網頁檔案。你可 使用絕對路徑或相對路徑,有關此兩者詳見於【連結進階】 。
NAME="top"
設定這個框窗的名稱,這樣才能指定框架來作連結,必須但任意命名。
frameborder=0
設定框架的邊框,其值只有 0 和 1 , 0 表示不要邊框, 1 表示要顯示邊框。(避 免使用 yes 或 no )
framespacing="6"
表示框架與框架間的保留空白的距離。
bordercolor="#008000"
設定框架的邊框顏色。顏色值請參考【HTML 剖析】。
scrolling="Auto"
設定是否要顯示卷軸,YES 表示要顯示卷軸,NO 表示無論如何都不要顯示, AUTO是視情況顯示。
noresize
設定不讓使用者可以改變這個框框的大小,亦沒有設定此參數,使用者可以很隨 意地拉動框架,改變其大小。
marginhight=5
表示框架高度部份邊緣所保留的空間。
marginwidth=5
表示框架寬度部份邊緣所保留的空間。
以下是一些例子:(與 Composer 教室的【運用框架】相同)
例子 HTML Code
<frameset rows="80,*">
<frame name="top" src="a.html">
<frame name="bottom" src="b.html">
</frameset>
例子 HTML Code
<frameset rows="80,*,80">
<frame name="top" src="a.html">
<frame name="middle" src="b.html">
<frame name="bottom" src="c.html">
</frameset>
例子 HTML Code
<frameset cols="150,*">
<frameset rows="80,*">
<frame name="upper_left" src="a.html">
<frame name="lower_left" src="b.html">
</frameset>
<frame name="right" src="c.html">
</frameset>
例子 HTML Code
<frameset rows="80,*">
<frame name="top" src="a.html">
<frameset cols="150,*">
<frame name="lower_left" src="b.html">
<frame name="lower_right" src="c.html">
</frameset>
</frameset>
例子 HTML Code
<frameset cols="150,*">
<frame name="left" src="a.html">
<frameset rows="80,*">
<frame name="upper_right" src="b.html">
<frame name="lower_right" src="c.html">
</frameset>
</frameset>
■ <NOFRAMES> :
當別人使用的瀏覽器太舊,不支援框架這個功能時,他看到的將會是一片空白。為了避免 這種情況,可使用 <NOFRAMES>
這個標記,當使用者的瀏覽器看不到框架時,他就會看到 <NOFRAMES> 與 </NOFRAMES>
之間的內容,而不是一片空白。這些內容可以是提醒 瀏覽轉用新的瀏覽器的字句,甚至是一個沒有框架的網頁或能自動切換至沒有框架的版本 亦可。
應用方法:
在<frameset> 標記範圍加入 </NOFRAMES> 標記,以下是一個例子:
<frameset rows="80,*">
<noframes>
<body>
很抱歉,閣下使用的瀏覽器不支援框架功能,請轉用新的瀏覽器。
</body>
</noframes>
<frame name="top" src="a.html">
<frame name="bottom" src="b.html">
</frameset>
若瀏覽器支援框架,那麼它不會理會 <noframes> 中的東西,但若瀏覽器不支援框架,由 於不認識所有框架標記,不明的標記會被略過,標記包圍的東西便被解讀出來,所以放在 <noframes>範圍內的文字會被顯示。
■ <IFRAME> :
這標記只適用於 IE(comet:也使用於FireFox)。 它的作用是在一頁網頁中間插入一個框窗以顯示另一個文件。它是 一個圍堵標記,但圍著的字句只有在瀏覽器不支援 iframe 標記時才會顯示,如<noframes> 一樣,可以放些提醒字句之類。通常 iframe 配合一個辨認瀏覽器的 JavaScript 會較好,若 JavaScript 認出該瀏覽器並非 Internet Explorer 便會切換至另一版本。PS:一定要使用</iframe>關閉,否則後面的內容顯示不出來。
<iframe> 的參數設定如下:
例子: <iframe src="iframe.html" name="test" align="MIDDLE"
width="300" height="100" marginwidth="1" marginheight="1"
frameborder="1" scrolling="Yes"> </iframe>
src="iframe.html"
欲顯示於此框窗的文件來源除檔案名稱,必要加上相對或絕對路徑。
name="test"
此框窗名稱,這是連結標記的 target 參數所需要的,
align="MIDDLE"
可選值為 left, right, top, middle, bottom,作用不大
width="300" height="100"
框窗的寬及長,以 pixels 為單位。
marginwidth="1" marginheight="1"
該插入的文件與框邊所保留的空間。
frameborder="1"
使用 1 表示顯示邊框, 0 則不顯示。(可以是 yes 或 no)
scrolling="Yes"
使用 Yes 表示容許捲動(內定), No 則不容許捲動
frame和iframe的區別
1、frame不能脫離frameSet單獨使用,iframe可以;
2、frame不能放在body中;如下可以正常顯示:
<!--<body>--><frameset rows="50%,*">
<frame name="frame1"
src="test1.htm"/>
<frame name="frame2"
src="test2.htm"/>
</frameset>
<!--<body>-->
如下不能正常顯示:
<body><frameset rows="50%,*">
<frame name="frame1"
src="test1.htm"/>
<frame name="frame2"
src="test2.htm"/>
</frameset>
<body>
3、嵌套在frameSet中的iframe必需放在body中;如下可以正常顯示:
<body><frameset>
<iframe name="frame1"
src="test1.htm"/>
<iframe name="frame2"
src="test2.htm"/>
</frameset>
</body>
如下不能正常顯示:
<!--<body>--><frameset>
<iframe name="frame1"
src="test1.htm"/>
<iframe name="frame2"
src="test2.htm"/>
</frameset>
<!--</body>-->
4、不嵌套在frameSet中的iframe可以隨意使用;
如下均可以正常顯示:
<iframe name="frame1"
src="test1.htm"/>
<iframe name="frame2"
src="test2.htm"/>
</body>
<!--<body>-->
<iframe name="frame1"
src="test1.htm"/>
<iframe name="frame2"
src="test2.htm"/>
<!--</body>-->
5、frame的高度只能通過frameSet控制;iframe可以自己控制,不能通過frameSet控制,如:
<!--<body>--><frameset rows="50%,*">
<frame name="frame1"
src="test1.htm"/>
<frame name="frame2"
src="test2.htm"/>
</frameset>
<!--</body>-->
<body>
<frameset>
<iframe height="30%"
name="frame1" src="test1.htm"/>
<iframe height="100"
name="frame2" src="test2.htm"/>
</frameset>
</body>
5、frame和iframe的區別
1、frame不能脫離frameSet單獨使用,iframe可以;
2、frame不能放在body中;如下可以正常顯示:
<!--<body>-->
<frameset rows="50%,*">
<frame name="frame1" src="test1.htm"/>
<frame name="frame2" src="test2.htm"/>
</frameset>
<!--<body>-->
如下不能正常顯示:
<body>
<frameset rows="50%,*">
<frame name="frame1" src="test1.htm"/>
<frame name="frame2" src="test2.htm"/>
</frameset>
<body>
3、嵌套在frameSet中的iframe必需放在body中;如下可以正常顯示:
<body>
<frameset>
<iframe name="frame1" src="test1.htm"/>
<iframe name="frame2" src="test2.htm"/>
</frameset>
</body>
如下不能正常顯示:
<!--<body>-->
<frameset>
<iframe name="frame1" src="test1.htm"/>
<iframe name="frame2" src="test2.htm"/>
</frameset>
<!--</body>-->
4、不嵌套在frameSet中的iframe可以隨意使用;
如下均可以正常顯示:
<body>
<iframe name="frame1" src="test1.htm"/>
<iframe name="frame2" src="test2.htm"/>
</body>
<!--<body>-->
<iframe name="frame1" src="test1.htm"/>
<iframe name="frame2" src="test2.htm"/>
<!--</body>-->
5、frame的高度只能通過frameSet控制;iframe可以自己控制,不能通過frameSet控制,如:
<!--<body>-->
<frameset rows="50%,*">
<frame name="frame1" src="test1.htm"/>
<frame name="frame2" src="test2.htm"/>
</frameset>
<!--</body>-->
<body>
<frameset>
<iframe height="30%" name="frame1" src="test1.htm"/>
<iframe height="100" name="frame2" src="test2.htm"/>
</frameset>
</body>
6、如果在同一個頁面使用了兩個以上的iframe,在IE中可以正常顯示,在firefox中只能顯示出第一個;使用兩個以上的frame在IE和firefox中均可正常
以上代碼在IE7和firefox2.0中測試。
另外相關論壇竊取總結 :-)
1Frame與Iframe兩者可以實現的功能基本相同,不過Iframe比Frame具有更多的靈活性。
frame是整個頁面的框架,iframe是內嵌的網頁元素,也可以說是內嵌的框架
Iframe標記又叫浮動幀標記,可以用它將一個HTML文檔嵌入在一個HTML中顯示。它和Frame標記的最大區別是在網頁中嵌入的<Iframe></Iframe>所包含的內容與整個頁面是一個整體,而<Frame></Frame>所包含的內容是一個獨立的個體,是可以獨立顯示的。另外,應用Iframe還可以在同一個頁面中多次顯示同一內容,而不必重覆這段內容的代碼。
2iframe 可以放到表格裡面。frame 則不行。
<table>
<tr>
<td><iframe id="" src=""></iframe></td><td></td>
</tr>
</table>
3frame必須在frameset里
而frameset不能與body元素共存,也就說有frameset元素的文檔只能是一個框架集,不能有別的東東
4IFrame是放在網業的什麼地方都行
但是frame只能放到上下左右四個方向
5iframme 是活動幀
而frame是非活動幀
iframe使用方法如下
<iframe scr="sourcefile" frameborder=0 width="width" height="height"></iframe>
iframe用起來更靈活,不需要frame那麼多講究
而且放的位置也可以自己設
iframe是內嵌的,比較靈活,不過也有不好的地方,就是位置在不同的瀏覽器和解析度下有可能不同,有時會把本來好好的頁面搞得變形
iframe就沒有這個限制
6iframe 可以加在網頁中任何一個地方。
而frame 通常做框架頁
iframe是一個網頁中的子框架,兩網頁間是父子關係
frame是框架,由多個併列的網頁構成
樓上的說得對,iframe是浮動的。就像是浮動面板,而frame是固定的。只能四個方向上的。
你可以直接在網頁里用一下,看看效果就行了。
7<iframe>是被嵌入在網頁的元素,而<frame>用於組成一個頁面的多個框架!
iframe 更利於版面的設計
frame 一條直一條豎的不美觀
frame的那一條線也可以去掉的呦!只不過,iframe更方便對其進行數據的交換吧!
iframe可以放置到你想放的任意位置,控制起來比frame方便
8iframe是內部幀,可以嵌在一個頁面裡面,設置內部幀的屬性可以使得整體看上去象一個完整的頁面,而不是由多個頁面組成,frame有frame的好處,比如何多網站,上面放廣告條,左邊放菜單,右邊放內容,這樣上邊和左邊的內容都可不動,只刷新右邊頁面的內容,選擇iframe還是frame完全看自己的需求。
說白了,用IFrame比用Frame少一個文件(FrameSet),但支持Frame的瀏覽器比較多。
我為我公司做的網站,整個是用了iframe,linux帶的瀏覽器都不支持,哎呀,醜呀,不過我還是喜歡用iframe
還有iframe可以放在表格裡,然後ifame設置成width=100% height=100%
我就可以只需修改我的表格的寬度和高度,這樣的話有利於排版
其實Frame是一個控制項
使用方法和Panle相同。
frame是把網頁分成多個頁面的頁面。它要有一個框架集頁面frameset
iframe是一個浮動的框架,就是在你的頁面里再加上一個頁面,
<frame>用來把頁面橫著或豎著切開,
<iframe>用來在頁面中插入一個矩形的小視窗
Frame一般用來設置頁面佈局,將整個頁面分成規則的幾塊,每一塊裡面包含一個新頁面.
iframe用來在頁面的任何地方插入一個新的頁面.
因此,Frame用來控制頁面格式,比如一本書,左邊是章節目錄,右邊是正文,正文很長,看的時候要拖動,但又不想目錄也被拖動得開不到了.因此最好將頁面用Frame分成規則的2頁,一左一右.
而iframe則更靈活,不要求將整個頁面劃分,你可以在頁面任何地方用iframe嵌入新的頁面.
我個人認為:
<frame>用於全頁面
<iframe>只用於局部