不使用iframe如何实现左边导航栏、右边子页面,点击导航栏后右边的子页面显示响应页面,请给出一个完整的页面代码
时间: 2024-05-09 13:20:43 浏览: 73
element-ui 实现响应式导航栏的示例代码
5星 · 资源好评率100%
以下是一个使用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等)所对应的元素。
这样就实现了左边导航栏、右边子页面的布局。
阅读全文