【发布时间】:2021-11-29 01:40:00
【问题描述】:
不久前我在设计中看到了这个功能,并认为“干草,这看起来是个好主意”。但进一步研究它,我不确定使用“just css”是否完全有可能。
左侧下方有一个导航栏:
ul{
background:red;
display:inline-block;
padding:20px;
}
<ul>
<li>link 1</li>
<li>link 2</li>
<li>link 3</li>
<li>link 4</li>
</ul>
当浏览器窗口失去焦点时,有没有办法改变这种情况?
即当用户点击关闭浏览器时,例如改变这个nav的背景颜色?
唯一的可能(可能更低效的方法是做类似的事情):
body:hover ul {
background: red;
}
body ul {
display: inline-block;
padding: 20px;
background: blue;
}
<ul>
<li>link 1</li>
<li>link 2</li>
<li>link 3</li>
<li>link 4</li>
</ul>
但这很明显
- (A) 效果不佳
- (B) 实际上并没有正确执行此操作。
我更希望浏览器在更改 css 之前物理上“失去焦点”。
有人对如何实现这一点有任何想法吗?
【问题讨论】:
-
使用 CSS 这是不可能的。您是否愿意接受其他方法来实现这一目标?另外我觉得hover body方法不是一个好方法,如果你把鼠标移到浏览器的顶部,它看起来有点便宜和俗气。
-
@Ruddy:我想 JQuery 是替代品?
-
有一个recent (Jan 2015) article in smashingmagazine 讨论了以前的方法来查看标签是否与即将推出的 API 一起可见。 (但是:都是 JS 方法。)
-
@jbutler483 Demo,这就是你如何在 jQuery 中做到这一点(我知道的唯一方法),但它与悬停几乎相同。
-
@jbutler483 但是使用这种方法会更好,因为它可以确定页面是否仍然处于焦点(与悬停不同)。