解决React引入ant design之后body中默认的字体大小变化的问题
在做rem,em,px比较的时候发现
em不太对劲,继承的font-size居然不是16px;
一般浏览器默认的字体大小为16px,而ant design的默认字体大小为14px
查看html,head,body,元素,发现ant design在body那里设置了font-size,导致后面的继承了body的14px,并且,因为css引入顺序的问题,导致ant design的css样式会覆盖掉自己写的css;
由于body是不带id,class等属性的,而且css样式的覆盖顺序为 id>class>普通(当然不包括内联样式,只比较外部引用的样式),所以解决办法就是,我们给body加一个属性,用属性选择的方式去定义css就可以覆盖ant design的样式;
具体实现为:在index.js(即入口文件添加一行代码),在index.css添加一行代码
ReactDOM.render(
<React.StrictMode>
</React.StrictMode>,
document.getElementById(‘root’),
document.getElementsByTagName(‘body’)[0].setAttribute(‘id’,‘body’),
)
index.css
#body{
font-size:16px;
}
因为react封装了html,body等元素,所以只能通过获取body Dom节点添加id或者class属性,再修改css,即可;
如果是普通的html写法,可以直接写内联样式;
重点:解决ant design 的默认字体问题,可以通过css样式的优先级来解决;覆盖掉原来的设置即可