1. 程式人生 > 其它 >8.10前端之Html框架

8.10前端之Html框架

8.10前端之Html框架

作用

通過使用框架,你可以在同一個瀏覽器視窗中顯示不止一個頁面。

  • 每份HTML文件稱為一個框架

  • 每個框架都獨立於其他的框架。

使用框架的壞處:

  • 開發人員必須同時跟蹤更多的HTML文件

  • 很難列印整張頁面

分類

  • 垂直框架

  • 水平框架

  • 混合框架

  • 導航框架

  • 內聯框架


框架結構標籤<frameset>

  • 框架結構標籤(<frameset>)定義如何將視窗分割為框架

  • 每個 frameset 定義了一系列行

  • rows/columns 的值規定了每行或每列佔據螢幕的面積

框架標籤<frame>
  • 定義了放置在每個框架中的 HTML 文件

一個框架有可見邊框,使用者可以拖動邊框來改變它的大小。為了避免這種情況發生,可以在 <frame> 標籤中加入:noresize="noresize"。

重要提示

不能將 <body></body> 標籤與 <frameset></frameset> 標籤同時使用!不過,假如你新增包含一段文字的 <noframes> 標籤,就必須將這段文字巢狀於 <body></body> 標籤內。(在下面的第一個例項中,可以檢視它是如何實現的。)

使用<noframes>
標籤
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="description" content="這是一個框架的練習" />
<title>A demo about frame</title>
</head>

<frameset cols="40%,30%,30%">
<frame src="SemanticDemoPractice.html" />
<frame src="BootstrapDemoPractice.html" />
<frame src="ColumnPracticeDemoNo1.html" />

<noframes>
<body>
瀏覽器無法處理框架!!!
<body>
</noframes>
</frameset>
</html>
垂直框架--->cols(列屬性)
    <frameset cols="40%,30%,30%">
<frame src="SemanticDemoPractice.html" />
<frame src="BootstrapDemoPractice.html" />
<frame src="ColumnPracticeDemoNo1.html" />

<noframes>
<body>
瀏覽器無法處理框架!!!
<body>
</noframes>
</frameset>
水平框架--->rows(行屬性)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="description" content="這是一個框架的練習,試用水平排版" />
<title>This is a practice about rows</title>
</head>

<frameset rows="30%,20%,30%">
<frame src="IframePractice.html" />
<frame src="PracticeDemoNo1.html" />
<frame src="ResponsiveDesignPractice.html" />
</frameset>
<body>
</body>
</html>
混合框架結構--->巢狀<frameset>標籤
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="description" content="這是一個關於框架的練習Demo" />
<title>This is a Demo</title>
</head>
<frameset rows="50%">
<frame src="FramesetPracticeDemoNo3.html" />
<frameset cols="30%,30%,40%">
<frame src="SemanticDemoPractice.html" />
<frame src="PracticeList.html" />
<frame src="IframePractice.html" />
</frameset>
</frameset>
</html>
導航框架

目標Html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<a href="BootstrapDemoPractice.html" target="showframe">沒有錨的連線</a>
<br />
<a href="SemanticDemoPractice.html#C10" target="showframe">帶有錨的連線</a>
</body>
</html>

SemanticDemoPractice

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="description" content="語義元素的練習" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Practice about Semantic Elements</title>
</head>
<body>
<nav>
<a href="TablePracticeDemoNo1.html">Table</a> |
<a href="SemanticDemoPractice.html">Semantic</a> |
<a href="ResponsiveDesignPractice.html">Response</a>
</nav>
<section contenteditable="false">
<h1>Semantic Elements</h1>
<p contenteditable="true" style="font-family: '微軟雅黑'; color: saddlebrown; font-size: medium;">This is a content about Semantic Elements</p>
</section>
<section contenteditable="false">
<h1>Content</h1>
<p contenteditable="true" style="font-family: '微軟雅黑'; color: darkmagenta; font-size: large;">Input Something</p>
</section>
<article contenteditable="false" style="font-family: '微軟雅黑'; color: black; font-size: large;">
<h1>What can you do</h1>
<p contenteditable="false" style="font-family: '微軟雅黑'; color: royalblue; font-size: medium;">It is a content</p>
</article>
<br />
<article contenteditable="false" style="font-family: '微軟雅黑'; color: blanchedalmond;">
<header contenteditable="false" style="font-family: '微軟雅黑'; color: darkblue; font-size: larger;">
<h1>Title of the article</h1>
<p contenteditable="false" style="font-family: '微軟雅黑'; color: black; font-size: medium;">What is the title of the article</p>
</header>
<p contenteditable="true" style="font-family: '微軟雅黑'; color: black; font-size: initial;">Input your answer</p>
<footer contenteditable="false" style="font-family: '微軟雅黑'; color: darkcyan; font-size: inherit;">
<p contenteditable="false">Information from:<a href="PracticeList.html">[email protected]</a>.</p>
</footer>
</article>
<br />
<article contenteditable="false" style="font-family: '微軟雅黑';" id="C10">
<!--這裡是錨的位置-->
<p contenteditable="false" style="font-family: '微軟雅黑';">This is a content</p>
<aside contenteditable="false" style="font-family: '微軟雅黑'; color: red; font-size: inherit;">
<ul contenteditable="false" style="font-family: '微軟雅黑'; color: hotpink;">
<li>Html</li>
<li>Css</li>
<li>JavaScript</li>
</ul>
</aside>
</article>
<br />
<p contenteditable="false">This is a content about picture</p>
<figure>
<figcaption contenteditable="false" style="font-family: '微軟雅黑'; color: red; text-align: left;">皮卡丘,大大大</figcaption>
<img src="../Picture/Big.gif" alt="This is a Picture" width="304" height="228" />
</figure>
<br />
<p contenteditable="false" style="font-family: '微軟雅黑';color: red;">字元實體</p>
<p contenteditable="false">&X;</p>
<p contenteditable="false">&#174</p>
<br />
<p contenteditable="false">將要顯示 &</p>
<p contenteditable="false">將要顯示 &#8364</p>
<p contenteditable="false">將要顯示 &#x20AC</p>
</body>
</html>

導航Html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="description" content="這是另一個關於框架的練習" />
<title>This is another practice about frameset</title>
</head>
<frameset cols="120,*">
<frame src="TargetDemo.html" />
<frame src="SemanticDemoPractice.html#C10" name="showframe" />
</frameset>
</html>
不可改變框架大小的屬性--->noresize屬性
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>This is a Demo</title>
</head>
<frameset cols="30%,30%" noresize="noresize">
<frame src="ColumnPracticeDemoNo1.html" />
<frame src="TargetDemo.html" />
</frameset>
<body>
</body>
</html>

這個效果會將目標的引用部分的內容直接指向內聯框架--->實現在一個Html介面開啟多個Html內容

幾個需要注意的點:

  • 使用框架導航跳轉至指定的節--->需要定位到指定Html的錨的話需要在src引用的時候帶上錨

  • 跳轉至框架內一個指定的節--->直接在src引用上帶上錨,在frameset會直接展示錨部分的內容

  • 沒有noresize屬性的框架其邊界都是可以拖動的

It's a lonely road!!!