HTML5 已經不再推薦使用 <frame> 和 <frameset> 元素來創建多個可滾動的頁面區域。這些元素在 HTML4 中很常見,但已被認為是過時的,並且在現代網頁設計中不再使用。取而代之的是使用 <iframe> 元素和 CSS 來實現類似的效果。
使用 <iframe>
<iframe> 元素允許您在當前頁面中嵌入另一個 HTML 頁面。它比 <frame> 和 <frameset> 更靈活且更易於使用。
示例
html
<pre style="border: 1px solid rgb(170, 170, 170); padding: 10px;overflow: scroll;"><code>
<!DOCTYPE html>
<html lang="zh-TW">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>使用 iframe 替代 frame</title>
<style>
body {
display: flex;
flex-direction: column;
height: 100vh;
margin: 0;
}
header, footer {
background-color: #f1f1f1;
padding: 20px;
text-align: center;
}
iframe {
flex: 1;
border: none;
}
</style>
</head>
<body>
<header>這是頁首</header>
<iframe src="content.html" title="嵌入內容"></iframe>
<footer>這是頁尾</footer>
</body>
</html>
</code></pre>
<br><br><br>
在這個示例中,我們使用 <iframe> 元素來嵌入另一個 HTML 頁面(content.html),並使用 CSS 來設置頁面布局,使 <iframe> 佔據剩餘的空間。
使用 CSS 和 JavaScript
除了使用 <iframe>,您還可以通過 CSS 和 JavaScript 來創建類似於 <frame> 的布局。例如,使用 CSS 的 grid 或 flexbox 佈局可以輕鬆地創建複雜的頁面布局。
示例:使用 CSS Grid 佈局
html
<!DOCTYPE html>
<html lang="zh-TW">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>使用 CSS Grid 替代 frame</title>
<style>
body {
display: grid;
grid-template-rows: auto 1fr auto;
grid-template-areas:
"header"
"content"
"footer";
height: 100vh;
margin: 0;
}
header {
grid-area: header;
background-color: #f1f1f1;
padding: 20px;
text-align: center;
}
main {
grid-area: content;
overflow: auto;
}
footer {
grid-area: footer;
background-color: #f1f1f1;
padding: 20px;
text-align: center;
}
</style>
</head>
<body>
<header>這是頁首</header>
<main>
<!-- 這裡的內容可以動態載入 -->
<p>這是主要內容區域。</p>
</main>
<footer>這是頁尾</footer>
</body>
</html>
在這個示例中,我們使用 CSS Grid 來定義頁面的佈局。<header> 和 <footer> 固定在頁面的頂部和底部,而 <main> 佔據中間的可滾動區域。這樣的佈局可以通過 JavaScript 動態加載和更新內容,實現與 <frame> 相似的效果。
總結
<iframe>:用於在當前頁面中嵌入另一個 HTML 頁面,替代 <frame> 和 <frameset>。
CSS Grid 或 Flexbox:用於創建現代、響應式的頁面佈局,搭配 JavaScript 可以實現動態內容加載。
這些方法都比過時的 <frame> 和 <frameset> 更加靈活和強大,能夠更好地適應現代網頁設計需求。