Ant-Select样式初始化

本文介绍了如何使用Ant Design库中的Select组件,并结合CSS自定义样式,实现在React应用中下拉选项的动态样式和交互。展示了如何设置默认值、禁用选项、监听选中事件以及修改背景、字体颜色等视觉效果。
摘要由CSDN通过智能技术生成

效果图

在这里插入图片描述

JS

import styles from './style.less'
import { Select } from 'antd';
const { Option } = Select;

const selectData = [
    { name: '羽神', id: 1, value: 'ys' },
    { name: '少主', id: 2, value: 'sz' },
    { name: '关羽', id: 3, value: 'gy' },
    { name: '二弟天下第一', id: 4, value: 'edtxdy' },
]
const index = () =>
{
    const handleChange = (value, item) =>
    {
        console.log(`selected ${value}`, item);
    }
    return (
        <div style={{ width: '120px' }} >
            <Select defaultValue={selectData[1].value} style={{ width: '100%', background: 'rgba(250,250,250,0)' }} onChange={handleChange}>
                {selectData.map((data, index) => (
                    <Option key={index} value={data.value} disabled={data.id === 3 ? true : false}>{data.name}</Option>
                ))}
            </Select>
        </div >
    );
};
export default index

CSS

:global {

  // 下拉框背景颜色
  .ant-select:not(.ant-select-customize-input) .ant-select-selector {
    position: relative;
    background: rgba(21, 31, 45, 0.5);
    border: 1px solid rgba(26, 193, 255, .8);
    border-radius: 8px;
    // 过度动画
    transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
  }

  // 下拉框高度
  .ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 40px;
  }

  // 设置文字颜色以及大小
  .ant-select-single.ant-select-show-arrow .ant-select-selection-item,
  .ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder {
    font-size: 18px;
    font-weight: 400;
    color: #D0E6FF;
  }

  // 箭头大小以及位置
  .ant-select-arrow {
    top: 50%;
    right: 11px;
    width: 12px;
    height: 12px;
    margin-top: -6px;
    color: rgba(0, 0, 0, 0.25);
    font-size: 12px;
    pointer-events: none;
  }

  // 隐藏三角
  .ant-select-arrow .anticon {
    vertical-align: top;
    transition: transform 0.3s;
    display: none;
  }

  // 自定义三角
  .ant-select-arrow {
    cursor: pointer;
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 8px solid rgba(26, 193, 255, .8);
  }

  // 设置未选中的字体颜色
  .ant-select-item {
    color: rgba(1, 4, 14, 0.9411764705882353);
  }

  // 未选中背景颜色
  .ant-select-dropdown {
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid #000000;
    border-radius: 4px;
  }

  // 选择时候的颜色
  .ant-select-item-option-active:not(.ant-select-item-option-disabled) {
    background-color: blank;
  }

  // 选中时的字体颜色 以及背景颜色
  .ant-select-item-option-selected:not(.ant-select-item-option-disabled) {
    color: rgb(115, 115, 168);
    background: rgba(26, 193, 255, .8);
  }
}

在 Vue3 中自定义 Ant Design 的 Select 组件以及其 `SelectOption` 样式,通常需要通过组件化的方式重构 Select 组件,并利用 CSS 或 SCSS 进行样式定制。以下是基本步骤: 1. **引入 AntD 组件库**:首先,在你的项目中安装 Ant Design Vue 组件库,如果还没有安装,可以使用 `npm install @ant-design/vue` 或者 `yarn add @ant-design/vue`。 2. **创建自定义 Select 组件**: - 创建一个名为 `CustomSelect.vue` 的文件,导入 `Select` 组件并对其进行扩展,添加必要的属性和自定义样式。 ```vue <template> <a-select :options="options" ref="customSelect" v-bind="$attrs" @change="handleChange"> <!-- 添加其他你需要的选项如 placeholder、multiple 等 --> </a-select> </template> <script> import { Select } from '@ant-design/vue'; export default { extends: Select, props: { // 额外的 prop 可以在这里定义 }, methods: { handleChange(value) { console.log('选中值', value); } }, computed: { options() { // 定义选项数据,这里仅作示例 return [ { label: 'Option 1', value: 'option1' }, { label: 'Option 2', value: 'option2' }, ]; } } }; </script> <style scoped> /* 在这里添加自定义的 SelectOption 样式 */ .custom-select-option { /* 例如修改字体颜色、背景等 */ color: #666; background-color: #fff; } </style> ``` 3. **使用自定义 Select**: 将自定义 Select 组件替换到你的 Vue 单元中,并传递所需的参数和样式: ```vue <custom-select placeholder="请选择" :options="options" class="custom-select"></custom-select> ``` 使用 `.custom-select` 类名应用样式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

臧小川

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

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

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

打赏作者

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

抵扣说明:

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

余额充值