修改组件默认样式

修改组件提供的默认样式为自己需要的样式,组件样式一般都是以 .ant- 开头的,自定义样式建议以 x- 开头

修改 react 组件样式

和 vue 不同 react 中使用 :global,不使用 :deep

当前页面全局修改

页面中的所有组件都起作用,在样式中使用 x-page 开头,x-page 是页面组件自带的样式。使用 :global 包含组件样式,在页面 css 文件中,添加如下代码

.x-page{
    :global{
        .ant-upload.ant-upload-select-picture-card{
            width: 200px;
            height: 200px;
        };
        .ant-btn{
            border-color: red ;
        }
    }
}

当前页面单个控制

以 ant- 开头的组件样式,外层需要使用 :global 才能生效

例如设置按钮和表头背景色,在按钮和表格组件上添加 x-green 样式,在页面 css 文件中添加如下代码

.x-page {
    :global{
        .x-green.ant-btn.ant-btn-default {
            background-color: red;
        }
        .x-green.ant-table-wrapper .ant-table-thead >tr>th {
            background-color: rgba(135, 207, 235);
        }
    }
}

整个应用全局修改

整个应用全局样式在 UI2/pcx/common.css 文件中定义,使用 :global 包含组件样式,示例代码如下

:global{
        .ant-btn{
            color: green;
        };
        .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn {
            color: red;
        };
        .ant-upload.ant-upload-select-picture-card{
            width: 300px;
            height: 300px;
        };
}

使用 common.css 文件需要在同级创建一个 common.js 文件,然后在 js 文件中引用 common.css,代码如下

import "./common.css";

修改 vue 组件样式

和 react 不同 vue 中使用 :deep,不使用 :global

当前页面全局修改

页面中的所有组件都起作用,在样式中使用 x-page 开头,x-page 是页面组件自带的样式。使用 :deep 包含组件样式,在页面 css 文件中,添加如下代码

.x-page {
    :deep{
        .ant-btn.ant-btn-default{
            background-color: rgba(255, 228, 225);
        }
    }
}

运行效果如下图所示

1726802154595

当前页面单个控制

分为两种情况

  • 将样式定义到组件上即可生效:直接定义样式
  • 将样式定义到组件内部才能生效:在样式中使用 :deep 包含组件内部样式

定义到组件样式上

例如设置按钮背景色,在按钮组件上添加 x-green 样式,在页面 css 文件中添加如下代码

.x-green.ant-btn.ant-btn-default {
    background-color: red;
}

运行效果如下图所示

1726801377166

定义到组件内部样式上

例如设置表头背景色,在表格组件上添加 x-green 样式,在页面 css 文件中添加如下代码

.x-green.ant-table-wrapper{
    :deep{
         .ant-table-thead >tr>th {
            background-color: rgba(135, 207, 235);
        }
    }
}

运行效果如下图所示

1726801331597

整个应用全局修改

整个应用全局样式在 UI2/pcx/common.css 文件中定义,示例代码如下

    .ant-btn.ant-btn-default {
        background-color: rgba(204, 179, 233);
    }

使用 common.css 文件需要在同级创建一个 common.js 文件,然后在 js 文件中引用 common.css,代码如下

import "./common.css";

组件样式

组件支持定义静态样式和动态样式,需要注意的是,设置动态样式后,静态样式不再生效

1724921017030

样式案例

使用系统提供的组件禁用样式(49)

一个可编辑的表单,如下图所示

1756953885721

设置数据只读后,表单组件显示只读样式,如下图所示

1756953954456

系统提供表单组件禁用样式 x-disabled-form,在表单组件上添加这个样式后,如下图所示

1756953988717

系统提供的样式

在企业门户的 UI2/pcx/common.css 文件中,定义了一个样式 x-disabled-form,在这个样式中,重新设置了输入框、日期选择框、选择器等表单组件的禁用样式,如下图所示

1756956343549

css 代码如下

:global{
    .x-disabled-form{
        .ant-input-disabled, .ant-input[disabled], .ant-input-number-disabled,
        .ant-input-number-disabled .ant-input-number-input,
        .ant-picker-disabled,
        .ant-picker .ant-picker-input >input-disabled, .ant-picker .ant-picker-input >input[disabled],
        .ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector{
            color: rgba(0, 0, 0, 0.88);
            background-color: transparent;
            border: none;
            cursor: default;
        }
        .ant-input-disabled::placeholder, .ant-input[disabled]::placeholder,
        .ant-picker .ant-picker-input >input-disabled::placeholder, .ant-picker .ant-picker-input >input[disabled]::placeholder {
            color: transparent; /* 使placeholder变为透明 */
        }
        .ant-picker-disabled .ant-picker-suffix,
        .ant-select-disabled .ant-select-arrow,
        .ant-select-disabled .ant-select-selection-placeholder{
            display: none;
        }
        .ant-switch.ant-switch-disabled *{
            cursor: default;
        }
        .ant-select-disabled.ant-select-multiple .ant-select-selection-item,
        .ant-radio-wrapper-disabled,
        .ant-radio-wrapper .ant-radio-disabled,
        .ant-radio-wrapper .ant-radio-disabled .ant-radio-input,
        .ant-checkbox-wrapper-disabled,
        .ant-checkbox-wrapper .ant-checkbox-disabled,
        .ant-checkbox-wrapper .ant-checkbox-disabled .ant-checkbox-input,
        .ant-checkbox-disabled + span{
            cursor: default;
            color: inherit;
        }
        .ant-radio-checked.ant-radio-disabled .ant-radio-inner,
        .ant-checkbox-checked.ant-checkbox-disabled .ant-checkbox-inner{
            background: var(--ant-primary-color,#1677FF);
            border-color: var(--ant-primary-color,#1677FF);
            opacity: 0.65;
        }
        .ant-radio-checked.ant-radio-disabled .ant-radio-inner:after{
            background-color: white;
        }
        .ant-checkbox-checked.ant-checkbox-disabled .ant-checkbox-inner:after {
            border-color: white;
        }
        .ant-slider.ant-slider-disabled{
            cursor: default;
        }
        .ant-slider.ant-slider-disabled .ant-slider-track{
            background-color: var(--ant-slider-track-bg,#91caff) !important;
        }
        .ant-slider.ant-slider-disabled .ant-slider-handle::after{
            cursor: default;
            box-shadow: 0 0 0 var(--ant-slider-handle-line-width,2px) var(--ant-slider-handle-color,#91caff);
        }
    }
}

设置表单的动态样式

给表单组件设置“动态 class”属性,当“页面参数.动作”等于 view 时,给表单组件添加 x-disabled-form 样式,设计界面如下图所示

1756956387902

点击动态 class 属性右侧的...按钮,打开“属性编辑-动态class”对话框,如下图所示。点击+按钮新增一个动态样式,在“样式”中输入 x-disabled-form

1757040959355

点击生效条件右侧的...按钮,打开“样式生效条件”对话框,如下图所示,设置条件为:当“页面参数.动作”等于 view 时生效,否则不生效

1756956475421

设置完毕,当再次点击查看按钮打开详情页面时,组件会使用系统提供的禁用样式展现

results matching ""

    No results matching ""