Ich bin ein Neuling in SVG, so ist es wahrscheinlich eine einfache Frage. Ich versuche eine SVG-Maske mit einer einfachen Dreiecksform innerhalb eines Rechtecks zu erstellen. Was ich erreichen will, ist das Rechteck als Reaktion mit seiner Breite zu erhalten, aber das Dreieck sollte - erhält eine feste Größe - immer in der Mitte des DarstellungsCenter ein Element einer SVG-Maske
Sie werden verstehen, besser mit meinem Schnipsel:
.header-arrow {
height: 70px;
}
svg {
height: inherit;
}
#arrow-down-alpha {
transform: translateX(calc(50vw - 130px/2));
}
<div class="header-arrow">
<svg width="100%">
<defs>
<mask id="myMask" x="0" y="0" width="100%" height="100%">
<rect fill="white" x="0" y="0" width="100%" height="100%" />
<polygon id="arrow-down-alpha" fill="black" x="00" y="0" width="165px" height="100%" points="55.91 37.8 111.81 0 0 0 55.91 37.8" />
</mask>
</defs>
<rect id="base-mask" mask="url(#myMask)" x="0" y="0" width="100%" height="100%" />
</svg>
</div>
Es workning jetzt in Chrom, aber die translateX (oder übersetzen) funktioniert nicht in Firefox und Rand. Ich habe versucht, das Transform SVG-Attribut zu verwenden, aber es scheint, dass ich Prozentwerte nicht verwenden kann. Ich bin nicht wirklich vertraut mit der Viewbox, aber ich bin mir nicht sicher, es wird in diesem Fall helfen.
Danke trotzdem für jede Art von Hilfe!
ich bin seine Betrogene sicher. Versuchen Sie zuerst so zu finden. –
'x',' y', 'width' und' height' sind keine gültigen Attribute für ''. –
Leider werden die neuen CSS-Unit-Typen wie 'vw' nicht gut unterstützt, wenn sie auf SVG-Elementen verwendet werden. –