热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CSSinJS,使用JavaScript来编写你的css网页样式——JSSjs设置css样式

介绍JSS是CSS的创作工具,它允许你使用JavaScript以声明,无冲突和可重用的方式描述样式js设置css样式。它可以在浏览器,服务器端或在构建时在Node中编译。JSS与框架无关。它由多

介绍JSS是CSS的创作工具,它允许你使用Javascript以声明,无冲突和可重用的方式描述样式js设置css样式。它可以在浏览器,服务器端或在构建时在Node中编译。JSS与框架无关。它由多个包组成:核心部分,插件以及框架集成等。

CSS-in-JS,使用Javascript来编写你的css网页样式——JSS

Github

快速开始如果你已经对使用JSS感兴趣,可以使用在线代码编辑器js设置css样式。在CodeSandbox(一个非常实用的在线编辑器,可以用来学习各种编程技能)上尝试Hello World示例。以下是三种不同框架下的用法(代码图片生成自carbon网站):

JSSCSS-in-JS,使用Javascript来编写你的css网页样式——JSS

React-JSSCSS-in-JS,使用Javascript来编写你的css网页样式——JSS

Styled-JSSCSS-in-JS,使用Javascript来编写你的css网页样式——JSS

特性真实的CSSJSS生成实际的CSS,而不是内联样式js设置css样式。它支持每个现有的CSS功能。CSS规则只创建一次,并使用其类名与元素重复使用,与内联样式相反。此外,当DOM元素更新时,将应用先前创建的CSS规则。

无冲突选择器JSS默认生成唯一的类名js设置css样式。它允许避免典型的CSS问题,默认情况下一切都是全局的。它完全消除了命名约定的需要。

代码重用使用Javascript作为宿主语言使我们有机会以常规CSS无法实现的方式重用CSS规则js设置css样式。您可以利用Javascript模块,变量,函数,数学运算等。如果做得好,它仍然可以完全声明。

易于拆卸和修改CSS规则的明确使用允许您跟踪消费者并确定是否可以安全地删除或修改它js设置css样式。

动态Style使用Javascript函数和Observable可以在浏览器中动态生成样式,使有机会访问应用程序状态,浏览器API或远程数据以进行样式设置js设置css样式。你不仅可以定义一次样式,还可以在任何时间点以有效的方式更新样式。

用户控制的动画JSS可以高效地处理CSS更新,可以使用它创建复杂的动画js设置css样式。使用函数值,Observables并将它们与CSS过渡相结合,可以为用户控制的动画提供最大的性能。对于预定义的动画,使用@keyframes和transition更好,因为它们将完全取消阻止Javascript线程。

关键的CSS要优化第一次绘制的时间,你可以使用服务器端渲染并提取关键CSSjs设置css样式。可以将CSS的呈现与HTML的呈现结合起来,这样就不会生成未使用的CSS。它将导致在服务器端呈现期间提取的最小关键CSS,并允许内联它。

插件JSS核心实现了基于插件的架构js设置css样式。它允许您创建可以实现自定义语法或其他强大功能的自定义插件。JSS有许多官方插件,可以单独安装或使用默认预设。社区插件的一个很好的例子是jss-rtl。

Expressive 语法由于各种插件,JSS允许您使用现有的全局类名来嵌套,全局选择器和组合js设置css样式。例如,允许您以比CSS更可读的方式表达属性。如果要直接从浏览器开发工具复制粘贴样式,也可以使用模板字符串。jss-plugin-expandbox-shadow

完全隔离另一个有用的插件示例是,它允许您完全隔离元素与全局级联规则,并可能覆盖不需要的属性js设置css样式。在创建应该在第三方文档内部呈现的窗口小部件时尤其有用。jss-plugin-isolate

React整合js设置css样式。React-JSS包提供了一些额外的功能:

动态主题 - 允许基于上下文的主题传播和运行时更新js设置css样式。关键CSS提取 - 仅提取渲染组件中的CSS。延迟评估 - 样式表在组件安装时创建。样式表的静态部分在所有元素之间共享。使用props作为参数自动更新函数值和规则。Javascript构建管道CSS不需要额外的构建管道配置。无论你选择构建Javascript的工具是什么,它都可以与JSS一起使用。

