qkw6358 发表于 2023-10-3 19:31:13

前端工程师讨厌写 CSS 是什么心态?

遇到好多前端工程师都讨厌写 CSS 这是为什么呢?
你认为有这样的心态是为什么呢

lews397715 发表于 2023-10-3 19:31:42

其实很多时候我们放大了JavaScript的缺陷。却忽略了CSS的问题……

相信每一个前端都听说过一句话,HTML描述文档结构,CSS决定呈现样式,JavaScript处理行为逻辑。

真正的前端都知道,这句话里面只有三分之二是真的。

aixn 发表于 2023-10-3 19:31:49

正常的,常用的CSS颠来倒去就那些。就像大厨天天都烧一道菜,时间久了,肯定会厌的,人之常情。关键是,厌了之后有没有想办法避免之,如做个工具解决重复劳动?或者在不影响项目质量情况下用用新特性自造难度找点乐子。前面是可替代的重复劳动力,后者是稀缺的工程技术人员。

shenzhen 发表于 2023-10-3 19:32:42

路过。
跟 Feed 里看了个回答…… 有点糟心,因此我觉得还是叨逼叨下得了。
内个吧,对一般人儿来说,CSS 这玩意黑盒,纯配置文件。
在没有系统的看过 CSS 相关规范神马的情况下,光靠一些属性文档来写布局呢,基本上就是靠凑,凑出来就凑出来了,凑不出来就换其他配置方法去凑。
你说,好歹是个码农,对输入输出都抓瞎状态的,内部实现怎么跑的也 debug 不了,简直就像黑盒测试。布个局就是各种绞尽脑汁凑一些能跑过的 case 来,这情况下能不讨厌写这糟心窝子的玩意么。
一边糟心窝子一边,一边呱呱呱的夸 CSS 真香,我觉得这么二儿的人,应该……几乎……没有……吧……
如果系统看过了相关规范,并且结合看了 FF 啊 WebKit(Blink) 啊的相关 layout box/object 啥的实现的。在开始写 CSS 之前对所需布局有明确的配置步骤以及理论的,写的时候就不是凑了,有的放矢的来做人儿,是有可能会去呱呱呱夸 CSS 真香的。
可我觉得吧,更多可能是对 CSS 的实现复杂度的一种赞许,这么多玩意凑一起,实现中将 bug 率控制到较低水准,也是挺费劲儿的。
关键是,现实是,真做到的人儿,早就不是一般人儿了。
极大概率早不写布局配置文件了就ㄟ( ▔, ▔ )ㄏ
我建议吧,一般人儿呢,写 CSS 时候,凑不出来的,或者凑出问题来时候,去查查相关规范文档,让自己知道是哪儿的问题。慢慢的往后者靠靠。有条件的 debug 下相关引擎,往不一般的人儿这块儿靠靠。
慢慢的就能达到不用写布局配置文件的状态了,解脱鸟 o~(▔▽▔o~)
ps:
真心讲,规范得看,贼有帮助……
虽然 CSS 规范比 TC39 的文档难读…… 而且现在还文档碎片化严重……

bibi_im286 发表于 2023-10-3 19:33:38

搞不定CSS的人做的GIF:
http://pic1.zhimg.com/v2-0f600366422470ec37e2cf3290be91ac.jpg
CSS is Awful
https://www.zhihu.com/video/1058340006011174912
CSS大神不服,又做了这个GIF:
http://pic1.zhimg.com/v2-654a24855a95f83d5f830b2bca7dfbb5.jpg

https://www.zhihu.com/video/1058366840094453760
评论区说CSS的一把梭是position:absolute.
下面这幅图是用CSS实现的,大家可以研究一下源码。

http://picx.zhimg.com/v2-70c207735643bba19073dd5d25c3c860_r.jpg?source=1940ef5c

cyanharlow/purecss-francine最后,我想说一句:

http://pica.zhimg.com/50/v2-6f750820fb64b410b6fd2466794a8c48_720w.jpg?source=1940ef5c

xiangwu502 发表于 2023-10-3 19:34:04

有人说“太低端,太简单”,显然是错误的。我见 HTML 比 CSS 难度低得多,也没人讨厌写。

直接回答问题的话,答案就是 CSS 比 JS 更加难以熟练和精通,很多说自己会 CSS 的人实际上对 CSS 一知半解,难以写出优质的 CSS代码。
——————————————————————————————
很多人会认为,“CSS 上手难度比 JS 低,会 JS 的理论上都会 CSS,反过来不一定”,但这种话是极不准确的。看起来 CSS 就是一门 DSL ,仅仅就是选择器加上属性,但实际上无论是选择器还是属性都有很大的文章可以做。

CSS 的属性的难点在于繁杂。每个属性之间并不是正交的,很多属性之间会互相影响产生各种意想不到的效果。然而当细致了解了文档流/上下文/盒模型等概念之后,才会觉得这些特征其实是情理之中的。可是关于如何系统性的掌握这些概念,我反正是没有看到有什么好的学习资料,有一本 CSS 权威指南,不过太老了缺乏 css3 的内容,新版的译本也遥遥无期。其他的资料或许提及了,但大多也是管中窥豹。更别说早期的网页只是用来显示文档,类似于 doc ,而现在却用来做应用界面,其开发思路的转变也让 css 的属性变得让人难以理解。另外还有各个浏览器兼容的问题。

CSS 的选择器的难点更在于抽象思维。大多数人会觉得选择器无非是声明了一系列的 pattern 。但实际开发中 CSS 不是单独的,你需要写 HTML 生成 pattern 对应的 DOM 结构。更重要的是,网页是动态的,你需要通过 JS 去维护这一系列的 pattern。随着网页的动态性的增加,维护的难度也成指数上升。不同的选择器组合可以生成同一种效果,但其维护的难度却可以是大相径庭。而完成这样的任务就是在考验前端的抽象思维能力。这就很像函数式,看起来 arr.map(v=>v.id) 比 for 循环更简单更好理解,但如何去声明组合各个函数却是对程序员新的要求。如果对一个高度动态的网页感到陌生,可以去 Awwwards - Website Awards - Best Web Design Trends 见识下。
——————————————————————————————
CSS 的这一套东西本应该是被严肃对待的,然而实际的开发中,愿意严肃对待的人毕竟还是少了,选择逃避的人多了。 个人觉得,一个前端工程师讨厌写 css 是一个态度的问题。
页: [1]
查看完整版本: 前端工程师讨厌写 CSS 是什么心态?