发现和讨论函数式 CSS 的优点

函数式 CSS 的概念似乎是我这辈子听过的最疯狂的东西了。“我怎么会用这种玩意?CSS 已经十分出色了。”我这样跟我自己说。

如果你从来没有听说过,函数式 CSS (或者说原子 CSS/通用类/不可变的 CSS —— 我可以一直说下去。这里没有一个好的名字)是一种不去在我的 CSS 中编写庞大臃肿的组件,而去写能被组装到 HTML 中大型组件的小型的,单一属性,不可变的类的概念。

你的 CSS 可能看起来像这样:

.p1 { padding: 0.5rem; }

.flex { display: flex }

.red { color: red; }

然后在你的 HTML 中被组装起来:

Hi, I'm a flexbox div with 1 unit of padding and red text!

简直是疯了,对吧?

我热爱编写真的灵活,强大的 CSS 类。我主张它因为“开发者开销的降低”。我的目标曾是一个开发者可以给一个元素加一个单独类然后它会为他们自动地做好所有事情。基本上跟函数式 CSS 完全相反。

然后我拜读了 Adam Morse 的史诗巨作,CSS 和可扩展性。Adam 带你经历了一段非常丰富的旅行,所以我推荐流出 20 分钟时间来跟随他的思考阅读,但如果我必须总结一下,那就是下面的这段:

在[大型]模型中,你将永远不会停止编写 css。重构 css 是困难而且耗费时间的。删除不必要的 css 是困难而且耗费时间的。而且往往不止于不——这不是人们都热衷去做的。所以发生了什么?人们开始写越来越多的 css。

html中函数的意义,理解函数式 CSS相关推荐

  1. 【C++】C++中函数重载的理解

    我们在平时写代码中会用到几个函数但是他们的实现功能相同,但是有些细节却不同.例如:交换两个数的值其中包括(int, float,char,double)这些个类型.在C语言中我们是利用不同的函数名来加 ...

  2. java js中 function函数报错_浅析JS中对函数function的理解(基础篇)

    正文:我们知道,在js中,函数实际上是一个对象,每个函数都是Function类型的实例,并且都与其他引用类型一样具有属性和方法.因此,函数名实际上是指向函数对象的指针,不与某个函数绑定.在常见的两种定 ...

  3. 如何理解函数式中纯函数

    函数式编程中的函数,指的就是纯函数,纯函数的概念就是对于一个函数来说,使用相同的输入始终会得到相同的输出,而且没有可观察到的副作用.关于副作用我们后面在解释.这里我们只讨论相同的输入始终会得到相同的输 ...

  4. python参数传递方法_深入理解python中函数传递参数是值传递还是引用传递

    python 的 深入理解python中函数传递参数是值传递还是引用传递 目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是&q ...

  5. python变量必须以字母和下划线_【转载】关于python中带下划线的变量和函数的意义...

    Python 的代码风格由 PEP 8 描述.这个文档描述了 Python 编程风格的方方面面.在遵守这个文档的条件下,不同程序员编写的 Python 代码可以保持最大程度的相似风格.这样就易于阅读, ...

  6. html中repeat的作用,深入探究CSS repeat()函数知识及用法

    今天为大家讲解一下我最近学的一个CSS中repeat()函数的知识,repeat()函数要想理解透彻它,熟练掌握,需要大家花点时间去学习,因为我也查了很多资料,那么,该如何讲才能让大家更容易理解呢?想 ...

  7. 如何理解python中的函数_如何理解“python中函数是一等公民”?

    python.js.scala等支持函数式编程的语言中,是如何体现"函数是一等公民(first class)"的?而在c/c++.java等静态语言中的一等公民又是什么?如何体现的 ...

  8. __init__在python中的用法知乎_python中对_init_的理解及实例解析 python为什么要有一个init函数 知乎...

    Python中"__init__"的意义是什么? Python中__init__的意义依偎着你心跳声如此频繁,就算世界末日小编也会嚣张的笑. 测试人员学python时,应该如何理解 ...

  9. 理解nodejs中函数的参数的来由

    看一段创建并启动nodejs服务的代码,如下: var http = require('http');http.createServer(function (request, response) {r ...

最新文章

  1. 知乎热议:科研界是如何保护自己的成果免于剽窃的?
  2. Comet oj比赛组队
  3. Error:java: 无效的标记 -version 编译错误的解决办法
  4. 【计算机网络复习 数据链路层】3.4.1 流量控制与可靠传输机制
  5. CCF受理“大数据专家委员会”2019年委员与通讯委员申请
  6. 小米路由器爆款产品遭遇友商恶意抹黑 官方怒晒黑稿...
  7. Eclipse:构造函数不提示才发现
  8. ctrl+d与ctrl+c
  9. java数组base64编码,java将base64编码字符串还原为字节数组
  10. 学习有法,事半功倍 — 在线学习的10个技巧
  11. 我的博客生涯开始……
  12. Lab2 Defusing a Binary Bomb
  13. RIME输入法配置双拼方案(Ubuntu下基于ibus)
  14. 自己的智能AI聊天机器人,可自定义头像,免费html源码分享,粘贴即用!
  15. MacBook外置显卡eGPU折腾笔记
  16. Java new Date() 获取的时间不正确 【已解决】
  17. 代码坏味道 之 7 依恋情结 feature envy
  18. uTorrent使用帮助
  19. 中国超级计算机放哪了,中国的超级计算机都在做哪些工作?
  20. QQ2013 密码获取(二)

热门文章

  1. 一致性hash算法虚拟节点_Hash算法和一致性Hash算法
  2. java从property中取值,JAVA读取PROPERTIES配置文件
  3. 【UAV】高度控制代码分析
  4. Ardino基础教程 11_PWM调控灯光亮度
  5. python 2021/12/31
  6. 【复习】服务器主板——Leez P710
  7. 【PC工具】winrar解压缩装机必备软件,winRAR5.70免费无广告
  8. 主线科技完成A轮融资,蔚来资本、普洛斯隐山资本联合领投
  9. Flask的闪现(message) 请求扩展 中间件 蓝图
  10. Windows Server2012 搭建域错误“本地Administraor账户不需要密码”