css in js 的核心思想就是: 用一个js对象,来描述样式,而不是css样式表
例如下面一个对象就是一个用于描述样式的对象
const styles={background:'#f40',color:'#fff',width:'400px',height:'500px',margin:'0 auto'}
由于这样的描述方式根本不存在类名,自然不会有类名冲突
至于如何把样式应用到页面上,不是它关心的事情,你可使用任何技术,任何框架,任何方式将它应用到界面上
后续学习react,vue都支持css in js,可以非常轻松用到界面上
css in js 特点:
- 绝无冲突的可能: 由于根本不存在类名,所以绝不可能出现冲突
- 更加灵活: 可以充分利用js语言的灵活特点,用各种招式来处理样式
- 应用面更广: 只要支持js语言,就可以支持css in js,因此,在一些用js处理开发移动端应用的时候非常好用,因为只有移动端有可能不支持css
- 书写不变: 书写样式,特别是公共的样式,处理起来不是很方便
- 在页面中增加了大量的冗余内容: 在页面处理css in js 时,往往将样式加入到元素的style的属性中去,会有大量增加元素的内联样式,并且会有大量的重复,不已阅读最终的页面代码
