Vue中select 标签自定义样式

需求原因:我在vue开发中,也会习惯使用各种UI库,但让人难受的是,提供的UI组件的样式难以覆盖,比如我要用的select,我的界面风格是深蓝色的,它的白色背景都不符合需求,要跑到element-plus的样式文件去修改。

=》之后,我想,这种简单的组件,我完全可以自己手写,好处可以让我更好的掌握select本身,消除不确定的部分。

=》以后,可以直接拿来当组件使用

下面就是自己修改出来的样式截图

<template> 
 <select v-model="selectId" class="select-box">
    <option v-for="item in options" :key="item.id" :value="item.id">
      {{ item.name }}
    </option>
  </select>
</template>

<script setup>
import {ref, reactive} from 'vue';

let selectId = ref(1);    //默认选择id为1的选项
let options = reactive([  //数据
  {
    id:1,
    name:"张三"
  },
  {
    id:2,
    name:"李四"
  },
  {
    id:3,
    name:"玄策"
  }
]);
</script>

<style scope lang="scss">
.select-box {
  width: 1.8rem; /*设置宽度确保内容 和 下拉icon的距离*/
  padding-top: 0.06rem;
  padding-bottom: 0.06rem;
  padding-left: 0.07rem;
  background: transparent;
  border: none;
  font-size: 0.15rem;
  font-family: Microsoft YaHei;
  font-weight: bold;
  color: #ffc000;
  /*清除select聚焦时候的边框颜色*/
  outline: none;
  option {
    background: #06175b;
    border: none;
  }
}
</style>

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue2使用G6脑图进行自定义样式的话,你可以通过以下步骤实现: 1. 安装G6脑图的依赖:在你的Vue项目,使用npm或yarn安装G6脑图的相关依赖,包括`@antv/g6`和`@antv/g6-brush-select-plugin`。 2. 创建G6脑图组件:在你的Vue项目创建一个G6脑图的组件,可以命名为`G6MindMap.vue`。 3. 在`G6MindMap.vue`引入依赖:在组件文件引入G6脑图所需的依赖,例如: ```javascript import G6 from '@antv/g6'; import BrushSelect from '@antv/g6-brush-select-plugin'; ``` 4. 定义定义样式:在组件的`mounted`生命周期钩子定义你想要的自定义样式。例如,你可以修改节点的形状、颜色、文字样式等。下面是一个示例: ```javascript mounted() { // 定义定义样式 G6.registerNode('custom-node', { draw(cfg, group) { const shape = group.addShape('rect', { attrs: { x: -50, y: -25, width: 100, height: 50, fill: '#C6E5FF', }, }); group.addShape('text', { attrs: { text: cfg.label, x: 0, y: 0, textAlign: 'center', textBaseline: 'middle', fill: '#333', }, }); return shape; }, }); }, ``` 5. 渲染脑图:在`G6MindMap.vue`组件定义一个方法来渲染脑图。在方法,你可以通过调用G6的API来创建节点、设置样式、添加连线等操作。 ```javascript methods: { renderMindMap() { const container = this.$refs.mindmapContainer; const width = container.offsetWidth; const height = container.offsetHeight; const graph = new G6.Graph({ container, width, height, plugins: [BrushSelect], // 设置节点样式为自定义样式 defaultNode: { type: 'custom-node', }, // 其他配置项... }); // 添加节点和连线等操作... graph.render(); }, }, ``` 6. 在模板使用组件:在你的Vue页面,使用`G6MindMap`组件,并在适当的时机调用`renderMindMap`方法来渲染脑图。 ```html <template> <div> <div ref="mindmapContainer" style="width: 100%; height: 500px;"></div> </div> </template> <script> import G6 from '@antv/g6'; import BrushSelect from '@antv/g6-brush-select-plugin'; export default { mounted() { G6.registerNode('custom-node', { draw(cfg, group) { // 自定义节点样式... }, }); this.renderMindMap(); }, methods: { renderMindMap() { // 渲染脑图... }, }, }; </script> ``` 通过以上步骤,你就可以在Vue2使用G6脑图进行自定义样式了。你可以根据实际需求修改节点样式定义和渲染过程,以满足你的具体要求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

tengyuxin

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

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

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

打赏作者

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

抵扣说明:

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

余额充值