团队叫我准备一个关于 CSS 的技术分享 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mythjava
V2EX    问与答

团队叫我准备一个关于 CSS 的技术分享

  •  
  •   mythjava 2022-04-07 13:08:53 +08:00 4489 次点击
    这是一个创建于 1285 天前的主题,其中的信息可能已经有所发展或是发生改变。

    不用特别深入 我应该在哪几个方面进行准备呢

    我想到了几个方面

    • css 选择器
    • css 动画
    • grid 布局

    各位还有什么好的点子呢

    44 条回复    2022-04-08 13:08:06 +08:00
    BeijingBaby
        1
    BeijingBaby  
       2022-04-07 13:36:44 +08:00   2
    这也太浅了?
    面向后端技术么?
    shervinchen
        2
    shervinchen  
       2022-04-07 13:43:30 +08:00   1
    你这也太水了。。。给个方向吧,可以谈谈现代 CSS 方案下的主题系统,讲讲实现和设计思路
    heyjei
        3
    heyjei  
       2022-04-07 13:43:52 +08:00   1
    既然不用特别深入,就说明是面向初级用户。

    讲选择器和布局吧,特别是选择器的优先级的问题(这个特别适合出一个思考题)

    布局讲 flex 布局,为啥你选则 grid 布局,这个不常用吧,一般用最多的还是 flex 布局
    ReggieLee
        4
    ReggieLee  
       2022-04-07 13:45:09 +08:00   1
    原子 css\css in js\web compoments 下的 css
    murmur
        5
    murmur  
       2022-04-07 13:52:19 +08:00   1
    flex 布局比较好,ie 都可以用
    jawilx
        6
    jawilx  
       2022-04-07 13:57:25 +08:00   1
    要不推广 tailwindcss 吧
    fengfuliu
        7
    fengfuliu  
       2022-04-07 14:15:03 +08:00   1
    分享一些可以实现比较酷的效果,业务还可能用到的 css 吧 filter mix-blend-mode clip 之类的
    iiqiu
        8
    iiqiu  
       2022-04-07 14:15:58 +08:00   1
    zxCoder
        9
    zxCoder  
       2022-04-07 14:16:51 +08:00   1
    flex 布局
    murmur
        10
    murmur  
       2022-04-07 14:29:11 +08:00   1
    tailwind 简直是工程化的灾难,这东西单人用还可以,多人用你怎么能保证每个人对尺寸样式牢记于心
    ration
        11
    ration  
       2022-04-07 15:45:09 +08:00 via Android   1
    讲布局,块元素,行内元素,margin ,padding ,border ,float 之类的,再讲讲比较流行的布局,比如 grid 之类的
    henryhu
        12
    henryhu  
       2022-04-07 15:50:43 +08:00   1
    css 框架选择
    jjwjiang
        13
    jjwjiang  
       2022-04-07 15:55:02 +08:00   1
    看团队水平

    都还处于原始人阶段的话大力推荐 flex 和 grid ,flex 可以解决 80%以上以前 CSS 的疑难杂症,包括不仅限于什么居中对齐自适应等等……

    现在写 css 还不用 flex 布局简直是犯罪
    wu67
        14
    wu67  
       2022-04-07 16:14:43 +08:00   1
    还是得讲基础. 这玩意, 往深往浅讲都行. 浅的可以讲布局, 面向公司的设计、产品、和老板. 深的可以讲讲 flex 以及容易过大、过小时的伸缩计算 /设置, 这玩意就算是前端也能蒙圈.
    如果讲 ui 框架什么的, 推广使用倒是还行, 当课程讲, 不太可能, 有几个人就能衍生出几种写法
    Leviathann
        15
    Leviathann  
       2022-04-07 16:19:24 +08:00   1
    @murmur 这个都有提示的把,装插件会自动提示一个 tailwind utility 对应的实际 css 是什么
    waiaan
        16
    waiaan  
       2022-04-07 16:20:33 +08:00   2
    找《 css 的秘密花园》这本书,把里面的东西讲讲就差不多了。
    abear
        17
    abear  
       2022-04-07 16:26:38 +08:00   1
    animate 和 tailwindcss 啥的比较优秀的库;普通的太普通了。推广推广,让他们看源码。
    jqtmviyu
        18
    jqtmviyu  
       2022-04-07 16:29:00 +08:00
    tailwindcss
    hellojay
        19
    hellojay  
       2022-04-07 16:32:05 +08:00   1
    tailwindcss 不要太爽了
    devwolf
        20
    devwolf  
       2022-04-07 16:55:42 +08:00   1
    平时有总结到一些小技巧吗,单独拎出来讲而不是挑大的方面?

    比如:
    =======================
    Q1:如何在多列的时候,实现 hover 图片中心放大?
    A1:
    父元素 position: relative;overflow: hidden;子元素丢一个 visibility: hidden;的 img 拷贝版去占位。

    另一份 img 子元素用来实现展示与放大的效果
    首先用 position: absolute;定位叠在上面。
    top: 50%;left: 50%;使该图片偏移,
    transform: scale(1.02) translate(-50%, -50%) 让图片偏移回去以及微调大小
    hover 后 transform: scale(1.1) translate(-46%, -46%);改变图片大小以及微调偏移。(微调偏移,是为了在 flex 实现的多列布局里,仍然维持中心放大的效果)
    hover 前后补上 transition: transform 1s ease-in-out;

    核心:absolute 定位改偏移,再用 translate 平移回来,这个我跟 leader 学来的技巧。也有用 right:calc(50.5% + (1920px / 2) - 540px) 这样基于中轴的绝对定位技巧(来实现一些……“相对静止”那种效果)。

    =========================
    Q2: 实现渐变的 border
    A1: https://jsrun.net/XfQKp/edit
    ps:这个我之前有存 demo


    这样的?
    devwolf
        21
    devwolf  
       2022-04-07 17:02:44 +08:00
    @devwolf 当我没说……技术分享我看成技巧分享了,那没事了
    TimPeake
        22
    TimPeake  
       2022-04-07 17:05:20 +08:00
    掘金上很多。。。
    细说, 比如纯 css 实现阅读器进度条等,filter 滤镜实现 xx 特效等 B 格还高,大开眼界
    otakustay
        23
    otakustay  
       2022-04-07 17:09:08 +08:00
    @murmur #10 那我们怎么保证每个人对 api 牢记于心……
    murmur
        24
    murmur  
       2022-04-07 17:16:33 +08:00
    @otakustay 我的意思是,像 element 这种,全局设置好之后,form 的尺寸都是固定的,只要往里堆组件就可以

    用了 tailwind ,颜色、尺寸、大小、都需要自己组合
    NathanInMac
        25
    NathanInMac  
       2022-04-07 17:27:31 +08:00
    css 的工程化,convention ,best practice ,生产的优化之类的
    otakustay
        26
    otakustay  
       2022-04-07 17:51:26 +08:00
    @murmur #24 那毕竟分层上它们就不在同一个层嘛。我接触过不少团队是在 tailwind 基础上再做 design token class 的,用起来就很接近 element ui 这个效果了,比如 grid-l 就固定大小里面放几格也固定,按着设计规范来
    KissFace
        27
    KissFace  
       2022-04-07 17:55:20 +08:00
    flex 布局
    KouShuiYu
        28
    KouShuiYu  
       2022-04-07 18:45:36 +08:00
    我之前写过 css 样式隔离的几种方案
    https://chenkai.life/css/css-web-compoent-isolation/
    mythjava
        29
    mythjava  
    OP
       2022-04-07 20:06:40 +08:00
    @BeijingBaby
    @shervinchen
    @jjwjiang
    我们团队没有专门搞前端的 大家都是搞后端的 前端能跑就行 一直都是用的 jquery 布局基本都是靠 float 的 今年部分项目才决定换的 vue
    alphardex
        30
    alphardex  
       2022-04-07 20:08:00 +08:00
    1. 用 CSS 实现常见的 UI 效果
    2. 用 CSS 替代 JS
    3. 用 CSS 创作动画特效
    4. 用 CSS 进行数学运算(主玩 CSS 变量)
    12 相对实用基础,34 纯属个人喜好
    morize
        31
    morize  
       2022-04-07 20:36:16 +08:00
    我的前端同事能有一半搞得清楚以下三点,我就谢天谢地了
    1. padding 和 margin 有什么区别和使用场景
    2. 写 font 自觉加上 line-height
    3. 能用伪类解决的就不要写一堆 js 了,会用一个 :last-child ,我觉得就很棒了

    另外,2022 年了,还用绝对定位飞来飞去的,还有十八般武艺消除浮动...不是说不好,大部分场景眼下都有更好的办法。
    Seanfuck
        32
    Seanfuck  
       2022-04-07 22:19:31 +08:00
    flex 这么多人提了,可以的。还可以讲讲 svg ,BFC 等等
    pengtdyd
        33
    pengtdyd  
       2022-04-08 00:38:18 +08:00
    CSS 还用得着技术分享???不是有手就行吗
    pengtdyd
        34
    pengtdyd  
       2022-04-08 00:41:02 +08:00
    CSS 的技术分享给谁讲?
    前端:前端连这个都不会还讲个屁,直接开除算了。
    后端:会这个干嘛,有这时间还不如研究一下 k8s ,比听什么 css 靠谱的多。
    mythjava
        35
    mythjava  
    OP
       2022-04-08 09:19:43 +08:00
    @alphardex 感谢提供思路
    mythjava
        36
    mythjava  
    OP
       2022-04-08 09:46:18 +08:00
    @pengtdyd 领导安排的没有办法
    HAYWAEL
        37
    HAYWAEL  
       2022-04-08 10:46:02 +08:00
    分享一般没那么久。可以到张鑫旭那找一篇有意思的主题。吃透相关的内容 然后根据这个发散就好
    Arrowing
        38
    Arrowing  
       2022-04-08 10:54:47 +08:00
    css 画叮当猫
    horizon
        39
    horizon  
       2022-04-08 11:05:05 +08:00
    @murmur 你在说什么。。不可以写组件用 tailwind ?
    照我说,tailwind 才是强约束。
    murmur
        40
    murmur  
       2022-04-08 11:22:39 +08:00
    @horizon 工程化应该减少花样,所有的尺寸、样式,能统一都统一,你只需要知道场景不需要知道尺寸

    比如我写个 class="page detail" 那应该这页所有的表单元素尺寸都定下来了,你只需要关心是 button 还是 input

    如果每个页面都是定制化,那可能 tailwind 更适合
    g0thic
        41
    g0thic  
       2022-04-08 11:32:51 +08:00
    https://zhuanlan.zhihu.com/p/483199541 可以看下这篇文章 讲了很多新东西 很多前端估计都不知道
    angith
        42
    angith  
       2022-04-08 11:49:52 +08:00
    tailwind 确实爽
    woomly
        43
    woomly  
       2022-04-08 13:07:15 +08:00
    可以讲一下仅使用单元素实现各种炫酷效果的实现过程...
    horizon
        44
    horizon  
       2022-04-08 13:08:06 +08:00
    @murmur 这得先问问交互 UI 答应不答应
    组件本身样式又不能覆盖所有场景,必然会有自定义样式的情况。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3428 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 04:53 PVG 12:53 LAX 21:53 JFK 00:53
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86