css - 如何为不同的元素组合相同的 CSS 属性?
问题描述
我有两个元素:tooltip和tooltip-line。每个元素都有共同的属性:
[tooltip]::after, [tooltip-line]::after {
position: absolute;
opacity: 0;
visibility: hidden;
/* Other common properties */
}
接下来,我对每个元素都有不同的属性。
[tooltip-line]::after { /* One line tooltip */
content: attr(tooltip-line);
white-space: nowrap;
}
[tooltip]::after { /* Multiline tooltip */
content: attr(tooltip);
width: 200px;
white-space: normal;
}
这是正确的用法吗?包括类似的课程。还是应该将所有属性复制到每个声明块?
解决方案
这是一种不同的方法,可能更具可扩展性。使用 CSS 自定义变量,我们可以通过在类中重置它们来覆盖任何默认类值multiline
。最后,如果可能的话,我会让包含工具提示内容的属性相同——并且是有效的数据属性。
.tooltip::after {
--tooltip-white-space: nowrap;
content: attr(data-tooltip-content);
white-space: var(--tooltip-white-space);
}
.tooltip.multiline::after {
--tooltip-white-space: normal;
}
.container {
width: 250px;
border: 1px solid red;
}
<div class="container">
<div class="tooltip" data-tooltip-content="my tooltip content should not wrap no matter what"></div>
<div class="tooltip multiline" data-tooltip-content="my multliline tooltip content should wrap"></div>
</div>
推荐阅读
- reactjs - 使用 Visual Studio(不是 VS Code),无需每次编译即可做出反应
- python-3.x - 基数为 10 的 int() 的无效文字:''。叹
- reactjs - How can I used Radium in react js
- python - Python to SQL Server insert query to varbinary(max) column
- algorithm - 4 节点红黑树应该是什么样子
- python - Broken xx axis and adjustment of the log-normal distribution in a histogram
- sendgrid - How does Sendgrid's automated security works?
- python - How to get the file name of a PIL image?
- installation - Unable to load dynamic library 'blackfire'
- twitter - Twitter OAuth 1.0 "215 Bad Authentication Data" error when requesting token