不使用iframe如何实现左边导航栏、右边子页面,点击导航栏后右边的子页面显示响应页面,请给出一个完整的页面代码
时间: 2024-05-09 20:20:43 浏览: 81
以下是一个使用CSS布局的例子,点击导航栏后右边的子页面会显示相应的内容:
HTML代码:
<!DOCTYPE html>
<html>
<head>
<title>左侧导航栏和右侧子页面</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div class="container">
<div class="nav">
<ul>
<li><a href="#page1">页面1</a></li>
<li><a href="#page2">页面2</a></li>
<li><a href="#page3">页面3</a></li>
<li><a href="#page4">页面4</a></li>
</ul>
</div>
<div class="content">
<div id="page1" class="page">
<h2>页面1</h2>
<p>这是页面1的内容。</p>
</div>
<div id="page2" class="page">
<h2>页面2</h2>
<p>这是页面2的内容。</p>
</div>
<div id="page3" class="page">
<h2>页面3</h2>
<p>这是页面3的内容。</p>
</div>
<div id="page4" class="page">
<h2>页面4</h2>
<p>这是页面4的内容。</p>
</div>
</div>
</div>
</body>
</html>
CSS代码:
* {
margin: 0;
padding: 0;
}
.container {
display: flex;
height: 100vh;
}
.nav {
background-color: #333;
color: #fff;
padding: 20px;
}
.nav ul {
list-style: none;
}
.nav li {
margin-bottom: 10px;
}
.nav a {
color: #fff;
text-decoration: none;
}
.content {
flex: 1;
padding: 20px;
}
.page {
display: none;
}
.page:target {
display: block;
}
解释一下CSS代码:
*
选择器会将所有元素的外边距和内边距都设置为0,这样就不会有默认的边距影响布局。.container
设置为flex布局,这样左边的导航栏和右边的子页面就能够一起占据整个页面。.nav
设置导航栏的样式,包括背景颜色、文字颜色和内边距。.nav ul
将列表样式去掉。.nav li
设置导航栏每个选项之间的间距。.nav a
设置导航栏链接的样式,包括文字颜色和去掉下划线。.content
设置右侧子页面的样式,包括内边距和flex布局占据剩余空间。.page
将子页面的样式设置为不显示。.page:target
使用伪类选择器,当子页面被点击后显示。:target
会选中当前URL的锚点(#page1、#page2等)所对应的元素。
这样就实现了左边导航栏、右边子页面的布局。
相关推荐
















