首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Safari浏览器在旋转变换后渲染SVG两次

Safari浏览器在旋转变换后渲染SVG两次
EN

Stack Overflow用户
提问于 2019-07-22 08:12:28
回答 2查看 151关注 0票数 0

当在浏览器中呈现切换框时,点击标题应打开/关闭切换内容区域,并且还旋转SVG箭头180度。这在除Safari (移动和桌面)之外的所有浏览器中都能正常工作。它似乎可以同时呈现两个版本的SVG箭头。

代码语言:javascript
复制
i {
    position: absolute;
    right: 0;
    margin-right: 12px;
}

.active i { 
    transform: rotate(180deg);
    -ms-transform: rotate(180deg); /* IE 9 */
    -webkit-transform: rotate(180deg); /* Safari 3-8 */
}

此小提琴中提供的示例代码:https://jsfiddle.net/e6gbdkaL/1/

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-22 08:40:40

与SVG转换有些关系。

您需要定义transform-origin并对<g>元素应用旋转。

代码语言:javascript
复制
i > svg > g {
  transform-origin: 50% 50%;
  transform: rotate(0deg);
}
.active i > svg > g {
  transform: rotate(180deg);
}

请参阅此小提琴以获取可行的解决方案:https://jsfiddle.net/df75g16k/

票数 0
EN

Stack Overflow用户

发布于 2019-07-23 03:44:37

我发现我还需要摆弄宽度/高度、填充和z-index,以修复旋转转换后Safari切掉SVG边缘的位置。

代码语言:javascript
复制
i {
    position: absolute;
    right: 0px;
    width: 24px;
    height: 24px;
    background: transparent;
    z-index: 25;
    padding: 0 12px;
    margin-right: 12px;

    > svg { width: 24px; }

    > svg > g {
        min-width: 24px;
        transform-origin: 50% 50%;
        transform: rotate(0deg);
    }
}

.active i > svg > g {
    transform: rotate(180deg);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57137909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档