最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue項(xiàng)目配置、切換主題顏色詳細(xì)教程(mixin+scss方式,簡(jiǎn)單高效)

 更新時(shí)間:2023年11月22日 10:51:19   作者:h395910638  
這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目配置、切換主題顏色(mixin+scss方式)的相關(guān)資料,根據(jù)預(yù)設(shè)的配色方案,在前端實(shí)現(xiàn)動(dòng)態(tài)切換系統(tǒng)主題顏色,文中通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下

直接開始,高手話不多

但圖多

基本樣式:

紅色主題:

藍(lán)色主題:

看到這里,是不是有人已經(jīng)開始安耐不住了???

Action

一. 首先,引入scss依賴(node-sass, sass-loader)

npm install node-sass sass-loader --save-dev

二.項(xiàng)目樣式文件目錄介紹

1.此處我將項(xiàng)目中的公共樣式文件放到了 src/style目錄下,其中 index.scss是以供全局使用的一些基本樣式,在main.js文件中引入即可全局使用(圖2)。 _theme.scss, _handle.scss兩個(gè)文件為我們稍后進(jìn)行主題顏色配置的文件.

圖一

三.主題目錄scss文件配置

1.src/style目錄下的_themes.scss,里面可以配置不同的主題配色方案,這里我配置了三個(gè)主題顏色,分別為basic、red、blue。
_themes.scss文件內(nèi)容:

