是否可以获取属性的值(在我的div的子元素的情况下)并将其用作纯CSS3中没有js的父属性的值?
我的情况:我有一个div,使用此代码在鼠标悬停时显示动画:
.filter {
height: 22px;
overflow: hidden;
transition: all 1s ease-in-out 0s;
}
.filter:hover {
height: 100px;
}
但我想要"目的地" (on-hover)高度不是硬编码的,而是取自div的子(一个表)的scrollHeight属性,使用cacl()函数增加固定量。我需要这个,因为这个表的大小在不同的页面上是不同的,并且表本身有一个box-shadow属性,但我想使用单一样式。
如果我使用
.filter:hover {
height: auto;
}
我没有动画,内表的阴影保持隐藏。
可以使用纯CSS3吗?
答案 0 :(得分:0)
我知道在css中使用html标记中的属性的唯一方法是使用content
属性。
来自this article:
content
属性可以采用字符串,网址(),attr()
,counter()和 counter()值。 url()值用于插入图像。的的 attr()函数以字符串形式返回指定的值 关联元素的属性。 counter()和counters() 函数可用于显示任何CSS计数器的值。
<a href="http://wikipedia.org">Wikipedia</a>
a:after {content: " (" attr(href) ")";}
...会在链接内容后显示href属性的值, 导致上面示例的以下锚文本: 维基百科(http://wikipedia.org)。
话虽如此,我认为这不会对你想要做的事情有所帮助。
答案 1 :(得分:0)
如果您想纯粹使用CSS3,请转换max-height
属性而不是height
属性。
最初将height
设置为auto
,将max-height
设置为22px
,然后将max-height
转换为您希望最大的表格更高的值,比如1000px
。
.filter {
max-height: 12px;
height: auto;
overflow: hidden;
transition: all 2s ease-in-out 0s;
padding-bottom: 10px;
}
.filter:hover {
max-height: 1000px;
}