Ant Design 中覆蓋組件樣式


業務場景:

由於業務的個性化需求,我們經常會遇到需要覆蓋組件樣式的情況,這里舉個簡單的例子。

antd Select 在多選狀態下,默認會展示所有選中項,這里我們給它加一個限制高度,超過此高度就出滾動條

代碼:

// TestPage.less
.customSelect {
  :global {
    .ant-select-selection {
      max-height: 51px;
      overflow: auto;
    }
  }
}
// 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);

有兩點需要注意:

  • 引入的 antd 組件類名沒有被 CSS Modules 轉化,所以被覆蓋的類名 .ant-select-selection 必須放到 :global 中。

  • 因為上一條的關系,覆蓋是全局性的。為了防止對其他 Select 組件造成影響,所以需要包裹額外的 className 限制樣式的生效范圍。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM