范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Nuxt3服务端渲染elementplus黑暗模式(二)

  有了上一章的基础 ,接下来我们来引入我们开发所需要的UI组件elementplus,实现顶部和底部整体布局以及配置黑暗模式 。效果如下:
  基础模式
  黑暗模式
  一、引入组件 //安装elementplus 1、npm install element-plus --save  //安装 @element-plus/icons 图标库 2、npm install  @element-plus/icons
  二、然后在我们的plugins创建element-plus.client.ts文件。 注意:如果我们在文件命名时加上 .client,例如 element-plus.client.ts,此时代表该插件只在客户端加载 import *  as ElementPlus from "element-plus/dist/index.full" import zhCn from "element-plus/es/locale/lang/zh-cn" // @ts-ignore import { defineNuxtPlugin } from "#app"  export default defineNuxtPlugin(nuxtApp => {   nuxtApp.vueApp.use(ElementPlus, {     locale: zhCn,   }) })
  三、找到我们的整体布局组件default.vue,我们来使用一下引入的elementplus,看是否引入成功 。(我做了一个简单布局,使用了scss,所以复制的时候需要大家提前安装一下scss)
  1、首先处理顶部布局,在这里我没增加一个城市下啦选择功能
  首先引入 element-china-area-datanpm install element-china-area-data
  其次我们在plugins 引入城市选择插件。 新建 city.client.tsimport { regionData ,CodeToText,TextToCode} from "element-china-area-data" // @ts-ignore import { defineNuxtPlugin } from "#app"  export default defineNuxtPlugin(nuxtApp => {     // @ts-ignore     // return nuxtApp.vueApp.use(regionData)     return {         provide: {             regionData,             CodeToText,             TextToCode         }     } })
  最后我们在default.vue 引入const { $router, $regionData,$TextToCode, $CodeToText } = useNuxtApp()  //使用 const handleChange = (value) => {   ruleForm.region = $CodeToText[value[0]]+"/"+$CodeToText[value[1]]+"/"+$CodeToText[value[2]]   ruleForm.sheng = $CodeToText[value[0]]   ruleForm.shi = $CodeToText[value[1]]   ruleForm.xian = $CodeToText[value[2]] }  //默认赋值 state.selectedOptions = [   $TextToCode ["河南省"].code,   $TextToCode ["河南省"]["郑州市"].code,   $TextToCode ["河南省"]["郑州市"]["金水区"].code ]
  2、接下来我们言归正传,我们来在顶部引入一个模式切换组件。如图:
  新增模式切换功能
  首先我们引入图标及切换组件://引入我们需要的图标 import { Moon, Sunny,  Search} from "@element-plus/icons-vue" //引入样式文件 import theme from "@/utils/theme" import { colorMix } from "@/utils/tool"  //在页面使用       // 设置switch的背景颜色 const blackColor = "var(--bg-color-mute)" const themeColorObj = {   defaultTheme: {     title: "浅色主题"   },   darkTheme: {     title: "深色主题"   } }  //模式切换事件  const themeChange = (val: boolean) => {   if(val){     state.currentSkinName = "defaultTheme"     switchTheme( state.currentSkinName )   }else{     state.currentSkinName = "darkTheme"     switchTheme(state.currentSkinName)   } } const switchTheme = (type?:string) =>{   type = type || "darkTheme"   const colorObj = theme[type]   for (let i = 1; i < 10; i += 1) {     colorObj[`--el-color-primary-light-${10 - i}`] = colorMix(colorObj["--el-color-white"], colorObj["--el-color-primary"], i * 0.1)   }   Object.keys(colorObj).map(item => {     document.documentElement.style.setProperty(item, colorObj[item])   }) }
  3、事件处理完毕,接下来我们就需要配置主题的样式
  首先:在utils创建样式文件theme.ts及tool.ts,我们只处理两种模式,如果要多种可自行拓展,完整代码如下 :可以直接拷贝到自己项目中,也可以在最下方直接下载
  theme.ts export default {   "defaultTheme": {     "--el-background-color-base": "#ffffff",     "--el-color-white": "#ffffff",     "--el-text-color-bar":"#ffffff",     "--el-color-black": "#ffffff",     "--el-color-primary": "#409eff",     "--el-navbar_bg":"#0440D7",//导航     "--el-slider_bg":"#0440D7",     "--el-background-top-color":"#e3e4e5",     "--el-box-color-base": "#f5f7fa", // 分类框     "--el-logo_bg":"#333",//logo     "--el-en_bg":"#666666",//英文     "--bg-color-mute": "#f2f2f2",//模式切换按钮     "--el-text-color-cls": "#666666",//顶部选项颜色     "--el-text-color-th": "rgba(0, 0, 0, 0.3)", // 最次要文字颜色     "--el-color-primary-light-1": "#53a8ff",     "--el-color-primary-light-2": "#66b1ff",     "--el-color-primary-light-3": "#79bbff",     "--el-color-primary-light-4": "#8cc5ff",     "--el-color-primary-light-5": "#a0cfff",     "--el-color-primary-light-6": "#b3d8ff",     "--el-color-primary-light-7": "#c6e2ff",     "--el-color-primary-light-8": "#d9ecff",     "--el-color-primary-light-9": "#ecf5ff",     "--el-input-bg-color": "#fff", //输入框背景色     "--el-fill-color-blank": "#fff",     "--el-select-box":"#fff",//下拉框BG     "--el-select-box-active":"#fff",//下拉框激活BG     "--el-input-border-color":"#00adff",//下拉边框     "--el-hover-bg-color":"#2590F9",//鼠标放入背景色     "--el-switch_bg":"#f2f2f2", //模式切换     "--el-switch-color":"#666666",//模式颜色     "--el-footer-bg":"#F6F7F8",//底部颜色     "--el-btn-color":"#ffffff",//按钮颜色      "--el-color-success": "#67c23a",     "--el-color-success-light": "#e1f3d8",     "--el-color-success-lighter": "#f0f9eb",     "--el-color-warning": "#e6a23c",     "--el-color-warning-light": "#faecd8",     "--el-color-warning-lighter": "#fdf6ec",     "--el-color-danger": "#f56c6c",     "--el-color-danger-light": "#fde2e2",     "--el-color-danger-lighter": "#fef0f0",     "--el-color-error": "#f56c6c",     "--el-color-error-light": "#fde2e2",     "--el-color-error-lighter": "#fef0f0",     "--el-color-info": "#909399",     "--el-color-info-light": "#e9e9eb",     "--el-color-info-lighter": "#f4f4f5",     "--el-text-color-primary": "#303133",     "--el-text-color-regular": "#606266",     "--el-text-color-secondary": "#909399",     "--el-text-color-placeholder": "#c0c4cc",     "--el-border-color-base": "#dcdfe6",     "--el-border-color-light": "#e4e7ed",     "--el-border-color-lighter": "#ebeef5",     "--el-border-color-extra-light": "#f2f6fc",     "--color-input-bg": "#f4f5f5",     "--color-input-error-bg": "#ffece8",     "--color-input-placeholder": "#86909c",     "--color-input-text": "#4e5969",     "--color-input-icon": "#f53f3f",     "--el-popup-modal-background-color": "var(--el-color-black)",     "--el-popup-modal-opacity": ".5",     "--el-border-width-base": "1px",     "--el-border-style-base": "solid",     "--el-border-color-hover": "var(--el-text-color-placeholder)",     "--el-border-base": "var(--el-border-width-base) var(--el-border-style-base) var(--el-border-color-base)",     "--el-border-radius-base": "4px",     "--el-border-radius-small": "2px",     "--el-border-radius-round": "20px",     "--el-border-radius-circle": "100%",     "--el-box-shadow-base": "0 2px 4px rgba(0, 0, 0, .12),0 0 6px rgba(0, 0, 0, .04)",     "--el-box-shadow-light": "0 2px 12px 0 rgba(0, 0, 0, .1)",     "--el-svg-monochrome-grey": "#dcdde0",     "--el-fill-base": "var(--el-color-white)",     "--el-font-size-extra-large": "20px",     "--el-font-size-large": "18px",     "--el-font-size-medium": "16px",     "--el-font-size-base": "14px",     "--el-font-size-small": "13px",     "--el-font-size-extra-small": "12px",     "--el-font-weight-primary": "500",     "--el-font-line-height-primary": "24px",     "--el-font-color-disabled-base": "#bbb",     "--el-index-normal": "1",     "--el-index-top": "1000",     "--el-index-popper": "2000",     "--el-disabled-fill-base": "var(--el-background-color-base)",     "--el-disabled-color-base": "var(--el-text-color-placeholder)",     "--el-disabled-border-base": "var(--el-border-color-light)",     "--el-transition-duration": ".3s",     "--el-transition-duration-fast": ".2s",     "--el-transition-function-ease-in-out-bezier": "cubic-bezier(.645, .045, .355, 1)",     "--el-transition-function-fast-bezier": "cubic-bezier(.23, 1, .32, 1)",     "--el-transition-all": "all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)",     "--el-transition-fade": "opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier)",     "--el-transition-md-fade": "transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier)",     "--el-transition-fade-linear": "opacity var(--el-transition-duration-fast) linear",     "--el-transition-border": "border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier)",     "--el-transition-color": "color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier)"   },   "darkTheme":{     "--el-color-primary": "#409eff", // 主题色     "--el-background-top-color":"#262727",     "--el-box-color-base": "#262727", // 分类框     "--el-background-color-base": "#14161a", // 基础背景色     "--el-color-white": "#1d1e1f", // 基础白色     "--el-color-black": "#262727", // 基础黑色     "--el-navbar_bg":"#14161a", //导航色     "--el-switch_bg":"#2c2c2c", //模式切换     "--el-logo_bg":"#fff",//logo     "--el-slider_bg":"#1B222C",     "--el-en_bg":"#fff",//英文     "--el-btn-color":"#E5EAF3",//按钮颜色     "--el-text-color-bar":"#ffffff",     "--el-text-color-primary": "#FAFAFA", // 主要文字颜色     "--el-text-color-regular": "#FAFAFA", // 常规文字颜色     "--el-text-color-placeholder": "#c0c4cc",  // 占位文字颜色     "--el-text-color-secondary": "rgba(255, 255, 255, 0.5)", // 次要文字颜色     "--el-text-color-th": "rgba(255, 255, 255, 0.3)", // 最次要文字颜色     "--el-text-color-cls": "#fff",//顶部选项颜色     "--el-border-color-base": "#4C4D4F", // 一级边框颜色     "--el-border-color-light": "#414243", // 二级边框颜色     "--el-border-color-lighter": "#363637", // 三级边框颜色     "--el-border-color-extra-light": "#2B2B2C", // 四级边框颜色     "--el-input-bg-color": "#2c2c2c", //输入框背景色     "--el-fill-color-blank": "#414243",     "--el-select-box":"#4C4D4F",//下拉框BG     "--el-select-box-active":"#414243",//下拉框激活BG     "--el-input-border-color":"#fff",//下拉边框     "--el-switch-color":"#ffffff",//模式颜色     "--el-footer-bg":"rgba(255, 255, 255, 0.02)",//底部颜色     "--bg-color-mute": "#2c2c2c",//模式切换按钮     "--el-hover-bg-color":"#2590F9",//鼠标放入背景色     "--el-color-success": "#67c23a", // 成功颜色     "--el-color-success-light": "#e1f3d8",     "--el-color-success-lighter": "#f0f9eb",     "--el-color-warning": "#e6a23c", // 警告颜色     "--el-color-warning-light": "#faecd8",     "--el-color-warning-lighter": "#fdf6ec",     "--el-color-danger": "#f56c6c", // 危险颜色     "--el-color-danger-light": "#fde2e2",     "--el-color-danger-lighter": "#fef0f0",     "--el-color-error": "#f56c6c", // 错误颜色     "--el-color-error-light": "#fde2e2",     "--el-color-error-lighter": "#fef0f0",     "--el-color-info": "#7B88A9", // 信息颜色     "--el-color-info-light": "#e9e9eb",     "--el-color-info-lighter": "#f4f4f5",     "--color-input-bg": "#f4f5f5", // input 输入框     "--color-input-error-bg": "#ffece8",     "--color-input-placeholder": "#86909c",     "--color-input-text": "#4e5969",     "--color-input-icon": "#f53f3f",     "--el-svg-monochrome-grey": "#dcdde0",     "--el-font-color-disabled-base": "#bbb",     "--el-popup-modal-background-color": "var(--el-color-black)",     "--el-popup-modal-opacity": ".5",     "--el-border-width-base": "1px",     "--el-border-style-base": "solid",     "--el-border-color-hover": "var(--el-text-color-placeholder)",     "--el-border-base": "var(--el-border-width-base) var(--el-border-style-base) var(--el-border-color-base)",     "--el-border-radius-base": "4px",     "--el-border-radius-small": "2px",     "--el-border-radius-round": "20px",     "--el-border-radius-circle": "100%",     "--el-box-shadow-base": "0 2px 4px rgba(0, 0, 0, .12),0 0 6px rgba(0, 0, 0, .04)",     "--el-box-shadow-light": "0 2px 12px 0 rgba(0, 0, 0, .1)",     "--el-fill-base": "var(--el-color-white)",     "--el-font-size-extra-large": "20px",     "--el-font-size-large": "18px",     "--el-font-size-medium": "16px",     "--el-font-size-base": "14px",     "--el-font-size-small": "13px",     "--el-font-size-extra-small": "12px",     "--el-font-weight-primary": "500",     "--el-font-line-height-primary": "24px",     "--el-index-normal": "1",     "--el-index-top": "1000",     "--el-index-popper": "2000",     "--el-disabled-fill-base": "var(--el-background-color-base)",     "--el-disabled-color-base": "var(--el-text-color-placeholder)",     "--el-disabled-border-base": "var(--el-border-color-light)",     "--el-transition-duration": ".3s",     "--el-transition-duration-fast": ".2s",     "--el-transition-function-ease-in-out-bezier": "cubic-bezier(.645, .045, .355, 1)",     "--el-transition-function-fast-bezier": "cubic-bezier(.23, 1, .32, 1)",     "--el-transition-all": "all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)",     "--el-transition-fade": "opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier)",     "--el-transition-md-fade": "transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier)",     "--el-transition-fade-linear": "opacity var(--el-transition-duration-fast) linear",     "--el-transition-border": "border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier)",     "--el-transition-color": "color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier)"   }  }
  tool.ts export const colorMix = (color1, color2, weight) => {   weight = Math.max(Math.min(Number(weight), 1), 0)   let r1 = parseInt(color1.substring(1, 3), 16)   let g1 = parseInt(color1.substring(3, 5), 16)   let b1 = parseInt(color1.substring(5, 7), 16)   let r2 = parseInt(color2.substring(1, 3), 16)   let g2 = parseInt(color2.substring(3, 5), 16)   let b2 = parseInt(color2.substring(5, 7), 16)   let r: number | string = Math.round(r1 * (1 - weight) + r2 * weight)   let g: number | string = Math.round(g1 * (1 - weight) + g2 * weight)   let b: number | string = Math.round(b1 * (1 - weight) + b2 * weight)   r = ("0" + (r || 0).toString(16)).slice(-2)   g = ("0" + (g || 0).toString(16)).slice(-2)   b = ("0" + (b || 0).toString(16)).slice(-2)   return "#" + r + g + b; }
  最后我们来简单配置一下公共样式和模式切换重置公共样式:在assets/css 创建 common.css resetElStyle.scss
  resetElStyle.scss .mt10 {   margin-top: 10px; } body{   background: var(--el-color-black) } .main_color{   background-color: var(--el-background-color-base); } .el_base_color{   background-color: var(--el-background-top-color); } .el-menu-item{   border-bottom:none !important; } .right-menu .right-menu-item{   width:62px;   height:62px;   background-color: var(--el-slider_bg);   border-radius: 6px;   overflow: hidden; } .right-menu-item .right-menu-qrcode .qrcode-box{   background:var(--el-slider_bg);   padding:5px } .right-menu-item .right-menu-qrcode p{   padding:-12px 0 5px 0;   text-align:center;   color:#fff;   font-size:12px } .logoWall .logo_animate{   width: 100%;   height: 450px;   background: var(--el-background-color-base);   position: relative; } body {   p{     color:var(--el-text-color-primary)   }   span{     color:var(--el-text-color-primary)   }   .change_ico{     margin-left:22px;     width:42px;     height:24px;   }   .change_ico  .el-switch__action{     background-color: var(--el-switch-color) !important;   }   .change_ico .el-icon{     font-size: 16px;     color:var(--el-switch-color) !important;   }   //下拉框   .el-scrollbar{     background: var( --el-select-box);     .selected{       background: var(--el-select-box-active);       color: var(--el-color-primary);     }     .el-select-dropdown__item.hover, .el-select-dropdown__item:hover{       background: var(--el-select-box-active);       color: var(--el-color-primary);     }   }   /*数字输入框*/   .el-input-number__decrease, .el-input-number__increase {     background: var(--el-color-black)   }    // 复合输入框   .el-input-group__append, .el-input-group__prepend {     border: 1px solid var(--el-border-color-base);     border-right: none;   }    //  日期选择 el-date-picker   .el-picker-panel {     border: 1px solid var(--el-border-color-light);     background: var(--el-color-black)   }     // 日期和时间范围   .el-date-editor .el-range-input {     background: var(--el-color-white)   }    .el-picker-panel__footer {     background: var(--el-color-black)   }    // 时间选择   .el-time-panel__content {     .el-time-spinner__item:hover, .el-scrollbar__thumb:hover {       background: var(--el-select-box-active)     }   }    // 表格分页   .el-pagination.is-background .btn-next, .el-pagination.is-background .btn-prev, .el-pagination.is-background .el-pager li {     background: var(--el-color-black)   }    // menu   .el-menu {     border-right: none;   } }
  common.css body{     margin:0; } a{     text-decoration: none; } ul{     list-style: none; } h4{     font-weight: 400; } .hj_container{     max-width: 1200px;     min-width: 1100px;     margin:0 auto;     padding: 0 22px; } .hj_ip b{     width: 6px;     height: 26px;     margin-right: 12px;     margin-left:22px;     background-color: #00adff;  }  .hj_ip h4{     font-size: 16px !important; } @keyframes imgmove {     0%{         transform: scale(0.9);  /*开始为原始大小*/     }     25%{         transform: scale(1.3); /*放大1.1倍*/     }     50%{         transform: scale(0.9);     }     75%{         transform: scale(1.3);     }  }  @-webkit-keyframes imgmove /*Safari and Chrome*/ {     0%{         transform: scale(0.9);     }     25%{         transform: scale(1.1); /*放大1.1倍*/     }     50%{         transform: scale(0.9);     }     75%{         transform: scale(1.1);     } } .hj_block  .el-timeline-item__content{     font-size: 14px; } .hj_user_lf .el-menu-item:focus, .el-menu-item:hover{     font-size: 14px;     display: flex;     align-items: center; } .el-menu-item{     padding:0 4px 0 4px !important;     border-bottom: 2px solid #f6f6f6; } .el-menu.el-menu--horizontal{     border-bottom: none; } .el-menu--horizontal>.el-menu-item.is-active{     border-bottom:  2px solid #409eff !important; } .el-menu-tabs{     height:48px; } .dplayer-logo {     max-height: 97px !important;     max-width: 98px !important; } .el-menu--horizontal .el-menu-item:not(.is-disabled):focus, .el-menu--horizontal .el-menu-item:not(.is-disabled):hover{     color:#fff; } .intro{     margin:0 auto;     width:910px; }  .logoWall .logo_animate .stand_browser{     display: block;     position: absolute;     width: 230px;     opacity: 0;     height: auto;     filter: alpha(opacity=0); } .stand_browser:hover{     cursor: pointer; } .logoWall .logo_animate .img1{     left:330px;     top: 420px;     animation: animate1 5500ms linear infinite;     -webkit-animation: animate1 5500ms linear infinite;     -moz-animation: animate1 5500ms linear infinite;     -ms-animation:animate1 5500ms linear infinite;     -o-animation: animate1 5500ms linear infinite; }  .logoWall .logo_animate .img2{     left:390px;     top: 420px;     animation: animate2 5500ms linear infinite;     animation-play-state: running;     -webkit-animation-play-state: running;     -moz-animation-play-state:running;     -o-animation-play-state:running;     -webkit-animation: animate2 5500ms linear infinite;     -moz-animation: animate2 5500ms linear infinite;     -ms-animation:animate2 5500ms linear infinite;     -o-animation: animate2 5500ms linear infinite; } .logoWall .logo_animate .img3{     left:450px;     top: 420px;     animation: animate3 5500ms linear infinite;     animation-play-state: running;     -webkit-animation-play-state: running;     -moz-animation-play-state:running;     -o-animation-play-state:running;     -webkit-animation: animate3 5500ms linear infinite;     -ms-animation:animate3 5500ms linear infinite;     -moz-animation: animate3 5500ms linear infinite;     -o-animation: animate3 5500ms linear infinite; } .logoWall .logo_animate .img4{     left:450px;     top: 420px;     animation: animate4 5500ms linear infinite;     animation-play-state: running;     -webkit-animation-play-state: running;     -moz-animation-play-state:running;     -o-animation-play-state:running;     -webkit-animation: animate4 5500ms linear infinite;     -moz-animation: animate4 5500ms linear infinite;     -o-animation: animate4 5500ms linear infinite;     -ms-animation:animate4 5500ms linear infinite; } @keyframes animate1 {     0% { width: 30px; left: 280px;top: 420px;opacity: 0;}     48%{ width: 100px;height:auto;left: 82px;opacity: 1;}     50% {width: 100px;height:auto;left: 80px;top: 200px;opacity: 1;  }     52%{ width: 100px;height:auto;left: 82px;opacity: 1;}     100% {width: 40px;left: 250px;top: 40px;opacity: 0;} }  @-khtml-keyframes animate1 {     0% { width: 30px; left: 280px;top: 420px;opacity: 0;}     48%{ width: 100px;height:auto;left: 82px;opacity: 1;}     50% {width: 100px;height:auto;left: 80px;top: 200px;opacity: 1;  }     52%{ width: 100px;height:auto;left: 82px;opacity: 1;}     100% {width: 40px;left: 250px;top: 40px;opacity: 0;} }  @-webkit-keyframes animate1 {     0% { width: 30px; left: 280px;top: 420px;opacity: 0;}     48%{ width: 100px;height:auto;left: 82px;opacity: 1;}     50% {width: 100px;height:auto;left: 80px;top: 200px;opacity: 1;  }     52%{ width: 100px;height:auto;left: 82px;opacity: 1;}     100% {width: 40px;left: 250px;top: 40px;opacity: 0;} }  @-moz-keyframes animate1 {     0% { width: 30px; left: 280px;top: 420px;opacity: 0;}     48%{ width: 100px;height:auto;left: 82px;opacity: 1;}     50% {width: 100px;height:auto;left: 80px;top: 200px;opacity: 1;  }     52%{ width: 100px;height:auto;left: 82px;opacity: 1;}     100% {width: 40px;left: 250px;top: 40px;opacity: 0;} }  @-ms-keyframes animate1 {     0% { width: 30px; left: 280px;top: 420px;opacity: 0;}     48%{ width: 100px;height:auto;left: 82px;opacity: 1;}     50% {width: 100px;height:auto;left: 80px;top: 200px;opacity: 1;  }     52%{ width: 100px;height:auto;left: 82px;opacity: 1;}     100% {width: 40px;left: 250px;top: 40px;opacity: 0;} }  @-o-keyframes animate1 {     0% { width: 30px; left: 280px;top: 420px;opacity: 0;}     48%{ width: 100px;height:auto;left: 82px;opacity: 1;}     50% {width: 100px;height:auto;left: 80px;top: 200px;opacity: 1;  }     52%{ width: 100px;height:auto;left: 82px;opacity: 1;}     100% {width: 40px;left: 250px;top: 40px;opacity: 0;} }  @keyframes animate2 {     0% {width: 30px;left: 380px;top: 410px;opacity: 0;  }     48%{width: 100px;height:auto;left: 292px;opacity: 1;  }     50% { width: 100px;height:auto;left: 290px;opacity: 1;}     52%{width: 100px;height:auto;left: 292px;opacity: 1;}     100% { width: 40px;left: 360px;top: 40px;opacity: 0;} } @-khtml-keyframes animate2 {     0% {width: 30px;left: 380px;top: 410px;opacity: 0;  }     48%{width: 100px;height:auto;left: 292px;opacity: 1;  }     50% { width: 100px;height:auto;left: 290px;opacity: 1;}     52%{width: 100px;height:auto;left: 292px;opacity: 1;}     100% { width: 40px;left: 360px;top:40px;opacity: 0;} } @-webkit-keyframes animate2 {     0% {width: 30px;left: 380px;top: 410px;opacity: 0;  }     48%{width: 100px;height:auto;left: 292px;opacity: 1;  }     50% { width: 100px;height:auto;left: 290px;opacity: 1;}     52%{width: 100px;height:auto;left: 292px;opacity: 1;}     100% { width: 40px;left: 360px;top: 40px;opacity: 0;} } @-ms-keyframes animate2 {     0% {width: 30px;left: 380px;top: 410px;opacity: 0;  }     48%{width: 100px;height:auto;left: 292px;opacity: 1;  }     50% { width: 100px;height:auto;left: 290px;opacity: 1;}     52%{width: 100px;height:auto;left: 292px;opacity: 1;}     100% { width: 40px;left: 360px;top: 40px;opacity: 0;} } @-moz-keyframes animate2 {     0% {width: 30px;left: 380px;top: 410px;opacity: 0;  }     48%{width: 100px;height:auto;left: 292px;opacity: 1;  }     50% { width: 100px;height:auto;left: 290px;opacity: 1;}     52%{width: 100px;height:auto;left: 292px;opacity: 1;}     100% { width: 40px;left: 360px;top: 40px;opacity: 0;} } @-o-keyframes animate2 {     0% {width: 30px;left: 380px;top: 410px;opacity: 0;  }     48%{width: 100px;height:auto;left: 292px;opacity: 1;  }     50% { width: 100px;height:auto;left: 290px;opacity: 1;}     52%{width: 100px;height:auto;left: 292px;opacity: 1;}     100% { width: 40px;left: 360px;top: 40px;opacity: 0;} } @keyframes animate3 {     0% {width: 30px; left: 580px;top: 420px;opacity: 0;}     48%{width: 100px;height:auto;left: 718px;opacity: 1;}     50% {width: 100px; height:auto;left: 720px;top: 200px;opacity: 1;}     52%{width: 100px;height:auto;left: 718px;opacity: 1;}     100% {width: 40px;left: 630px;top: 40px; opacity: 0;} } @-khtml-keyframes animate3 {     0% {width: 30px; left: 580px;top: 420px;opacity: 0;}     48%{width: 100px;height:auto;left: 718px;opacity: 1;}     50% {width: 100px; height:auto;left: 720px;top: 200px;opacity: 1;}     52%{width: 100px;height:auto;left: 718px;opacity: 1;}     100% {width: 40px;left: 630px;top: 40px; opacity: 0;}  } @-webkit-keyframes  animate3{     0% {width: 30px; left: 580px;top: 420px;opacity: 0;}     48%{width: 100px;height:auto;left: 718px;opacity: 1;}     50% {width: 100px; height:auto;left: 720px;top: 200px;opacity: 1;}     52%{width: 100px;height:auto;left: 718px;opacity: 1;}     100% {width: 40px;left: 630px;top: 40px; opacity: 0;} } @-ms-keyframes animate3 {     0% {width: 30px; left: 580px;top: 420px;opacity: 0;}     48%{width: 100px;height:auto;left: 718px;opacity: 1;}     50% {width: 100px; height:auto;left: 720px;top: 200px;opacity: 1;}     52%{width: 100px;height:auto;left: 718px;opacity: 1;}     100% {width: 40px;left: 630px;top: 40px; opacity: 0;} } @-moz-keyframes animate3 {     0% {width: 30px; left: 580px;top: 420px;opacity: 0;}     48%{width: 100px;height:auto;left: 718px;opacity: 1;}     50% {width: 100px; height:auto;left: 720px;top: 200px;opacity: 1;}     52%{width: 100px;height:auto;left: 718px;opacity: 1;}     100% {width: 40px;left: 630px;top: 40px; opacity: 0;} } @-o-keyframes animate3 {     0% {width: 30px; left: 580px;top: 420px;opacity: 0;}     48%{width: 100px;height:auto;left: 718px;opacity: 1;}     50% {width: 100px; height:auto;left: 720px;top: 200px;opacity: 1;}     52%{width: 100px;height:auto;left: 718px;opacity: 1;}     100% {width: 40px;left: 630px;top: 40px; opacity: 0;} } @keyframes animate4 {     0% { width: 30px;left: 460px;top: 420px;opacity: 0;}     48%{width: 100px; height:auto;left: 508px;opacity: 1;}     50% {width: 100px; height:auto; left: 510px; opacity: 1;  }     52%{width: 100px;height:auto;left: 508px;opacity: 1;}     100% {width: 40px;left: 490px; top: 40px;opacity: 0;} }  @-khtml-keyframes animate4 {     0% { width: 30px;left: 460px;top: 420px;opacity: 0;}     48%{width: 100px; height:auto;left: 508px;opacity: 1;}     50% {width: 100px; height:auto; left: 510px; opacity: 1;  }     52%{width: 100px;height:auto;left: 508px;opacity: 1;}     100% {width: 40px;left: 490px; top: 40px;opacity: 0;} }  @-webkit-keyframes animate4 {     0% { width: 30px;left: 460px;top: 420px;opacity: 0;}     48%{width: 100px; height:auto;left: 508px;opacity: 1;}     50% {width: 100px; height:auto; left: 510px; opacity: 1;  }     52%{width: 100px;height:auto;left: 508px;opacity: 1;}     100% {width: 40px;left: 490px; top: 40px;opacity: 0;} }  @-moz-keyframes animate4 {     0% { width: 30px;left: 460px;top: 420px;opacity: 0;}     48%{width: 100px; height:auto;left: 508px;opacity: 1;}     50% {width: 100px; height:auto; left: 510px; opacity: 1;  }     52%{width: 100px;height:auto;left: 508px;opacity: 1;}     100% {width: 40px;left: 490px; top: 40px;opacity: 0;} }  @-ms-keyframes animate4 {     0% { width: 30px;left: 460px;top: 420px;opacity: 0;}     48%{width: 100px; height:auto;left: 508px;opacity: 1;}     50% {width: 100px; height:auto; left: 510px; opacity: 1;  }     52%{width: 100px;height:auto;left: 508px;opacity: 1;}     100% {width: 40px;left: 490px; top: 40px;opacity: 0;} }  @-o-keyframes animate4 {     0% { width: 30px;left: 460px;top: 420px;opacity: 0;}     48%{width: 100px; height:auto;left: 508px;opacity: 1;}     50% {width: 100px; height:auto; left: 510px; opacity: 1;  }     52%{width: 100px;height:auto;left: 508px;opacity: 1;}     100% {width: 40px;left: 490px; top: 40px;opacity: 0;} } .pause{     animation-play-state: paused !important;     -webkit-animation-play-state: paused !important;     -moz-animation-play-state: paused !important;     -o-animation-play-state: paused !important; } .play{     animation-play-state: running !important;     -webkit-animation-play-state: running !important;     -moz-animation-play-state: running !important;     -o-animation-play-state: running !important; } .el-pagination{     display: flex;     justify-content: center;     align-content: center; } .el-overlay{     z-index: 1000 !important; } .no_data{     display: flex;     justify-content: center;     align-items: center; } .no_data img{     width:20%;     margin-top:-200px; }
  到此为止我们已经处理完毕,如果要在某个地方使用如下:例如background-color: var(--el-background-color-base); color: var(--el-color-primary);
  走到这一步我们的所有布局已经基本完成,剩下的就是具体业务需求的开发了,下一节我们来配合着黑暗模式实现一个完成的首页功能 ,效果如下:
  基础模式
  黑暗模式

西部证券数字化转型探索实践随着金融供给侧结构性改革的深化,证券期货行业的数字化转型正在加速。西部证券以立足西部服务全国,以专业化业务与客户共同成长的一流上市综合性投资银行为企业愿景,以客户为中心科技赋能合作数字藏品年终总结2022年跌宕起伏高潮迭起的发展历程不要盲目努力,人生暴富靠康波周期!关注本头条号,引领你找到元宇宙WEB3。0时代的风口红利,让你实现财富暴涨,阶层跨越,这是一个比互联网更具爆发力的世界周期性大机遇。数字藏品,无疑哈登复出后9场已送出109次助攻,带领球队8连胜据SixersStats统计,在哈登复出后的9场比赛中,他场均可以送出12。1次助攻,9场比赛里共送出了109次助攻。76人队史上,莫里斯奇克斯在1982年10月30日至11月17这3种饮品,最好别放进保温杯里俗话说人到中年有三宝,枸杞大枣保温杯。寒风瑟瑟的冬天,保温杯成了不少中年人的标配,就连一些年轻人也打开养生模式,用保温杯泡起了红枣枸杞茶。不过喜欢这样喝的朋友要注意了,因为一不小心Nature子刊SLM中蒸汽液体和固体相之间的相互作用的研究长三角G60激光联盟导读Nature子刊激光粉末床熔合中蒸汽液体和固体相之间的相互作用的研究。摘要根据需求生产复杂高性能金属零件的能力已经建立了激光粉末床熔合(LPBF)作为一种有中国女排或全面调整,5大国手恐被淘汰出局,蔡斌选人出现失误2022年中国女排超级联赛仍在有条不紊地进行着,备受关注的八强赛终于开打,天津,江苏,深圳和上海四大豪强,分别收获了八强赛的开门红。在遭受大面积非伤病减员的情况下,天津女排庆幸主力首钢男篮取得五连胜,主教练解立彬批评球队打得丑陋昨天,北京首钢队在CBA第18轮中以85比83险胜四川队,外援利夫完成准绝杀,帮助球队取得五连胜。全场比赛首钢队发挥并不好,主教练解立彬批评球队打得丑陋。北京首钢队主教练解立彬(左男篮新帅对中国男篮有高期待选人看重团队精神和全面性中国日报12月26日电(记者孙晓晨)看比赛画星标,自从上个月18日来到中国后,男篮国家队的新任主教练塞尔维亚人亚历山大乔尔杰维奇就一直在杭州赛区观看CBA联赛,考察球员。乔尔杰维奇曝中国男篮24人名单,徐杰胡明轩依然入围,难道乔帅也任人唯亲?随着来自塞尔维亚籍主教练乔尔杰维奇全面接管中国男篮之后,中国男篮时隔多年再度进入到外教时代,根据北青体育媒体证实,中国篮协只跟乔尔杰维奇签订一份为期一年的短合同,其目的很简单,如果再见了,冰壶运动员王一博,望年仅27岁的你在天堂安好!首先,在此澄清一下,此王一博非彼王一博,不是明星王一博啊,大家别搞错了,小满也不想蹭明星王一博的热度。突然收到我一个朋友发来的消息,提到王一博去世了,我心里咯噔一下,觉得事情肯定不体坛悲痛,冠军陨落2022年12月25日,哈尔滨市冬训中心冰壶试训运动员王一博因患中枢淋巴瘤离世,年仅27岁事情脉络王一博简介1995年4月23日2022年12月25日),男,中国冰壶运动员,生前系
天价保释金1。29亿元,地产大佬张力摊上什么事了?昨晚的地产圈不平静。消息来自外媒,彭博社报道富力地产联席董事长张力在英国被监视居住。11。29亿元天价保释金,创英国法院纪录消息称,英国当地时间2022年11月30日,富力地产的创策略互联网医疗迎来利好,A股消费板块没理由不涨!今天A股三大指数集体收跌,整体亏钱效应明显。盘面上涨得最好的不是半导体,而是医药。不管是中药化学制药还是医药商业板块,涨幅都在比半导体板块涨幅大。比较遗憾的是,小高手里的医疗基金没又有新型变异毒株?中疾控已检出49例在9个省份,最新判断近日网传消息称,一种名为BQ。1。1的新型变异毒株已经出现。实际的情况怎么样?今天,中国疾控中心发文介绍,BQ。1和BQ。1。1致病力明显减弱,致重症和死亡比例明显低于早期流行的变远古发现丨2。4亿年前,蝈蝈这样鸣叫记者从中国科学院南京地质古生物研究所获悉,中法德等国古生物学者通过建立远古蝈蝈化石的形态数据库,还原重建出这类昆虫在远古时期的鸣声特点。研究发现,早在2。4亿年前,蝈蝈已经能发出多Web3,创作者经济的新范式全球最大的Web3投资机构a16z的文章TheOverlookedLevelsoftheCreatorEconomy开宗明义地指出如今每个人都是创作者。创作者既可以是艺术家摄影师音浅析什么是Web3。0web3。0到底是什么呢?Web3。0这个词啊,是以太坊联合创始人GavinWood(加文伍德)在2014年创造的,一开始就叫Web3。0。既然是Web3。0,那就意味着还有WebZabbix6系列学习15发送告警信息到钉钉应朋友最近需求,先出告警篇。据朋友反馈,由版本5。4升级到6。0出现Webhook的JS脚本失效。下面仅仅是其中一个报错。先贴出5。x时代的Webhook脚本吧,下面的脚本依然适用布洛芬背后的A股公司近期,市场上掀起了一场囤药风,其中布洛芬在各大平台遭到热炒,这也直接导致该类产品卖到脱销。经北京商报记者梳理,涉及到布洛芬原料药生产及销售的A股公司包括新华制药(000756)亨迪总产连续9年超千亿斤,山东粮为啥这么能打1108。76亿斤!根据国家统计局12月12日发布的2022年粮食产量数据,山东全年粮食总产再创历史新高,连续9年稳定在千亿斤以上,连续两年稳定在1100亿斤以上。粮食安全是国之大20如何让亲子关系变得更温暖融洽?溪溪小的时候常咳嗽,每个月要去一次医院。平时,我给溪溪艾灸,灸大椎肺俞定喘和风门几个穴位。天转凉后,在晚上睡觉前泡泡脚,咳嗽也就渐渐好了。一次,溪溪洋洋都感冒了,在服了三五天药后姐MIUI14体验报告总结一下就是如无必要,勿增实体从13到14的体验变化真的没有金凡吹的那么强,他在意的只是2022年10月以后发布的机型罢了,在升级14之前我一直用的是13。0。8,留给我的印象很好