有任何想法吗?
如果 CSS4 在 向后走 中添加了一些 钩子,那它会很漂亮。在此之前,可以(尽管不建议)使用 checkbox
和/或 radio
input
s 来打破常规事物连接的方式,并且通过这种方式还允许CSS在其正常范围之外运行......
/* 隐藏可能稍后显示的内容 */ .menu__checkbox__selection, .menu__checkbox__style, .menu__hidden { display: none;可见性:隐藏;不透明度:0;过滤器:阿尔法(不透明度= 0); /* 旧版 Microsoft 不透明度 */ } /* 内容和样式菜单的基本样式 */ .main__content { background-color: lightgray;颜色:黑色; } .menu__hidden { 背景颜色:黑色;颜色:浅灰色; /* 让列表看起来不那么_listy_ */ list-style: none;左填充:5px; } .menu__option { 框大小:内容框;显示:块;位置:静态; z-index:自动; } /* ▼ - \u2630 - 三栏 */ /* .menu__trigger__selection::before { content: '\2630';显示:内联块; } */ /* ▼ - 向下箭头 */ .menu__trigger__selection::after { content: "\25BC";显示:内联块;变换:旋转(90度); } /* 自定义看起来更像 `select` 如果你喜欢 */ .menu__trigger__style:hover, .menu__trigger__style:active { cursor: pointer;背景颜色:深灰色;白颜色; } /** * 检查复选框/收音机时要做的事情 */ .menu__checkbox__selection:checked + .menu__trigger__selection::after, .menu__checkbox__selection[checked] + .menu__trigger__selection::after { transform: rotate(0deg); } /* 这一点你可能在别处看到 */ .menu__checkbox__selection:checked ~ .menu__hidden, .menu__checkbox__selection[checked] ~ .menu__hidden { display: block;能见度:可见;不透明度:1;过滤器:阿尔法(不透明度= 100); /* 微软!? */ } /** * Hacky CSS 仅根据非内联复选框进行更改 * ...也就是在此之后您无法取消看到的内容... */ .menu__checkbox__style[id="style-default"]:checked ~ .main__content { 背景颜色:浅灰色;颜色:黑色; } .menu__checkbox__style[id="style-default"]:checked ~ .main__content .menu__trigger__style[for="style-default"] { color: darkorange; } .menu__checkbox__style[id="style-one"]:checked ~ .main__content { 背景颜色:黑色;颜色:浅灰色; } .menu__checkbox__style[id="style-one"]:checked ~ .main__content .menu__trigger__style[for="style-one"] { color: darkorange; } .menu__checkbox__style[id="style-two"]:checked ~ .main__content { background-color: darkgreen;红色; } .menu__checkbox__style[id="style-two"]:checked ~ .main__content .menu__trigger__style[for="style-two"] { color: darkorange; }
Lorem ipsum dolor sit amet,consectetur adipisicing elit,sed do eiusmod tempor incididunt ut labore et dolore magna aliqua。 Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
结果。 Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur。 Exceptioneur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est labourum。
... 漂亮粗,但仅使用 CSS 和 HTML 就可以通过链接 id
和 { 从几乎任何地方触摸和重新触摸除 body
和 :root
radio
/checkbox
input
s 和 label
triggers 的 4} 个属性;可能有人会在某个时候展示如何重新触摸它们。
另一个警告是,只有 一个 input
可能使用特定 id
,换句话说,首先 checkbox
/radio
赢得一个切换状态。 . 但是多个标签都可以指向同一个 input
,尽管这会使 HTML 和 CSS 看起来更加粗暴。
...我希望有某种解决方法存在于 CSS Level 2 中...
我不确定其他伪类,但我:checked
为 pre-CSS 3。如果我没记错的话,它类似于 [checked]
,这就是为什么您可以在上面的代码中找到它,例如,
.menu__checkbox__selection:checked ~ .menu__hidden,
.menu__checkbox__selection[checked] ~ .menu__hidden {
/* rules: and-stuff; */
}
...但是对于像 ::after
和 :hover
这样的东西,我完全不确定它们最初出现在哪个 CSS 版本中。
综上所述,请永远不要在生产中使用它,即使是愤怒也不行。作为一个玩笑,或者换句话说,仅仅因为可以做某事并不总是意味着它应该做。
:has()
in stylesheets 和 Chrome is currently implementing it。