css实现 这边菜单右边内容区域,菜单栏可以收起和展开,内容区域不能超出浏览器
时间: 2023-11-28 12:04:51 浏览: 64
可以使用CSS中的flex布局来实现这个效果。首先,将菜单栏和内容区域用一个父容器包裹起来,设置display为flex,然后设置菜单栏的宽度为固定值,内容区域的宽度为flex-grow: 1,这样就可以让内容区域占满剩余的宽度。
接着,可以使用JavaScript来控制菜单栏的展开和收起。具体实现可以设置一个按钮,点击按钮时切换菜单栏的宽度为0或固定值。同时,设置内容区域的max-width属性为100%来保证不会超出浏览器宽度。
以下是示例代码:
HTML部分:
```
<div class="container">
<div class="menu">
<!-- 菜单内容 -->
<button class="toggle-btn">收起菜单</button>
</div>
<div class="content">
<!-- 内容区域 -->
</div>
</div>
```
CSS部分:
```
.container {
display: flex;
flex-direction: row;
}
.menu {
width: 200px; /* 菜单栏宽度 */
transition: width 0.3s ease-in-out; /* 宽度变化动画 */
}
.content {
flex-grow: 1; /* 内容区域占满剩余宽度 */
max-width: 100%; /* 最大宽度不超过浏览器宽度 */
}
/* 收起菜单的样式 */
.menu.collapsed {
width: 0;
}
/* 切换按钮的样式 */
.toggle-btn {
display: block;
margin: 10px;
}
/* 展开菜单时隐藏按钮 */
.menu:not(.collapsed) .toggle-btn {
display: none;
}
```
JavaScript部分:
```
var menu = document.querySelector('.menu');
var toggleBtn = document.querySelector('.toggle-btn');
toggleBtn.addEventListener('click', function() {
menu.classList.toggle('collapsed');
});
```
阅读全文