我写了一个简单的便签页。每个笔记都是一个列表项,包含段落中的内容、跨度中的删除按钮和带有工具提示的图像。这是一段包含一条注释的 HTML:
<ul id="wall" class="ui-sortable">
<li id="note1">
<a href="#">
<span class="del">x</span>
<p>1221212 23 23 3322 3223</p>
<img src="..."/>
<div class="tooltip">Tooltip</div>
</a>
</li>
.
.
.
</ul>
这是CSS:
ul li a
{
outline: none;
text-decoration: none;
display: block;
height: 200px;
width: 200px;
-moz-transition: -moz-transform 0.2s ease;
}
ul li a:hover
{
-moz-transform: scale(1.1);
-webkit-transform: scale(1.1);
font-size: 105%;
position: relative;
}
ul li p
{
overflow: hidden;
margin: 0;
padding: 20px;
-moz-user-select: none;
font-size: 120%;
font-style: italic;
}
.del
{
-moz-user-select: none;
font-size: 22px;
position: absolute;
left: 183px;
float: right;
display: none;
padding: 2px 5px 0 0;
}
问题是,使用这段代码,整个音符可以正常缩放,但缩放完成后,文本(p 和跨度)会自行调整大小(我不知道,大约 1-2px),看起来特别糟糕。从 'ul li a' 中删除 -moz-transition 可以解决此问题,但缩放比例并不平滑。你们中有人遇到过类似的问题吗? 我也试过这个:
-moz-transition: -moz-transform 0.2s ease;
-moz-transition: font-size 0.2s ease;
但这并没有帮助。有没有办法在没有“跳跃”文本的情况下使用 css 转换比例?我现在不想使用 jQueryUI,它对于仅将它用于这个简单的任务来说太重了。
这是为此的 jsfiddle: Notes
当然,您必须从 firefox 运行它才能观察到问题。在 chrome 上它工作正常 AFAIK。
更新:我必须在 FF8.0 下运行它,但我已经安装了 13.0.1 并且该故障也在那里可见。
最佳答案
只需将字体大小从 105% 更改为 100%。
ul li a:hover
{
-moz-box-shadow: 10px 10px 7px black;
-webkit-box-shadow: 10px 10px 7px black;
-moz-transform: scale(1.1);
-webkit-transform: scale(1.1);
font-size: 100%;
position: relative;
}
关于在 firefox 中缩放后,li 上的 CSS 转换强制子文本为 'jump',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11135577/