亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vue中使用定義好的變量設(shè)置css樣式詳解

 更新時間:2022年03月05日 11:56:24   作者:巨蟹座不吃魚  
vue項目中我們可以通過行內(nèi)樣式進行動態(tài)修改樣式,下面這篇文章主要給大家介紹了關(guān)于vue中如何使用定義好的變量設(shè)置css樣式的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下

前言

在做項目的時候,通常會遇到需要在 HTML 標簽上綁定變量來設(shè)置樣式,對于這種需求,共有兩種情況。

實現(xiàn)

第一種情況

如果是對于代碼中實實在在存在的 HTML 標簽,我們可以直接綁定變量來設(shè)置樣式,比如改變表格的邊框。

  • 先設(shè)置一個表格邊框樣式的 JS 變量(table_border)。
  • 再在 HTML 標簽的 style 屬性上綁定該 JS 變量。
<template>
  <div class="app-container">
    <template>
      <el-table
        :data="tableData"
        :style="table_border"
      >
        <el-table-column
          prop="date"
          label="日期"
          width="180"
        />
        <el-table-column
          prop="name"
          label="姓名"
          width="180"
        />
        <el-table-column
          prop="address"
          label="地址"
        />
      </el-table>
    </template>
  </div>
</template>
<script>
export default {
  data() {
    return {
      // 表格數(shù)據(jù)
      tableData: [{
        date: '2016-05-02',
        name: '王小虎',
        address: '上海市普陀區(qū)金沙江路 1518 弄'
      }, {
        date: '2016-05-04',
        name: '王小虎',
        address: '上海市普陀區(qū)金沙江路 1517 弄'
      }, {
        date: '2016-05-01',
        name: '王小虎',
        address: '上海市普陀區(qū)金沙江路 1519 弄'
      }, {
        date: '2016-05-03',
        name: '王小虎',
        address: '上海市普陀區(qū)金沙江路 1516 弄'
      }],
      table_border: 'border: 1px solid red'// 設(shè)置表格邊框樣式
    }
  }
}
</script>

效果如下:

第二種情況

如果我想手動改變表格表頭的邊框顏色,有時候由于一些 UI 框架的組件是封裝好的,實際的 HTML 標簽代碼中并不能直接設(shè)置,這時候就需要在 css 中進行設(shè)置,那么怎么在 css 中使用變量呢。

 語法

首先,我們要搞明白在 css 中如何聲明一個 css 變量,如下:

--color: red

如何使用該 css 變量,如下:

.className{
    color: var(--color)
}

方法一

基于以上語法,我們來實現(xiàn)設(shè)置表格表頭的邊框,如下:

  • 先設(shè)置樣式,一個表格邊框樣式的 JS 變量(table_border)及一個表頭邊框樣式的 JS 變量(table_header_border)。
  • 再在 computed 中定義一個參數(shù)(setStyles),其返回值為 css 樣式集。其中鍵為 css 變量名,值為 css 樣式屬性值。
  • 將該參數(shù)(setStyles)綁定到 HTML 標簽的 Style 屬性上。
  • 最后在 style 中使用,找到需要改變或者設(shè)置樣式的 HTML 標簽的 className,將 css 變量進行綁定即可。
<template>
  <div class="app-container">
    <template>
      <el-table
        :data="tableData"
        :style="setStyles"
      >
        <el-table-column
          prop="date"
          label="日期"
          width="180"
        />
        <el-table-column
          prop="name"
          label="姓名"
          width="180"
        />
        <el-table-column
          prop="address"
          label="地址"
        />
      </el-table>
    </template>
  </div>
</template>
<script>
export default {
  data() {
    return {
      // 表格數(shù)據(jù)
      tableData: [{
        date: '2016-05-02',
        name: '王小虎',
        address: '上海市普陀區(qū)金沙江路 1518 弄'
      }, {
        date: '2016-05-04',
        name: '王小虎',
        address: '上海市普陀區(qū)金沙江路 1517 弄'
      }, {
        date: '2016-05-01',
        name: '王小虎',
        address: '上海市普陀區(qū)金沙江路 1519 弄'
      }, {
        date: '2016-05-03',
        name: '王小虎',
        address: '上海市普陀區(qū)金沙江路 1516 弄'
      }],

      table_border: '1px solid red', // 設(shè)置表格邊框樣式
      table_header_border: '3px solid green'// 設(shè)置表頭邊框樣式
    }
  },
  computed: {
    setStyles() {
      return {
        '--tableBorder': this.table_border,
        '--tableHeaderBorder': this.table_header_border
      }
    }
  }
}
</script>
<style lang="scss">
  .el-table--fit{
    border: var(--tableBorder);
  }
  .el-table__header-wrapper{
    border: var(--tableHeaderBorder);
  }
</style>

效果如下:

方法二

對于第二種情況,除了以上方法以外,我們還可以在 HTML 標簽上使用 ref 屬性來實現(xiàn),如下:

  • 先設(shè)置樣式,一個表格邊框樣式的 JS 變量(table_border)及一個表頭邊框樣式的 JS 變量(table_header_border)。
  • 在 HTML 標簽上設(shè)置屬性 ref 為 tableStyle。
  • 再在 methods 中定義一個方法 setStyles,該方法通過 this.refs.tableStyle.refs.tableStyle.refs.tableStyle.el.style.setProperty 來手動將定義好的 JS 變量值綁定到對應(yīng)的 css 變量上。
  • 在 mounted 中調(diào)用 setStyles 方法。
  • 最后在 style 使用,找到需要改變或者設(shè)置樣式的 HTML 標簽的 className,將 css 變量進行綁定即可。
