Menyetel lebar guratan: 1 pada <rect>
elemen di SVG menempatkan guratan pada setiap sisi persegi panjang.
Bagaimana seseorang menempatkan lebar guratan hanya pada tiga sisi persegi panjang SVG?
Menyetel lebar guratan: 1 pada <rect>
elemen di SVG menempatkan guratan pada setiap sisi persegi panjang.
Bagaimana seseorang menempatkan lebar guratan hanya pada tiga sisi persegi panjang SVG?
Jawaban:
Jika Anda membutuhkan goresan atau tanpa goresan maka Anda juga bisa menggunakan goresan-dasharray untuk melakukan ini, dengan membuat garis dan celah sesuai dengan sisi persegi panjang.
rect { fill: none; stroke: black; }
.top { stroke-dasharray: 0,50,150 }
.left { stroke-dasharray: 150,50 }
.bottom { stroke-dasharray: 100,50 }
.right { stroke-dasharray: 50,50,100 }
<svg height="300">
<rect x="0.5" y="0.5" width="50" height="50" class="top"/>
<rect x="0.5" y="60.5" width="50" height="50" class="left"/>
<rect x="0.5" y="120.5" width="50" height="50" class="bottom"/>
<rect x="0.5" y="180.5" width="50" height="50" class="right"/>
</svg>
Lihat jsfiddle .
stroke-dasharray
suatu objek yang menentukan batas mana yang harus ditampilkan. Membaca kode mungkin membantu Anda memahami cara kerjanya: codepen.io/lazd/pen/WNweNwy?editors=1010
Anda tidak dapat mengubah gaya visual berbagai bagian dari satu bentuk di SVG (tanpa modul Efek Vektor yang belum tersedia ). Sebagai gantinya, Anda perlu membuat bentuk terpisah untuk setiap goresan atau gaya visual lain yang ingin Anda variasikan.
Khusus untuk kasus ini, daripada menggunakan elemen <rect>
atau <polygon>
Anda dapat membuat <path>
atau <polyline>
yang hanya menutupi tiga sisi persegi panjang:
<!-- Move to 50,50 then draw a line to 150,50, to 150,150, and then to 50,150 -->
<path d="M50,50 L150,50 150,150 50,150" />
<polyline points="50,50 150,50 150,150 50,150" />
Anda dapat melihat efeknya beraksi di sini: http://jsfiddle.net/b5FrF/3/
Untuk informasi lebih lanjut, baca tentang <polyline>
dan bentuk yang lebih kuat-tetapi-lebih-membingungkan <path>
.
Anda bisa menggunakan polyline untuk tiga sisi yang digores, dan sama sekali tidak meletakkan goresan pada persegi panjang. Saya tidak berpikir SVG memungkinkan Anda menerapkan goresan yang berbeda ke berbagai bagian jalur / bentuk, jadi Anda perlu menggunakan banyak objek untuk mendapatkan efek yang sama.