$themes: (
    basic: (
        basic_color: #3064E7,// 主題色
        logo_color: #3064E7,   // 主題色字體
        title_color: #494D50, //新增、注冊(cè)、行業(yè)標(biāo)頭字體顏色
        foot_tolor: #5E6165, // 頁(yè)腳字體顏色
        font_color1: #909399,
        font_color2: #909399,
        // 小logo圖片
        logo_image: url('@/assets/image/logo.png'), 
        // 大logo圖片
        big_logo_image: url('@/assets/image/logo_big.png'), 
        // banner圖片
        banner_image: url('@/assets/image/basic_banner.png'),
        // 首頁(yè)搜索按鈕
        search_btn: linear-gradient(187deg, #5E9DF5 0%, #3064E7 47%),
        // 注冊(cè)動(dòng)態(tài)下邊框
        border_bottom_1: 1px solid #3064E7,
        // 注冊(cè)動(dòng)態(tài)邊框
        card_border_1: 1px solid rgba(208,211,219,1),
        // 注冊(cè)動(dòng)態(tài)卡片背景
        zhuce_card: #fff,
        // 新聞標(biāo)題聚焦顏色
        font_hover: #3064E7,
        //背景
        navbar_background: #fff,
        background_color2: #f0f2f5,
        // 新聞時(shí)事背景
        // news_background:  #fff,
        // 注冊(cè)動(dòng)態(tài)背景
        zhuce_background:  #fff,
        // 行業(yè)資訊背景
        hangye_background: #fff,
        background_color3: red,
        background_color4: #2674e7,
        //邊框
        border_bottom: 5px solid #4554DE,
    ),
    red: (
        basic_color: #D0021B,
        logo_color: #fff,
        title_color: #494D50, //新增、注冊(cè)、行業(yè)標(biāo)頭字體顏色
        foot_tolor: #5E6165, // 頁(yè)腳字體顏色
        font_color1: #909399,
        font_color2: #fff,
        // 新聞標(biāo)題聚焦顏色
        font_hover: #D0021B,
         // 小logo圖片
        logo_image: url('@/assets/image/logo_white.png'),  
        // 大logo圖片
        big_logo_image: url('@/assets/theme/redTheme/logo-b.png'), 
        // banner圖片
        banner_image: url('@/assets/theme/redTheme/banner-bg.png'),
         // 首頁(yè)搜索按鈕
        search_btn: linear-gradient(187deg, #d20000  0%, #da0707de  47%),
        // 注冊(cè)動(dòng)態(tài)下邊框
        border_bottom_1: 2px solid #D0021B ,
        // 注冊(cè)動(dòng)態(tài)邊框
        card_border_1:  1px solid rgba(208,211,219,1),
        // 注冊(cè)動(dòng)態(tài)卡片背景
        zhuce_card: #fff,
        //背景
        navbar_background: url('@/assets/theme/basicTheme/top-bg.png'),
        background_color2: #283142,
        // 新聞時(shí)事背景
        // news_background:  #fff,
        // 注冊(cè)動(dòng)態(tài)背景
        zhuce_background:  #fff,
        // 行業(yè)資訊背景
        hangye_background: #fff,
        background_color3: #1e6ceb,
        background_color4: #323e4e,
        //邊框
        border_bottom: 5px solid #fff,
    ),
    blue: (
        basic_color: #0DECFF ,
        logo_color: #fff,
        title_color: #fff, //新增、注冊(cè)、行業(yè)標(biāo)頭字體顏色
        foot_tolor: #B2D4F5 , // 頁(yè)腳字體顏色
        font_color1: #909399,
        font_color2: #fff,
        // 新聞標(biāo)題聚焦顏色
        font_hover: #0E458C,
         // 小logo圖片
        logo_image: url('@/assets/image/logo_white.png'),  
        // 大logo圖片
        big_logo_image: url('@/assets/theme/redTheme/logo-b.png'), 
        // banner圖片
        banner_image: url('@/assets/theme/blueTheme/y.png'),
         // 首頁(yè)搜索按鈕
        search_btn: linear-gradient(187deg, #0076FF  0%, #0076FF  47%),
        // 注冊(cè)動(dòng)態(tài)下邊框
        border_bottom_1: 2px solid #0DECFF ,
        // 注冊(cè)動(dòng)態(tài)卡片背景
        zhuce_card: #034488,
        // 注冊(cè)動(dòng)態(tài)邊框
        card_border_1: 2px solid rgba(8,93,185,1),
        //背景
        navbar_background: #0E458C,
        foot_background: linear-gradient(131deg, #005FBC 0%, #08215F 100%),
        // 新聞時(shí)事背景
        news_background:  url('@/assets/theme/blueTheme/科技藍(lán).png') no-repeat,
        // 注冊(cè)動(dòng)態(tài)背景
        zhuce_background: #033367,
         // 行業(yè)資訊背景
        hangye_background: #033367,
        background_color2: #283142,
        background_color3: #1e6ceb,
        background_color4: #323e4e,
        //邊框
        border_bottom: 5px solid #fff,
    ),
);

2.src/style/下的 _handle.scss來(lái)操作上述1中的$theme變量(當(dāng)然兩個(gè)文件可以合并,分開寫是想把配置和操作解耦),上代碼:
_handle.scss文件內(nèi)容:

@import "./_theme.scss";
//遍歷主題map
@mixin themeify {
    @each $theme-name, $theme-map in $themes {
        //!global 把局部變量強(qiáng)升為全局變量
        $theme-map: $theme-map !global;
        //判斷html的data-theme的屬性值  #{}是sass的插值表達(dá)式
        //& sass嵌套里的父容器標(biāo)識(shí)   @content是混合器插槽,像vue的slot
        [data-theme="#{$theme-name}"] & {
            @content;
        }
    }
}
//聲明一個(gè)根據(jù)Key獲取顏色的function
@function themed($key) {
    @return map-get($theme-map, $key);
}
//獲取背景顏色
@mixin background_color($color) {
    @include themeify {
        background-color: themed($color)!important;
    }
}
//獲取背景圖片
@mixin background($color) {
    @include themeify {
        background: themed($color)!important;
    }
}
//獲取圖片
@mixin content($color) {
    @include themeify {
        content: themed($color)!important;
    }
}
//獲取背景圖片
@mixin border_bottom($color) {
    @include themeify {
        border-bottom: themed($color)!important;
    }
}
//獲取背景圖片
@mixin border($color) {
    @include themeify {
        border: themed($color)!important;
    }
}
//獲取字體顏色
@mixin font_color($color) {
    @include themeify {
        color: themed($color)!important;
    }
}
//獲取邊框顏色
@mixin border_color($color) {
    @include themeify {
        border-color: themed($color)!important;
    }
}

3.主題樣式文件都配置好了,接下來(lái)就是怎么全局引入這兩個(gè)文件及 怎么在vue頁(yè)面中使用了,此處我們先看 vue頁(yè)面中怎么使用 我們?cè)赺theme.scss中配置好的樣式:

這里以其中一個(gè)頁(yè)面為例,其他頁(yè)面同理:

4.樣式文件基本都配置完成了,最后說(shuō)最重要的一點(diǎn):怎么知道當(dāng)前我們需要用的樣式呢?

此處根據(jù)具體情況具體分析,在合適的頁(yè)面或位置寫入即可,此處我是放到了 App.vue項(xiàng)目入口文件中,在進(jìn)入文件后 通過(guò)window.document.documentElement.setAttribute()方法傳入你當(dāng)前想要使用的主題,此處我傳入的’blue‘(藍(lán)色主題),則vue頁(yè)面中使用的即為_theme.scss中的 blue對(duì)象下配置好的顏色或者其他屬性,為其他主題色(如’red’,‘basic’同理,前提是_theme.scss文件中有已經(jīng)配置好的這兩個(gè)主題色)

總結(jié) 

到此這篇關(guān)于Vue項(xiàng)目配置、切換主題顏色(mixin+scss方式)的文章就介紹到這了,更多相關(guān)Vue項(xiàng)目配置切換主題顏色內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在組件中修改vuex中state的具體實(shí)現(xiàn)方法

    在組件中修改vuex中state的具體實(shí)現(xiàn)方法

    在組件中修改 Vuex 中的 state,根據(jù)使用的 Vue 版本(Vue 2 或 Vue 3)不同,有不同的操作方式,但總體思路都是借助 Vuex 提供的 mutations 或 actions 來(lái)實(shí)現(xiàn),以下分別介紹兩種版本下的具體實(shí)現(xiàn)方法,需要的朋友可以參考下
    2025-02-02
  • Vue3+Vite項(xiàng)目引入Bootstrap5、bootstrap-icons方式

    Vue3+Vite項(xiàng)目引入Bootstrap5、bootstrap-icons方式

    這篇文章主要介紹了Vue3+Vite項(xiàng)目引入Bootstrap5、bootstrap-icons方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue-cli項(xiàng)目中遇到的eslint的坑及解決

    vue-cli項(xiàng)目中遇到的eslint的坑及解決

    這篇文章主要介紹了vue-cli項(xiàng)目中遇到的eslint的坑及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue2.0 自定義組件的方法(vue組件的封裝)

    vue2.0 自定義組件的方法(vue組件的封裝)

    這篇文章主要介紹了vue2.0 自定義組件的方法(vue組件的封裝),本文通過(guò)實(shí)例代碼相結(jié)合的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2018-06-06
  • 解讀計(jì)算屬性和watch監(jiān)聽的區(qū)別及說(shuō)明

    解讀計(jì)算屬性和watch監(jiān)聽的區(qū)別及說(shuō)明

    計(jì)算屬性是基于它們的依賴進(jìn)行緩存的,只有在它的相關(guān)依賴發(fā)生改變時(shí)才會(huì)重新求值,而watch則是一個(gè)更為通用的監(jiān)聽器,它可以在數(shù)據(jù)變化時(shí)執(zhí)行異步操作或開銷較大的操作
    2025-01-01
  • vue的@change的用法及操作代碼

    vue的@change的用法及操作代碼

    @change 是 Vue.js 中用于監(jiān)聽表單元素值變化的事件處理器,這篇文章主要介紹了vue的@change的用法,需要的朋友可以參考下
    2023-10-10
  • Vue實(shí)現(xiàn)拖拽改變列表順序詳解

    Vue實(shí)現(xiàn)拖拽改變列表順序詳解

    這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)拖拽改變列表順序的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-04-04
  • Vue3中其他的Composition?API詳解

    Vue3中其他的Composition?API詳解

    這篇文章主要介紹了Vue3中其他的Composition?API,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • Vue3+TypeScript 常用代碼示例總結(jié)

    Vue3+TypeScript 常用代碼示例總結(jié)

    本文主要介紹了Vue3+TypeScript 常用代碼示例總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2026-03-03
  • vue+vuex+axios+echarts畫一個(gè)動(dòng)態(tài)更新的中國(guó)地圖的方法

    vue+vuex+axios+echarts畫一個(gè)動(dòng)態(tài)更新的中國(guó)地圖的方法

    本篇文章主要介紹了vue+vuex+axios+echarts畫一個(gè)動(dòng)態(tài)更新的中國(guó)地圖的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12

最新評(píng)論

施甸县| 河曲县| 永顺县| 高雄县| 沈阳市| 崇明县| 大冶市| 徐汇区| 朝阳县| 台北县| 文化| 民勤县| 澎湖县| 蒲江县| 全椒县| 迁西县| 南宁市| 苏尼特左旗| 阜新| 巴林右旗| 佛学| 鹤山市| 冀州市| 塔城市| 临桂县| 福海县| 扬州市| 定州市| 武夷山市| 赤城县| 三台县| 宁武县| 青阳县| 屏山县| 婺源县| 灵台县| 容城县| 扎赉特旗| 新蔡县| 安岳县| 沾益县|