为什么在Safari上转换翻译无法正常工作?

Nin*_*les 18 css safari

我经常使用此代码将div视图置于中心:

.centered {
  position: fixed;
  top: 50%;
  left: 50%;
  /* bring your own prefixes */
  transform: translate(-50%, -50%);
}
Run Code Online (Sandbox Code Playgroud)

它适用于Firefox,Internet Explorer和Chrome,但不适用于Safari.

在Safari Web浏览器中居中图像的解决方法是什么?

Mut*_*pan 32

您需要其他供应商前缀样式.

.centered {
  position: fixed;
  top: 50%;
  left: 50%;
  /* bring your own prefixes */
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}
Run Code Online (Sandbox Code Playgroud)

请参阅下面的内容,了解哪个浏览器支持哪些内容以及必须添加的前缀. http://caniuse.com/#feat=transforms2d

  • 答案很好,但只需一次修改即可完美:*前缀版本应该出现在无前缀版本*之前.换句话说,将W3C标准属性放在供应商前缀属性之后.这就是为什么这很重要:http://stackoverflow.com/q/7080605/3597276 (7认同)

Tra*_*com 12

这适用于所有经过测试的浏览器和移动设备(Chrome,IE,Firefox,Safari,iPad,iphone 5和6,Android).

safari(包括ios设备)的关键是添加其他转换css规则而不仅仅是:

transform: translateY(-50%);
Run Code Online (Sandbox Code Playgroud)

您需要添加这组规则:

-ms-transform: translateY(-50%);
-webkit-transform: translateY(-50%);
-moz-transform: translateY(-50%);
-o-transform: translateY(-50%);
Run Code Online (Sandbox Code Playgroud)

这是我的一些工作代码:

img.ui-li-thumb {
    position: absolute;
    left: 1px;
    top: 50%;

    -ms-transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%);
}
Run Code Online (Sandbox Code Playgroud)

  • 哦,这真是太美了.使用'-webkit-transform:translateY(-50%);'是不够的,但你还需要其他供应商.做得好的Apple,超级设计工作.谢幕. (3认同)