antd 覆盖组件样式

安全分
• 阅读 26541

覆盖组件样式#

由于业务的个性化需求,我们经常会遇到需要覆盖组件样式的情况,这里举个简单的例子。

antd Select 在多选状态下,默认会展示所有选中项,这里我们给它加一个限制高度,超过此高度就出滚动条。

// TestPage.js

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

const children = [];
for (let i = 10; i < 36; i++) {
  children.push(<Option key={i.toString(36) + i}>{i.toString(36) + i}</Option>);
}

ReactDOM.render(
  <Select
    mode="multiple"
    style={{ width: 300 }}
    placeholder="Please select"
    className={styles.customSelect}
  >
    {children}
  </Select>
, mountNode);

// TestPage.less

.customSelect {
  :global {
    .ant-select-selection {
      max-height: 51px;
      overflow: auto;
    }
  }
}

方法很简单,有两点需要注意:

引入的 antd 组件类名没有被 CSS Modules 转化,所以被覆盖的类名 .ant-select-selection 必须放到 :global 中。

因为上一条的关系,覆盖是全局性的。为了防止对其他 Select 组件造成影响,所以需要包裹额外的 className 限制样式的生效范围。

仔细看官方文档还是有必要的,一开始这个问题就困扰着我。

点赞
收藏
评论区
推荐文章
风花雪月 风花雪月
2年前
html加css样式,不用js实现切换内容,直接上测试代码!
/清样式,如果是项目中,不推荐使用通配符来清样式,建议使用标签清样式,通配符清样式会增加页面压力/margin:0;padding:0;/宽度为屏宽的一半,高度为屏高的一半,然后居中/.boxwidth:50vw;height:50vh;margin:0a
Easter79 Easter79
4年前
taro 组件的外部样式和全局样式
自定义组件对应的样式文件,只对该组件内的节点生效。编写组件样式时,需要注意以下几点:1.组件和引用组件的页面不能使用id选择器(a)、属性选择器(\a\)和标签名选择器,请改用class选择器。2.组件和引用组件的页面中使用后代选择器(.a.b)在一些极端情况下会有非预期的表现,如遇,请避免使用。3.子
菜园前端 菜园前端
2年前
什么是 CSS?
原文链接:什么是CSS?CSS指层叠样式表(CascadingStyleSheets),理解为CSS样式就可以了。CSS样式有什么作用呢?比如我们在页面中添加了一个div,我想给这个div设置宽度、高度、背景色、阴影、内容字体样式等等,就是通过CSS样式来
Stella981 Stella981
4年前
Bootstrap不同级别标题
!u2721599714,2937226223&fm21&gp0(http://static.oschina.net/uploads/img/201511/27092431_7hmo.jpg)Bootstrap和普通的HTML页面一样,定义标题都是使用标签<h1到<h6,只不过Bootstrap覆盖了其默认的样式,使用其在所有浏览器下显示的
Wesley13 Wesley13
4年前
video 铺满父元素(object
 遇到这个属性,是在给video嵌入一个div时,导致video播放器上下有灰色。在控制台查看video默认样式的时候看到了这个属性。!(https://oscimg.oschina.net/oscnet/c205babf0fc5ff45bb1f1b4bebbef684d2a.jpg)播放器上下的灰色,不是我们想要的样式,如果能完全覆盖就更好了。
Wesley13 Wesley13
4年前
JS和CSS加载(渲染)机制不同
一、结论CSS可以在页面加载完成后随时渲染。举个例子:通过js给某个元素加一个id或者css,只要这个id或者css有对应的样式,此元素的样式就会自动生效。JS不可以在页面加载完成后生效。最明显的例子就是使用EasyUI的时候,iframe中哪些样式无效(EasyUi是依靠JS进行样式处理的,所以无法运行JS,那么样式也就无法设置。简单点说
Stella981 Stella981
4年前
Agile Lite默认控制器CSS扩展实现H5组件动画切换
AgileLite中提供了很多控制器和组件的交互,但是实际开发过程中还会遇到很多种场景无法满足。这里介绍一下如何使用AgileLite的默认控制器和组件的UI渲染来满足不同的场景需要默认控制器的扩展默认控制器的扩展是指通过CSS样式对控制器进行UI渲染,使得默认控制器的使用场景更丰富。扩展默认控制器的方法
程序员一鸣 程序员一鸣
11个月前
鸿蒙开发:使用Rect绘制矩形
几何矩形,在实际的开发中,有多种的实现方式,并非一定需要Rect组件,但是,如果有需要用到矩形的场景,建议还是使用Rect组件,因为Rect组件自身携带了很多样式属性,可以满足我们日常的不同的需求。
陈杨 陈杨
8个月前
鸿蒙5横向柱状图series属性解析
大家好,欢迎回来鸿蒙5莓创图表组件的专场,我们这一期来讲解McHorBarChart(横向柱状图)组件中series属性的详细用法。series属性是控制柱状图数据系列的核心配置项,掌握好这些属性可以让你轻松创建各种样式的柱状图效果。1.name属性作用: