我想用CSS进行过渡,但我的元素的尺寸通常以像素为单位,但在:hover
事件中以百分比表示,并且过渡不能像这样工作。你知道有什么办法做到这一点?将像素过渡到百分比
2
A
回答
1
您可能必须使用JavaScript将计算后的百分比值更改为像素。我认为webkit以px报告维度,无论它们在通过JavaScript调用时如何设置。
4
它工作得很好 - http://jsfiddle.net/eCxQP/
正常宽度 - 以像素为单位,悬停 - 百分比
body {
width: 100%;
}
div {
width:100px;
height:100px;
background:red;
transition:width 2s;
-moz-transition:width 2s; /* Firefox 4 */
-webkit-transition:width 2s; /* Safari and Chrome */
-o-transition:width 2s; /* Opera */
}
div:hover {
width:33%;
}
更新:在FF的作品,而不是基于Webkit的浏览器
2
我工作正常上Firefox,但不需要使用相同单元的Chromium。
10
可以应用在%宽度过渡,只是使用最小宽度作为像素的固定值。
.elem {
min-width:50px; /* min-width as the pixel value */
width:0%; /* width as the % value */
transition:width .8s ease; /* transition applied to width */
}
.apply-new-width {
width:100% !important;
}
要当心最小宽度要强于宽度。所以当你应用新的宽度(以%为单位)时,最小宽度仍然会覆盖它。你有几个选择来处理这个问题:增加.apply-new-width specificity(eg:.elem.apply-new-width或者div.apply-new-width)或者使用!important规则。通常,重要的是一个不好的解决方案,但它在这里诀窍。
下面是一个工作例子的jsfiddle。它可以在所有的浏览器,除了IE当然,其中的转变,不支持的,但它缓慢下降,所以我们可以说,它的工作原理每一个地方:)
干杯
+1
这是一个好主意。建立它 - 为什么不动画最小宽度值?那么不需要使用'!important'。这是我对你的小提琴的编辑:http://jsfiddle.net/judNR/7/ – jessica
相关问题
- 1. CSS将百分比转换为像素
- 2. CSS百分比和像素
- 3. LESS plus百分比像素
- 4. 元素尺寸的CSS3过渡不能从百分比或自动到像素尺寸
- 5. 线性渐变百分比与像素
- 6. 像素边框和百分比宽度
- 7. 3列,像素和百分比
- 8. 结合百分比与像素
- 9. 从百分比转换宽度像素
- 10. CSS宽度:X百分比+/- Y像素
- 11. CSS - 百分比还是像素?
- 12. tableviewercolumn setwidth百分比而不是像素
- 13. 白色像素的百分比
- 14. 进度条 - 百分比之间的平滑过渡
- 15. CSS过渡惹百分比宽度上的Webkit
- 16. 确定DIV的百分比高度设置百分比,而不是像素
- 17. 元素的百分比--Css
- 18. 将TR的自动高度转换为像素或百分比
- 19. 将百分比转换为窗口高度的像素
- 20. 将设置的像素大小和百分比一起使用
- 21. 如何将像素转换为html中的百分比度量?
- 22. 在Google评论脚本中将像素更改为百分比
- 23. 在JavaScript或JQuery中将百分比值转换为像素
- 24. 将百分比数转换为marginTop动画像素值
- 25. 如何将Javascript值更改为百分比而不是像素
- 26. 将像素转换为大显示器的百分比
- 27. jq-如何将像素值转换为百分比?
- 28. 使用javascript将像素转换为百分比
- 29. 百分比找到
- 30. 如何找到百分比宽度的实际像素宽度
似乎在Chrome中工作了。 –