2022-07-05 vue项目-通用后台管理系统(四) 设置home页侧边栏的icon细节优化:动态绑定图标,自动关闭其他二级菜单,点击折叠和展开侧边栏


element的icon: https://element.eleme.cn/#/zh-CN/component/icon

0.需求
  • 现在每个icon都是一样的,
  • 然后图标与文字之间的间距是不合理的,需要进行美化:

因为是写死的:<i class="el-icon-location"></i>考虑做成动态绑定相应的图标系统
(如果引入和上述代码还是没有显示出图标,则需要看看在public/index.js中有没有引入在线css和js文件)
在这里插入图片描述

  • 最后再加上一个"只允许最多打开一个二级菜单"的功能
  • 以及实现一个点击后折叠&展开的功能
1.动态绑定相应的图标

原先是写死的:
<i class="el-icon-location"></i>
我们在data声明一个键值对对象(索引:icon名称)

iconObj: {
   
  1: "iconfont icon-user",
  2: "iconfont icon-gengduo",
  3: "iconfont icon-shouye",
  4: "iconfont icon-yanzhengma1",
  5: "iconfont icon-shoucang",
  6: "iconfont icon-fenxiang1",
}

这样,之前使用v-for动态绑定一级菜单和二级菜单的文字的同时,把icon图标也做成动态绑定的,即:写成这样的形式: <i :class="iconObj[item.id]"></i>
同理,二级菜单的icon也照此处理,唯一的区别是:一级菜单使用的是id,二级菜单使用的是菜单文字

  • 在data创建对象iconObj2,将菜单文字和element-ui 的icon绑定
iconObj2:{
   
'用户管理':'iconfont icon-Management',
'员工管理':'iconfont icon-quanxianguanli',
'商品管理':'iconfont icon-shangpinguanli',
'订单管理':'iconfont icon-dingdanguanli',
'数据统计':'iconfont icon-shujutongji',
'用户列表':'iconfont icon-yonghuliebiao',
'员工列表':'iconfont icon-role-list',
'权限列表':'iconfont icon-permissions-list',
'商品列表':'iconfont icon-shangpinliebiao',
'分类参数':'iconfont icon-quanbu',
'商品分类':'iconfont icon-fenleigongnengleimu',
}
  • 把二级菜单中引入icon的标签改成动态绑定
<!-- 一级菜单下的二级菜单 -->
<!-- <el-menu-item index="1-4"> 改成动态绑定: -->
  <el-menu-item :index="subitem.path" v-for="subitem in item.child" :key="subitem.id">
  <!-- 二级菜单的模板 -->
  <template slot="title">
    <!-- 二级菜单图标 -->
    <!-- <i class="el-icon-fenleigongnengleimu"></i> -->
    <i :class="iconObj2[subitem.name]"></i>
    <!-- 二级菜单文本 -->
    <!-- <span>二级菜单</span> -->
    <span>{
  {subitem.name}}</span>
  </template>
</el-menu-item>
2.遇到的小bug:图标显示不出来

原因:前后引入了不一样的在线css 图标,当时注释了一个,但其实另一个才是代码需要的,
即:你用el-icon-shoucang这样的图标名,它能给你识别出来

<!-- <link rel="stylesheet" href="//at.alicdn.com/t/c/font_3869922_ok78ubh3b5o.css"> -->
<link rel="stylesheet" href="//at.alicdn.com/t/font_2423689_rabjgtavn39.css">
3.微调一下icon和字体的间距

现在是这样的:
在这里插入图片描述
设置iconfont的右外边距:

.iconfont {
   
  margin-right: 40px;
}

效果:略

4.实现功能:点开一个其他自动关闭

使用到了unique-opened这个属性:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
【前言】 本文是一篇关于静态网实训的报告,主要内容包括实训目的、实训内容、实训步骤、实训成果等方面。本文针对的是3000字的要求,将尽量详细地介绍实训的过程,希望对读者有所帮助。 【实训目的】 本次实训的主要目的是让学生了解静态网的基本知识和技术,掌握HTML、CSS等语言的基本用法,能够独立完成一个简单的网设计与制作。 【实训内容】 本次实训的主要内容包括以下几个方面: 1. HTML基础知识:包括HTML标签、元素、属性、语义化等方面的内容。 2. CSS基础知识:包括CSS选择器、样式、盒模型、布局等方面的内容。 3. 实践操作:通过实践操作,学习如何使用HTML和CSS来制作网,并掌握基本的调试和优化技巧。 【实训步骤】 1. 学习HTML基础知识 首先,我们需要了解HTML的基本概念和语法规则。HTML全称为“超文本标记语言”,是一种用于创建网的标准标记语言。它使用一系列标记来描述网的结构和内容。 HTML的基本结构如下: ``` <!DOCTYPE html> <html> <head> <title>网标题</title> </head> <body> 网内容 </body> </html> ``` 其中,`<!DOCTYPE html>`声明文档类型为HTML5。`<html>`元素是网的根元素,包含了网的所有内容。`<head>`元素包含了网的头部信息,比如标题、样式表等。`<body>`元素包含了网的主要内容。 HTML中的标签和属性非常丰富,常用的标签包括`<h1>`~`<h6>`(标题)、`<p>`(段落)、`<a>`(链接)、`<img>`(图片)等。而常用的属性包括`class`(类)、`id`(标识符)、`style`(样式)、`src`(图片地址)等。 除了掌握HTML的基本语法之外,我们还需要了解一些HTML的语义化标签,比如`<header>`(头部)、`<nav>`(导航)、`<main>`(主内容)、`<aside>`(侧边栏)等。这些标签不仅能够提高网的可读性和可维护性,还有利于SEO优化。 2. 学习CSS基础知识 CSS全称为“层叠样式表”,是一种用于控制网样式的标记语言。CSS与HTML相互独立,可以单独使用,也可以与HTML结合使用。 CSS的基本语法如下: ``` 选择器 { 属性1: 值1; 属性2: 值2; ... } ``` 其中,选择器用于选择HTML元素,属性用于定义样式,值用于指定属性的取值。 CSS中常用的选择器包括标签选择器、类选择器、ID选择器、后代选择器、子元素选择器、相邻兄弟选择器、通用选择器等。而常用的样式属性包括颜色、字体、背景、边框、尺寸、位置等。 除了掌握CSS的基本语法之外,我们还需要了解一些CSS的盒模型和布局技巧。CSS的盒模型指的是HTML元素在面中所占据的空间,包括元素的内容、内边距、边框、外边距等。而CSS的布局技巧则包括流式布局、弹性布局、网格布局等。 3. 实践操作 通过学习HTML和CSS的基础知识之后,我们就可以开始实践操作了。首先,我们可以尝试使用HTML和CSS来制作一个简单的网,比如一个个人简介面或一个产品展示面。 在实践操作的过程中,我们需要注意以下几个方面: (1)合理规划网结构和布局,使得网的结构清晰、布局美观。 (2)选择合适的颜色、字体、图片等素材,使得网的视觉效果更加吸引人。 (3)使用语义化标签和CSS样式来优化的可读性、可维护性和SEO优化效果。 (4)注意网的兼容性和响应式设计,使得网能够在各种设备上正常显示。 (5)测试和调试网,确保网的功能和效果都符合预期要求。 【实训成果】 通过本次实训,我掌握了HTML和CSS的基本知识和技术,能够独立完成一个简单的网设计与制作。具体来说,我实现了以下几个方面的成果: 1. 设计并制作了一个个人简介面,其中包括了头部、导航栏、主要内容和脚等部分。我使用了HTML的语义化标签和CSS的样式来优化的结构和视觉效果,同时还使用了媒体查询和响应式图片等技术来提高网的响应性和兼容性。 2. 掌握了HTML和CSS的基本调试和优化技巧,比如利用浏览器的开发者工具来检查网的结构和样式,使用W3C验证器来检查HTML和CSS的语法错误等。 3. 了解了HTML5和CSS3的一些新特性和技术,比如Web语义化、响应式布局、动画效果、渐变效果等。这些特性和技术能够进一步提高网的可读性和用户体验。 【总结】 本次实训是一次非常有收获的经历,让我了解了静态网的基本知识和技术,掌握了HTML和CSS的基本用法,能够独立完成一个简单的网设计与制作。通过实践操作,我不仅深入理解了HTML和CSS的语法规则,还学会了如何使用开发者工具调试和优化,能够更加高效地进行编程工作。 当然,这只是我学习的开始,我还需要不断努力学习和实践,扩展自己的知识和技能,才能在未来的实践工作中更加游刃有余。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端OnTheRun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值