【发布时间】:2015-01-03 05:52:28
【问题描述】:
我有一些带有背景颜色、边框等的 css 样式……像这样:
.bg-red {
background-color:red;
}
.bg-blue {
background-color:blue;
}
/*more background colors*/
.border-red {
background-color:red;
}
.border-blue {
background-color:blue;
}
/*more border colors*/
/*Like this i also have foreground color, border thickness, border style, transition/hover styles (specially for button hover) */
像这样我可以为按钮设置样式。
例子
<button class="fg-green bg-white
border-color-red border-thickness-thick border-style-dashed
hover-bg-grey hover-fg-black
hover-border-blue">
</button>
为了使其更具可读性和更短,我想使用自定义属性和 css3 选择器将其更改为这个
<button color="fg-green bg-white"
border="red thick dashed"
hover-color="bg-grey fg-black"
hover-border="blue">
</button>
但这是一种好的做法吗?
我已经阅读了很多关于此的问题,但我真的无法决定我应该做什么。
1) Is it OK to add your own attributes to HTML elements? 还有很多其他问题
从这个问题中,我了解到自定义属性不符合 W3C。但是 html5 允许您使用 data- 前缀创建自定义属性。
在我看来,颜色和边框并不是真正的数据(或者它们是?),前缀主要用于 javascript。所以我不知道我是否应该这样做。
2) Is it a bad practice to use custom HTML attributes and style them with CSS?
在这里,我读到类更好,但我应该放弃可读性并改用类吗?
那么,什么更重要?通过使用属性使代码更可读,或使用类但使其可读性降低? 还是有更好的解决方案?
欢迎随时提出建议!
编辑:我只是一个初学者,所以我不太了解什么是好的,什么是坏的做法......
再次编辑:谢谢大家提供的信息,所有有用的答案,所以我对每一个都投了赞成票。 还要感谢 Alochi 对 cmets 的帮助。
【问题讨论】:
-
两者都是糟糕的做法。无论哪种方式,您都将样式嵌入到您的 html 中。
-
@Alohci 好的,所以最好创建一种包含背景边框和前景的样式?
-
远不止这些。你的类应该描述你的内容,而不是它的样子。对于一个按钮,想想“做什么?”它是什么类型的按钮?您什么时候可能想要另一个看起来相同的按钮?这些按钮有什么共同点?为每个相似性给他们一个类。然后使用 CSS 选择器来使用这些类中的一个或多个,并在单个 CSS 语句中应用所有常见样式。
-
@Alohci 所以最好删除这些样式并制作确认、警告等样式...?
-
可以合理地假设标记为“btn-large”的按钮将向用户指示一个比标记为“btn-small”的按钮更重要或更相关的按钮。这说明了按钮的一些语义,所以虽然它可能并不理想,并且可能有更好的名称选择,但我认为它们也不是最糟糕的选择。
标签: css html attributes readability