<template>
  <div class="app-container">
    <template>
      <el-table
        ref="tableStyle"
        :data="tableData"
      >
        <el-table-column
          prop="date"
          label="日期"
          width="180"
        />
        <el-table-column
          prop="name"
          label="姓名"
          width="180"
        />
        <el-table-column
          prop="address"
          label="地址"
        />
      </el-table>
    </template>
  </div>
</template>
<script>
export default {
  data() {
    return {
      // 表格數(shù)據(jù)
      tableData: [{
        date: '2016-05-02',
        name: '王小虎',
        address: '上海市普陀區(qū)金沙江路 1518 弄'
      }, {
        date: '2016-05-04',
        name: '王小虎',
        address: '上海市普陀區(qū)金沙江路 1517 弄'
      }, {
        date: '2016-05-01',
        name: '王小虎',
        address: '上海市普陀區(qū)金沙江路 1519 弄'
      }, {
        date: '2016-05-03',
        name: '王小虎',
        address: '上海市普陀區(qū)金沙江路 1516 弄'
      }],

      table_border: '1px solid red', // 設(shè)置表格邊框樣式
      table_header_border: '3px solid green'// 設(shè)置表頭邊框樣式
    }
  },
  mounted() {
    this.setStyles()
  },
  methods: {
    setStyles() {
      this.$nextTick(() => {
        this.$refs.tableStyle.$el.style.setProperty('--tableBorder', this.table_border) // 給變量賦值
        this.$refs.tableStyle.$el.style.setProperty('--tableHeaderBorder', this.table_header_border) // 給變量賦值
      })
    }
  }
}
</script>
<style lang="scss">
  .el-table--fit{
    border: var(--tableBorder);
  }
  .el-table__header-wrapper{
    border: var(--tableHeaderBorder);
  }
</style>

效果如下:

總結(jié)

對于在 css 中定義 css 變量來獲取 JS 變量設(shè)置樣式,我個人感覺挺有用的,特別是在做自適應(yīng)的時候,總是需要動態(tài)獲取一些樣式數(shù)據(jù)來進行渲染。

到此這篇關(guān)于vue中使用定義好的變量設(shè)置css樣式的文章就介紹到這了,更多相關(guān)vue定義好的變量設(shè)置css樣式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue實現(xiàn)的多頁面項目如何優(yōu)化打包的步驟詳解

    vue實現(xiàn)的多頁面項目如何優(yōu)化打包的步驟詳解

    這篇文章主要介紹了vue實現(xiàn)的多頁面項目如何優(yōu)化打包的步驟詳解,文中通過示例代碼以及圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2020-07-07
  • Vue+webpack實現(xiàn)懶加載過程解析

    Vue+webpack實現(xiàn)懶加載過程解析

    這篇文章主要介紹了Vue+webpack實現(xiàn)懶加載過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • ElementUI實現(xiàn)el-table列寬自適應(yīng)的代碼詳解

    ElementUI實現(xiàn)el-table列寬自適應(yīng)的代碼詳解

    這篇文章給大家介紹了ElementUI實現(xiàn)el-table列寬自適應(yīng)的詳細步驟,文中通過代碼示例給大家介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01
  • vue?this.$router和this.$route區(qū)別解析及路由傳參的2種方式?&&?this.$route的各種語法

    vue?this.$router和this.$route區(qū)別解析及路由傳參的2種方式?&&?this.$route

    this.$router?相當于一個全局的路由器對象,包含了很多屬性和對象(比如?history?對象),任何頁面都可以調(diào)用其?push(),?replace(),?go()?等方法,本文給大家介紹Vue中this.$router與this.$route的區(qū)別?及push()方法,感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • nvue頁面用法uniapp使用場景

    nvue頁面用法uniapp使用場景

    Nvue是一個基于weex改進的原生渲染引擎,它在某些方面要比vue更高性能,在app上使用更加流暢,這篇文章主要介紹了nvue頁面用法uniapp,需要的朋友可以參考下
    2023-12-12
  • 關(guān)于vue中hash和history的區(qū)別與使用圖文詳解

    關(guān)于vue中hash和history的區(qū)別與使用圖文詳解

    vue-router中有hash模式和history模式,下面這篇文章主要給大家介紹了關(guān)于vue中hash和history的區(qū)別與使用的相關(guān)資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-03-03
  • Vue過濾器filters如何使用

    Vue過濾器filters如何使用

    Vue過濾器filters用于一些常見的文本格式化,通過過濾器可以進行處理成自己想要展示出來的格式,由“管道”符號指示,本文給大家介紹Vue過濾器filters使用方式,感興趣的朋友一起看看吧
    2023-10-10
  • 關(guān)于vue的路由模式及修改方法

    關(guān)于vue的路由模式及修改方法

    這篇文章主要介紹了關(guān)于vue的路由模式及修改方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • vue-resource調(diào)用promise取數(shù)據(jù)方式詳解

    vue-resource調(diào)用promise取數(shù)據(jù)方式詳解

    這篇文章主要介紹了vue-resource調(diào)用promise取數(shù)據(jù)方式詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • VueJs 搭建Axios接口請求工具

    VueJs 搭建Axios接口請求工具

    axios 是一個基于Promise 用于瀏覽器和 nodejs 的 HTTP 客戶端。今天我們來介紹VueJs 搭建Axios接口請求工具,需要的朋友參考下本文吧
    2017-11-11

最新評論