SVG

时间:2018-03-20 15:15:22

标签: css internet-explorer svg safari styled-components

我试图在图片上制作动画时遇到问题。 VGwDC.png

复选框由SVG路径和rect使用样式化组件构成。这是蓝色填充的代码:

import styled from "styled-components";

export const BoxFill = styled.rect.attrs({
  x: 0,
  y: 0,
  rx: 0,
  ry: 0,
  width: "100%",
  height: "100%",
})`
  fill: transparent;
  rx: 80%;
  ry: 80%;
  x: 50%;
  y: 50%;

  width: 0;
  height: 0;
  transition: all ${transition.release}; // disappear

  ${Label}:hover > ${Input}:checked + ${Box} & {
    fill: ${({ theme: { checkbox } }) => checkbox.selectedHoverBoxBackground};
  }

  ${Input}:checked + ${Box} & {
    fill: ${({ theme: { checkbox } }) => checkbox.selectedBoxBackground};
    width: 100%;
    height: 100%;
    rx: 0;
    ry: 0;
    x: 0;
    y: 0;
    transition: all ${transition.press}; // appear
  }

  ${Input}:checked[disabled] + ${Box} & {
    fill: ${({ theme: { checkbox } }) => checkbox.selectedDisabledBoxBackground};
  }
`;

所以现在它适用于Chrome,Firefox等。但Safari似乎首先采用属性(rx,ry)并在样式中忽略它们,即使它们已被声明。结果我总是得到一个尖锐的填充。这在IE 11中保持不变(虽然动画在这里不起作用,但是现在我不介意)。这种情况不合适。 如果我在第一个位置将属性(rx,ry)设置为80%,那么Safari中的动画就是我所期望的,但在EI中,我得到了这张照片。这些白洞在一个盒子里。 SyHsT.png

我希望它能像第二个Safari的情况一样工作,但却无法研究这种行为的原因。

0 个答案:

没有答案