安装使用yarn add jssyarn add jss-preset-default //使用默认设置import jss from 'jss'import preset from 'jss-preset-default'jss.setup(preset())// 创造你的style.const style = { myButton: { color: 'green' }}//编译样式,应用插件js设置css样式。const sheet = jss.createStyleSheet(style)//如果要在客户端上呈现,请将其插入DOM。sheet.attach()//如果要渲染服务器端,请获取CSS文本。sheet.toString()使用自定义插件进行设置import jss from 'jss'import camelCase from 'jss-plugin-camel-case'import somePlugin from 'jss-some-plugin'//使用插件。jss.use(camelCase(), somePlugin())// Create your style.const style = { myButton: { color: 'green' }}//编译样式,应用插件。const sheet = jss.createStyleSheet(style)// 如果要在客户端上呈现,请将其插入DOMsheet.attach()// 如果要渲染服务器端,请获取CSS文本。sheet.toString()指定DOM插入点 import jss from 'jss'jss.setup({insertionPoint: 'custom-insertion-point'})

这可能是你选择的任何DOM节点,可以作为插入点。

CSS-in-JS,使用Javascript来编写你的css网页样式——JSS

CSS-in-JS,使用Javascript来编写你的css网页样式——JSS

总结JSS的功能是十分强大的js设置css样式,不仅仅让写css的方式放到了Javascript,这样对更加喜爱编写Javascript的小伙伴来说是值得尝试的,而且还支持服务器端渲染等更多高级的特性,前端技术百花齐放,但目前仍然不变的是掌握Javascript者得天下的时代!

CSS-in-JS,使用Javascript来编写你的css网页样式——JSS


推荐阅读
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • MySQL的查询执行流程涉及多个关键组件,包括连接器、查询缓存、分析器和优化器。在服务层,连接器负责建立与客户端的连接,查询缓存用于存储和检索常用查询结果,以提高性能。分析器则解析SQL语句,生成语法树,而优化器负责选择最优的查询执行计划。这一流程确保了MySQL能够高效地处理各种复杂的查询请求。 ... [详细]
  • LDAP服务器配置与管理
    本文介绍如何通过安装和配置SSSD服务来统一管理用户账户信息,并实现其他系统的登录调用。通过图形化交互界面配置LDAP服务器,确保用户账户信息的集中管理和安全访问。 ... [详细]
  • ZooKeeper 入门指南
    本文将详细介绍ZooKeeper的工作机制、特点、数据结构以及常见的应用场景,包括统一命名服务、统一配置管理、统一集群管理、服务器动态上下线和软负载均衡。 ... [详细]
  • 本文详细介绍了如何解决DNS服务器配置转发无法解析的问题,包括编辑主配置文件和重启域名服务的具体步骤。 ... [详细]
  • 本文最初发表在Thorben Janssen的Java EE博客上,每周都会分享最新的Java新闻和动态。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • Vim 编辑器功能强大,但其默认的配色方案往往不尽如人意,尤其是注释颜色为蓝色时,对眼睛极为不友好。为了提升编程体验,自定义配色方案显得尤为重要。通过合理调整颜色,不仅可以减轻视觉疲劳,还能显著提高编码效率和兴趣。 ... [详细]
  • FreeBSD环境下PHP GD库安装问题的详细解决方案
    在 FreeBSD 环境下,安装 PHP GD 库时可能会遇到一些常见的问题。本文详细介绍了从配置到编译的完整步骤,包括解决依赖关系、配置选项以及常见错误的处理方法。通过这些详细的指导,开发者可以顺利地在 FreeBSD 上完成 PHP GD 库的安装,确保其正常运行。此外,本文还提供了一些优化建议,帮助提高安装过程的效率和稳定性。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • CTF竞赛中文件上传技巧与安全绕过方法深入解析
    CTF竞赛中文件上传技巧与安全绕过方法深入解析 ... [详细]
  • 七款高效编辑器与笔记工具推荐:KindEditor自动换行功能解析
    本文推荐了七款高效的编辑器与笔记工具,并详细解析了KindEditor的自动换行功能。其中,轻笔记QingBiJi是一款完全免费的记事本软件,用户可以通过其简洁的界面和强大的功能轻松记录和管理日常事务。此外,该软件还支持多平台同步,确保用户在不同设备间无缝切换。 ... [详细]
author-avatar
jiajian123
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有