推荐关注
› Meteor
› JSLint - a JavaScript code quality tool
› jsFiddle
› D3.js
› WebStorm
推荐书目
› JavaScript 权威指南第 5 版
› Closure: The Definitive Guide
Gaays

js 如何实现动态修改 class 样式类中的值,不是不能修改的吗?

  •  
  •   Gaays · Jan 21, 2022 · 3055 views
    This topic created in 1757 days ago, the information mentioned may be changed or developed.

    最近在研究宜搭的实现方式,看到修改容器 display 时会直接修改 class 内的值,这是怎么做到的? 修改右侧任意配置项后 class 内的值就会跟着变化 72kLM8.png

    12 replies  •  2022-01-21 17:36:19 +08:00
    Kasumi20
    Kasumi20
    Jan 21, 2022
    1
    可以直接替换<style>标签的内容
    xiaojun1994
    xiaojun1994
    Jan 21, 2022
    2
    可以好像通过 js 直接修改 css text 内容,具体我忘了
    Gaays
    Gaays
    OP
    Jan 21, 2022
    3
    @Kasumi20 他这个 class 是动态生成的,每个拖拽组件的 class 都不一样,直接替换 style ? style 内容也得是动态生成的吧,不知道咋处理
    gadfly3173
    gadfly3173
    Jan 21, 2022
    5
    从 css 来看是阿里自己搞了个模拟器的组件,整个左边都是 shadow dom
    gadfly3173
    gadfly3173
    Jan 21, 2022❤️1
    6
    每个 node 都是单独一个 style ,有单独的 id ,应该就是根据这个 id 去替换 style
    yuzo555
    yuzo555
    Jan 21, 2022
    7
    DOM 操作就可以直接添加新的 <style> 元素并且会生效,然后修改目标元素的 id 即可。
    gadfly3173
    gadfly3173
    Jan 21, 2022
    8
    @yuzo555 #7 宜搭这个 css class id 是固定的,所以他是直接替换了指定 id 的 style 标签
    hurrytospring
    hurrytospring
    Jan 21, 2022
    9
    css in js?
    3dwelcome
    3dwelcome
    Jan 21, 2022
    10
    我有个 WEB 项目也用这种模式。

    正常来说,应该是用 js 语句来设置 element 的 style 。但我用的是 tailwindcss 语法,把 bg-red-200 实时翻译后,就变成了 background-color:#red

    不好用 style.backgroundColor = 'red';

    就只能用这种奇怪的模式来动态修改 CSS 。
    AyaseEri
    AyaseEri
    Jan 21, 2022
    11
    const style = document.createElement("style");
    style.innerHTML = `.css_pseudo_node_${id} { display: ${display} }`

    最 low 的方法也不是不行
    Gaays
    Gaays
    OP
    Jan 21, 2022
    12
    @gadfly3173 @yuzo555 @gadfly3173 正解,没想到用这种方式,有点秀
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2134 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 594ms · UTC 12:21 · PVG 20:21 · LAX 04:21 · JFK 07:21
    ♥ Do have faith in what you're doing.