有很多 CSS 方法,但我讨厌它们。有些多(顺风等),有些少(BEM、OOCSS 等)。但归根结底,它们都有缺陷。
当然,人们使用这些方法有充分的理由,并且解决的许多问题我也遇到过。因此,在这篇文章中,我想写下我自己的关于如何保持 CSS 组织的指南。
这不是一个任何人都可以开始使用的完整描述的 CSS 方法。也许它可以通过一些额外的工作变成一个,但这篇文章的目的只是展示我在编写 CSS 时如何做出这些决定。
根据经验,我尝试尽可能多地使用内置元素类型,并尽可能少地使用额外的内容。
需要上千种不同类型的按钮,这表明设计可能在更深层次上存在问题,因此,虽然在某些情况下,我觉得 CSS 是惰性的,直到使用特定于框架的类为止。 ,在大多数情况下,当按钮只是 并且看起来像一个没有任何进一步魔法的按钮时,我认为它是理想的。
div.btton 应该变成按钮
并非所有设计元素都具有语义上合适的 HTML 等效项,对于这些情况,我通常采用自定义元素。
我还没有看到很多在没有任何附带 javascript 的情况下使用自定义元素名称的实例,但它已被证明是编写清晰的 HTML 的一个令人惊讶的可靠选择,而且看起来也符合我想要的方式。
随着时间的推移,在设计方面完全独立的元素也更有可能开发出只能使用 JavaScript 实现的需求,这为您提供了一条清晰的路径来实现那些不需要对 HTML 进行任何更改也不需要进行任何更改的需求。 CSS。
div.vsep 应该变成垂直分隔符
类应该充当现有节点名称的修饰符,而不是全新的元素类型,并且通常对不同的元素类型具有相似但不同的效果。
危险按钮是按钮。危险
修改元素的某些方法并不是类有用的简单开/关开关,而是更像键值对。
在这些情况下,具有匹配选择器的自定义属性几乎每次使用它们时都被证明是最佳选择。与带连字符的类不同,它们在语法级别上显示哪个是属性,哪个是值,使编辑器更容易突出显示它们,更容易人眼快速解析,并且更容易使用 JavaScript 进行交互。
对于我们这些仍然希望 attr() 函数有一天能够进入 CSS 的人来说,这不仅仅是内容,这也是面向未来的额外一层。
根据定义,ID 在文档中是唯一的。因此,任何针对特定 ID 的规则都将受到限制,并且如果后来发现lage 上应该存在多个这种类型的元素,则可能需要重构。
因此,应谨慎使用 ID,并且只有在一个文档中包含多个元素没有意义时才应使用 ID。
在实用性和可读性方面相对于类的好处相当小,因此当无法识别元素和样式之间明确的一对一关系时,选择类通常是最好的主意。
任何现实世界的应用程序在某些时候都会有一些元素,只需要单独调整,以使它们在出现的上下文中更加美观。
在这些情况下,样式属性是正确的选择。任何使用它被认为是不好的做法的原因都适用于任何类型的内联样式,包括实用程序类。问题不在于属性,而在于混合样式和标记。
内联样式的样式和类之间的一个区别是,一个表示目的,允许使用纯 CSS 并且大多是通用的,而另一个则不然。
简单地说,width: 100px 具有普遍定义的含义,而 .width-100 可以表示任何含义。
在极少数情况下,特定于元素的样式变得如此复杂,以至于显式内联它们会损害可读性,甚至是不可能的(例如,如果它需要媒体查询)。
在这些情况下,实用程序类基本上是唯一的选择,即使它们很丑陋。
在理想的世界中,这些可以与特定的 mixin 类分开处理,我什至考虑过使用前缀来更容易地区分它们,但最终没有找到一个好的方法来使它们不难看。
我喜欢在实用程序类前面加上 a 前缀来表示它们向元素添加某种功能,与普通类相反,它指定元素的类型。
就是这样。当然,没有两个项目是相同的,有时必须稍微调整规则才能保持实用,但总的来说,这是我决定如何使屏幕上的事物看起来某种方式的框架。
你有什么想法?你讨厌它吗?你觉得有道理吗?在评论中让我知道吗?
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3