首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

CSS in JS的好与坏

CSS-in-JS是一种技术(technique),而不是一个具体的库实现(library)。简单来说CSS-in-JS就是将应用的CSS样式写在JavaScript文件里面,而不是独立为一些 .css, .scss或者 less之类的文件,这样你就可以在CSS中使用一些属于JS的诸如模块声明,变量定义,函数调用和条件判断等语言特性来提供灵活的可扩展的样式定义。值得一提的是,虽然CSS-in-JS不是一种很新的技术,可是它在国内普及度好像并不是很高,它当初的出现是因为一些 component-based的Web框架(例如React,Vue和Angular)的逐渐流行,使得开发者也想将组件的CSS样式也一块封装到组件中去以解决原生CSS写法的一系列问题。还有就是CSS-in-JS在React社区的热度是最高的,这是因为React本身不会管用户怎么去为组件定义样式的问题,而Vue和Angular都有属于框架自己的一套定义样式的方案。

01

javascript操作元素的css样式

我们经常要使用Javascript来改变页面元素的样式。当中一种办法是改变页面元素的CSS类(Class),这在传统的Javascript里,我们一般是通过处理HTML Dom的classname特性来实现的;而jQuery里提供三种方法来实现这个功能,尽管它们和传统方法的思想相通,可是却节省了很多代码。还是那句话 – “jQuery让JavaScript代码变得简洁!” 1. addClass() – 加入�CSS类 $(“#target”).addClass(“newClass”); //#target 指的是须要加入�样式的元素的ID //newClass 指的是CSS类的名称 2. removeClass() – 移除CSS类 $(“#target”).removeClass(“oldClass”); //#target 指的是须要移除CSS类的元素的ID //oldClass 指的是CSS类的名称 3. toggleClass() – 加入�或者移除CSS类:假设CSS类已经存在,它将被移除;相反,假设CSS类不存在,它将被加上。 $(“#target”).toggleClass(“newClass”) //假设ID为“target”的元素已经定义了CSS样式,它将被移除; //反之,CSS类”newClass“将被赋给该ID。

02
领券