html - CSS 定位问题仅在 Safari 中

标签 html css d3.js svg cross-browser

我在 div loadingMessage 上有关于 svg 的文本,无论打开的窗口有多大或多小,它都希望它显示在中间,它在 Chrome、Firefox 和 IE 中运行良好。但对于 safari,它位于右侧。我想知道为什么以及如何解决这个问题。下面是在 safari 和其他浏览器上运行它的图片。 enter image description here enter image description here

我的 svg 代码是:

 var message = d3.select("#loadingMessage")
            .append("svg")
            .attr("id", "erase")
            .attr("width", 500)
            .attr("height", 100)
            .append("text")
            .text("Why this does not work on safari")
            .attr("x", 250)
            .attr("y", 55)
            .attr("fill", 'royalBlue')
            .attr("font-size", 20)
            .attr("font-weight", "bold")
            .attr("text-anchor", "middle")
            .attr("font-family", "Sans-serif");

我的 css 定位代码是:

#loadingMessage{
position: absolute;
top: 55%;
left: 50%;
transform: translate(-50%, -50%);}

谢谢。

最佳答案

Safari does not support unprefixed CSS transforms .即使 Mac 版本做了,Windows 版本仍然不会,因为它自 2012 年以来一直没有更新。在 Windows 上的 Safari 中测试基本上是浪费时间,因为没有人使用 Windows 版本,而且它不给您准确了解 Mac Safari 用户将看到的内容。

要解决这个问题,添加一个前缀版本的transform:

#loadingMessage{
    position: absolute;
    top: 55%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
}

关于html - CSS 定位问题仅在 Safari 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32609687/

相关文章:

jquery - 如何在 div 元素中垂直和水平居中文本

html - Bootstrap 轮播无法正常工作

css - 在 bootstrap .container 中将四个图像定位在同一个位置,以屏幕为中心

html - 我怎样才能删除这个按钮?CSS

html - 摆脱容器 div

javascript - 如何使用 D3 javascript 迭代 JSON 文件中的数据

javascript - 打开 d3 树布局以显示用户通过在搜索框中键入 request 搜索的节点

d3.js - d3js 线图的平滑线

php - 在不重定向的情况下更改响应 URL

html - 与 AngularJS 相比,在 Polymer 中使用创建自定义 HTML5 元素/小部件的优缺点是什么