2012-04-15 2 views
18

Есть ли способ в SVG рисовать линию, которая остается тонкой при растяжении изображения?Нарисуйте линию, которая не становится толще при растяжении изображения

Я использую SVG изображение в качестве CSS фона, что-то вроде этого:

<svg ... preserveAspectRatio="none" viewBox="0 0 15 15"> 
    <line x1="0" y1="15" x2="15" y2="0" 
     color="#000" stroke="#333" stroke-width="1" /> 
</svg> 

(Диагональная линия). Я растягиваю это изображение через прямоугольный элемент, и когда элемент больше, линия становится толще, но мне нужна всегда тонкая линия.

Возможно? Что-то вроде «тонких» линий во вспышке.

+0

Каким образом вы растягивание - с настольным приложением или библиотекой какой-то? Не можете ли вы сбросить «ширину штриха» после преобразования? – halfer

+0

Я использую его как фон CSS на веб-странице. Невозможно сбросить ширину штриха:/ – ezakto

+0

Я вообще не знаю библиотеку, но я думаю, вы могли бы сделать именно это с RaphaelJS. Может стоить? – halfer

ответ

23

В браузерах, которые реализуют SVG 1.2T вы можете иметь non-scaling stroke Opera и Webkit поддержки этого как и Firefox, начиная с версии 15.

<!-- via property --> 
<line … vector-effect="non-scaling-stroke" /> 

<!-- via CSS --> 
<style> 
    line { vector-effect:non-scaling-stroke } 
</style> 
<line … /> 
+2

Webkit также поддерживает его, см. Https://bugs.webkit.org/show_bug.cgi?id=31438. –

+0

IE9 не поддерживает немасштабирующий ход. Я не знаю, поддерживает ли IE10 эту функцию. – cuixiping

Смежные вопросы