【问题标题】:Which casing should I use for CSS classes when using CSS-in-JS?使用 CSS-in-JS 时,我应该为 CSS 类使用哪种大小写?
【发布时间】:2021-09-27 16:57:00
【问题描述】:

我读到 CSS 规范没有指定区分大小写,这导致某些浏览器将 .myheader 视为等于 .myHeader 。 但是由于Javascript中的标准是用驼峰写法编写变量,那么在使用CSS-in-JS时如何调和这两者呢?

我的 React 代码可能如下所示:

import style from './style.module.css'
//...
<Button className={style.myButton} />

然后 CSS 会打破大小写约定:

.myButton {
    background-color: blue;
}

或者我的 React 代码可能看起来像这样(有点丑):

import style from './style.module.css'
//...
<Button className={style['my-button']} />

然后 CSS 将遵循 kebab-case 约定:

.my-button {
    background-color: blue;
}

【问题讨论】:

    标签: javascript css css-in-js


    【解决方案1】:

    最终取决于您。如果您是唯一将从事该项目的人,那没关系。如果您与团队合作,请与他们讨论他们的偏好。

    就我个人而言,我在我的项目中使用了所有表单。这仅取决于我正在使用的代码看起来正确或感觉正确,就像您提到的 kebab-case 在您的 React 代码中看起来有点难看的情况一样。

    最佳实践建议使用 kebab-case;但是,是的,您没有必须,但是,kebab-case 在模块/对象的实例中可能效果不佳 (className={style.like-this-example})。

    【讨论】:

      【解决方案2】:

      虽然同意@Dexterians,但作为团队我们应该做出的选择。但是,我会优先考虑命名约定而不是它在特定语言中的使用。对我来说,我会选择类名 my-button 而不是 myButton,然后使用 style['my-button']

      这样我们在名称上保持一致而不受语言限制。

      【讨论】:

      • 虽然我很欣赏您来自哪里,但我确实认为在前端开发的情况下,特定于语言的约定是相关的。您会使用哪种其他语言来处理浏览器中的 CSS?
      • 当然 css 只用于前端,我想说明的是当你直接在 HTML 中使用它们时。如果您查看大多数样式名称,也可以使用连字符来分隔单词,例如。字体粗细。我在遵循 myButton 样式时面临的挑战是,我们将使用的所有样式都将遵循 my-Button,程序员必须记住哪些样式是我们自己的,而不是来自标准可重用组件(如 bootstap)的样式跨度>
      【解决方案3】:

      哇? CSS 不区分大小写?

      我认为你需要阅读。

      Are class names in CSS selectors case sensitive?

      Are CSS selectors case-sensitive?

      你有点自相矛盾@Anders - 当你试图遵循约定时 - 你正在按照@Dexterians 和 @Bharat 所说的那样做,做适合你需要的事情:P

      对于一个开发者而言,“惯例”不一定是另一位开发者的“惯例”。唉,为什么您需要与您的团队合作。

      【讨论】:

        【解决方案4】:

        在 React 中,第一个总是在模块的情况下工作,所以你不需要担心它。因此,遵循以下约定可以正常工作。

        反应:

        import style from './style.module.css'
        //...
        <Button className={style.myButton} />
        

        CSS

        .myButton {
            background-color: blue;
        }
        

        有关更多信息,请参阅此 Medium 链接: CSS in JS

        【讨论】:

        • 会选择骆驼。感谢您的意见!
        猜你喜欢
        • 2012-05-28
        • 1970-01-01
        • 2017-06-10
        • 1970-01-01
        • 2021-09-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多