【Vue+elementUI】container布局容器header和aside固定实现思路

代码就不多敲了,说下需求:

在container布局容器中,当main内内容过多时,若不用分页,则需要向下拖动,为了更好的用户体验,将header和aside用fixed固定定位。
一般aside中会放一个NavMenu 导航菜单,当导航菜单没添加collapse折叠时,直接使用fixed不影响布局。
如果添加了collapse,那当事件触发折叠时,菜单会进行折叠,但是右侧的main区域不会自适应填充折叠空出的部分,可以使用以下思路:
对main区域动态设置margin-left,当折叠时margin-left适当减小,核心就下面的代码:

 if (折叠了)
        return this.$refs.main.$el.style.marginLeft = 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
抱歉,我作为 AI 语言模型并不能生成完整的代码。但是我可以给出一些代码示例来帮助你理解如何使用 Vue.jsElement UI 实现企业门户网站的搭建。 1. 创建 Vue.js 项目和安装 Element UI 首先,使用 Vue CLI 创建一个新的项目,并安装 Element UI: ```bash vue create my-portal-site cd my-portal-site npm install element-ui ``` 2. 构建页面布局和设计 在 src/App.vue 文件,使用 Element UI 的 layout 组件来创建网站的头部、底部和侧边栏。 ```html <template> <div id="app"> <el-container> <el-header>头部</el-header> <el-container> <el-aside>侧边栏</el-aside> <el-main>主要内容</el-main> </el-container> <el-footer>底部</el-footer> </el-container> </div> </template> ``` 3. 集成后端数据 使用 Element UI 的表格和表单组件来显示和输入数据。例如,在 src/components/UserList.vue 文件,使用 el-table 组件来显示用户列表。 ```html <template> <div> <el-table :data="users"> <el-table-column prop="name" label="姓名"></el-table-column> <el-table-column prop="email" label="邮箱"></el-table-column> <el-table-column prop="role" label="角色"></el-table-column> </el-table> </div> </template> <script> export default { data() { return { users: [ { name: '张三', email: 'zhangsan@example.com', role: '管理员' }, { name: '李四', email: 'lisi@example.com', role: '普通用户' }, { name: '王五', email: 'wangwu@example.com', role: '普通用户' }, ], }; }, }; </script> ``` 4. 导航和路由功能 使用 Element UI 的菜单组件和路由功能来实现网站的导航和路由功能。例如,在 src/App.vue 文件,使用 el-menu 组件来创建导航菜单,并在 router/index.js 文件定义路由。 ```html <template> <div id="app"> <el-container> <el-header> <el-menu mode="horizontal"> <el-menu-item index="/">首页</el-menu-item> <el-menu-item index="/users">用户列表</el-menu-item> </el-menu> </el-header> <el-container> <el-aside>侧边栏</el-aside> <el-main> <router-view></router-view> </el-main> </el-container> <el-footer>底部</el-footer> </el-container> </div> </template> ``` ```javascript // router/index.js import Vue from 'vue'; import VueRouter from 'vue-router'; import Home from '../views/Home.vue'; import UserList from '../components/UserList.vue'; Vue.use(VueRouter); const routes = [ { path: '/', name: 'Home', component: Home, }, { path: '/users', name: 'UserList', component: UserList, }, ]; const router = new VueRouter({ mode: 'history', base: process.env.BASE_URL, routes, }); export default router; ``` 5. 主题定制和自定义组件 Element UI 提供了丰富的主题定制功能,可以通过修改样式变量来修改页面的外观和风格。例如,在 src/main.js 文件,可以引入自定义主题样式。 ```javascript // src/main.js import Vue from 'vue'; import App from './App.vue'; import router from './router'; import ElementUI from 'element-ui'; import 'element-ui/lib/theme-chalk/index.css'; import './assets/theme.css'; // 自定义主题样式 Vue.use(ElementUI); Vue.config.productionTip = false; new Vue({ router, render: (h) => h(App), }).$mount('#app'); ``` 此外,还可以使用自定义组件来增强网站的功能。例如,在 src/components/HelloWorld.vue 文件,定义一个自定义组件,用于显示问候语。 ```html <template> <div> <span>{{ message }}</span> </div> </template> <script> export default { data() { return { message: 'Hello, World!', }; }, }; </script> ``` 6. 构建和部署 最后,使用 npm run build 命令来构建生产环境的静态文件,然后将其部署到服务器上。 ```bash npm run build ``` 以上是一个简单的企业门户网站的代码示例,具体实现方式还需要根据具体需求进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值