文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

vue中如何使用定义好的变量设置css样式

2023-06-29 09:43

关注

小编给大家分享一下vue中如何使用定义好的变量设置css样式,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

前言

在做项目的时候,通常会遇到需要在 HTML 标签上绑定变量来设置样式,对于这种需求,共有两种情况。

实现

第一种情况

如果是对于代码中实实在在存在的 HTML 标签,我们可以直接绑定变量来设置样式,比如改变表格的边框。

<template>  <div class="app-container">    <template>      <el-table        :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 {      // 表格数据      tableData: [{        date: '2016-05-02',        name: '王小虎',        address: '上海市普陀区金沙江路 1518 弄'      }, {        date: '2016-05-04',        name: '王小虎',        address: '上海市普陀区金沙江路 1517 弄'      }, {        date: '2016-05-01',        name: '王小虎',        address: '上海市普陀区金沙江路 1519 弄'      }, {        date: '2016-05-03',        name: '王小虎',        address: '上海市普陀区金沙江路 1516 弄'      }],      table_border: 'border: 1px solid red'// 设置表格边框样式    }  }}</script>

效果如下:

vue中如何使用定义好的变量设置css样式

第二种情况

如果我想手动改变表格表头的边框颜色,有时候由于一些 UI 框架的组件是封装好的,实际的 HTML 标签代码中并不能直接设置,这时候就需要在 css 中进行设置,那么怎么在 css 中使用变量呢。

 语法

首先,我们要搞明白在 css 中如何声明一个 css 变量,如下:

--color: red

如何使用该 css 变量,如下:

.className{    color: var(--color)}
方法一

基于以上语法,我们来实现设置表格表头的边框,如下:

<template>  <div class="app-container">    <template>      <el-table        :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 {      // 表格数据      tableData: [{        date: '2016-05-02',        name: '王小虎',        address: '上海市普陀区金沙江路 1518 弄'      }, {        date: '2016-05-04',        name: '王小虎',        address: '上海市普陀区金沙江路 1517 弄'      }, {        date: '2016-05-01',        name: '王小虎',        address: '上海市普陀区金沙江路 1519 弄'      }, {        date: '2016-05-03',        name: '王小虎',        address: '上海市普陀区金沙江路 1516 弄'      }],      table_border: '1px solid red', // 设置表格边框样式      table_header_border: '3px solid green'// 设置表头边框样式    }  },  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>

效果如下:

vue中如何使用定义好的变量设置css样式

方法二

对于第二种情况,除了以上方法以外,我们还可以在 HTML 标签上使用 ref 属性来实现,如下:

<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 {      // 表格数据      tableData: [{        date: '2016-05-02',        name: '王小虎',        address: '上海市普陀区金沙江路 1518 弄'      }, {        date: '2016-05-04',        name: '王小虎',        address: '上海市普陀区金沙江路 1517 弄'      }, {        date: '2016-05-01',        name: '王小虎',        address: '上海市普陀区金沙江路 1519 弄'      }, {        date: '2016-05-03',        name: '王小虎',        address: '上海市普陀区金沙江路 1516 弄'      }],      table_border: '1px solid red', // 设置表格边框样式      table_header_border: '3px solid green'// 设置表头边框样式    }  },  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>

效果如下:

vue中如何使用定义好的变量设置css样式

看完了这篇文章,相信你对“vue中如何使用定义好的变量设置css样式”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网行业资讯频道,感谢各位的阅读!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