У меня есть веб-страница, в которой я использую путь клипа SVG, применяемый к одному из HTML-элементов страницы.Элементы с позицией: относительные с дорожками клипов SVG, не отображающимися в Safari
SVG элемент:
<svg height="0" width="0">
<defs>
<clipPath id="clip">
<path d="M150 0 L75 200 L225 200 Z" />
</clipPath>
</defs>
</svg>
HTML элемент путь обрезки применяется к
<div id="clipMe"> </div>
CSS определения клипа,
#clipMe {
clip-path: url(#clip);
-webkit-clip-path: url(#clip);
width: 200px;
height: 200px;
background-color: red;
}
На той же странице, у меня есть различные элементы, некоторые из которых расположены относительно друг друга:
<div style="position: relative">
<strong>My parent is relative</strong>
</div>
В Safari (8.0.4) только эти относительно позиционируемые элементы не отображаются до тех пор, как связь с #clipMe
div в clipPath (внутри элемента SVG) не поврежден.
Последние версии дисплеев FF и Chrome, как и ожидалось.
Изменение свойства position:
на все, кроме относительного, отображает все, как ожидалось.
Отключение обтравочного контура (либо путем удаления элемента SVG вместе, либо удаления свойства clip-path:
из CSS) отображает все так, как ожидалось.
Опять же, это только Safari. Мне потребовалось некоторое время, чтобы изолировать его до того, что он будет обрезать SVG и position: relative
, поэтому я предполагаю, что могут быть другие ситуации с похожими результатами.
Неужели кто-нибудь сталкивается с этим или имеет какие-либо предложения по отображению этих относительно позиционированных s?
EDIT
Возможно, это предмет Mac. Хотя он отображается как ожидается в Chrome и Firefox в OSX, он не отображает относительно позиционированные DIV в любом браузере на iOS.
Любые идеи?
Я не согласен с изменением названия. Это означает, что элемент с используемым клипом не отображается. Это не тот случай; обрезанный элемент отображается отлично. Это другой элемент на странице с 'position: relative', который не отображался. Мой .02. – Daveh0