React中CSS样式处理多个!important优先级的情形

React中组件样式通常用classNamestyle来应用,使用第三方组件时,可能并不直接支持这两个属性。

自定义复杂组件样式时,会存在多个!important的情形,这里推荐一种终极解决方法。

借助useEffect和useRef,在组件初始化时,手动精准设置组件样式。

简单示例:

import React, { useState, useRef, useEffect } from 'react';

export default function Demo(props) {
	const handle = useRef();

	useEffect(() => {
		handle.current.setProperty('font-size', '10px', 'important');
	}, [])
	
    return (
    	<>
    		<div ref={handle}>
				Demo
    		</div>
		</>
    )
}

需要注意的是用JS操作style,通常有两种写法:

第一种: 驼峰式属性名,不支持!important

const ele = document.getElementById('xxxx');

ele.style.fontSize = '10px';

第二种:通用属性名,支持!important

const ele = document.getElementById('xxxx');

ele.style.setProperty('font-size', '10px', 'important');

(版权归cpury.com所有,转载请注明出处。)