我blockquote
喜欢这样的:
Soopah sekkrit!
我想隐藏它,只有当用户将鼠标悬停在它上面时才显示它.我现在正在用JS做这件事:
blockquote.addEventListener('mouseover', function() { this.style.height = this.offsetHeight + 'px'; this.dataset.contents = this.innerHTML; this.innerHTML = ''; }); blockquote.addEventListener('mouseout', function() { this.style.height = ''; this.innerHTML = this.dataset.contents; });
使用CSS有更好的方法吗?
它必须background-color
使用自定义颜色保持其内容,大小和内容.如果可能的话,我也想给它制作动画,使内容逐渐淡出.
这与我在SOUP中使用的内容非常相似:
.spoiler, .spoiler > * { transition: color 0.5s, opacity 0.5s }
.spoiler:not(:hover) { color: transparent }
.spoiler:not(:hover) > * { opacity: 0 }
/* fix weird transitions on Chrome: */
blockquote, blockquote > *:not(a) { color: black }
.spoiler, .spoiler > * { transition: color 0.5s, opacity 0.5s }
.spoiler:not(:hover) { color: transparent }
.spoiler:not(:hover) > * { opacity: 0 }
/* fix weird transitions on Chrome: */
blockquote, blockquote > *:not(a) { color: black }
/* some basic bg styles for demonstration purposes */
blockquote { background: #fed; margin: 1em 0; padding: 8px; border-left: 2px solid #cba }
code { background: #ccc; padding: 2px }
img { vertical-align: middle }
Soopah sekkrit text with code
and links and images!
You can also have paragraphs in here.
- And lists too!
Even nested spoilers work!
是的,这可以通过CSS实现.基本上,您希望使所有内容都不可见.在CSS中,这意味着透明.
首先在非伪类中使用hover伪类:
.spoiler:not(:hover)
但我们还需要选择悬停扰流板的所有子元素,以设置它们的颜色和背景:
.spoiler:not(:hover) *
并且我们设置颜色和背景(仅用于子元素)transparent
以使它们对用户不可见.全部一起:
.spoiler:not(:hover), .spoiler:not(:hover) * { color: transparent }
.spoiler:not(:hover) * { background: transparent }
code { padding: 2px; background: #bbb }
a { color: #00f }
Hover: Some stuff and a colored link and some code!