在 firefox 中缩放后,li 上的 CSS 转换强制子文本为 'jump'

标签 css firefox css-transforms

我写了一个简单的便签页。每个笔记都是一个列表项,包含段落中的内容、跨度中的删除按钮和带有工具提示的图像。这是一段包含一条注释的 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/

相关文章:

javascript - lightgallery 无法正常工作

javascript - window.innerWidth 和 window.innerHeight 不正确

html - 在 Chrome 上运行良好的 Css 3D 动画在 Safari 上不起作用

css - css 转换 :translate to align a div in the center ist not working

php - 外部 CSS 链接无效

html - 有一个单独的 CSS 文件对代码运行有影响吗?

css - SnapSVG Safari/Firefox 旋转错误

javascript - ChromeWorker 设置指向内存的指针或发送大数据。如何?

twitter-bootstrap - 使用 css3 转换的 Bootstrap 翻转卡

javascript - 将 CSS 或 JS 注入(inject) Android 上的 Chrome