2015-06-27 10 views
6

Oto Jsfiddle demoW CSS/SVG, jak obrócić każdą literę słowa?

<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> 
 
<svg width="100%" height="100%" viewBox="0 0 1000 300" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 
 
    <defs> 
 
     <path id="MyPath" d="M 100 200 
 
      C 200 100 300 0 400 100 
 
      C 500 200 600 300 700 200 
 
      C 800 100 900 100 900 100" /> 
 
    </defs> 
 
    <use xlink:href="#MyPath" fill="none" stroke="red" /> 
 
    <text class="material-icons"> 
 
     <textPath xlink:href="#MyPath">&#xe55d; &#xe55d; &#xe55d; &#xe55d;</textPath> 
 
    </text> 
 
    <!-- Show outline of the viewport using 'rect' element --> 
 
    <rect x="1" y="1" width="998" height="298" fill="none" stroke="black" stroke-width="2" /> 
 
</svg>

&#xe55d; jest specjalny znak, który jest wyświetlany jako "strzałki".

Istnieje problem w demo powyżej: w kierunku strzałki w <textPath> jest prostopadle do <path>, gdy trzeba ustawić kierunek być takie same (równoległe), a ścieżki.

Dlatego muszę obracać o 90 stopni dla każdego znaku w tekście &#xe55d; &#xe55d; &#xe55d; &#xe55d; (nie całe zdanie) ..

znalazłem this post o obracanie znaków, ale wygląda nie idealne, ponieważ musi „Encapsule każdy litera w elemencie z jQuery ". Może jest jakiś sposób, aby zrobić to łatwiej w SVG?

Czy ktoś ma pomysły na temat obracania każdej litery słowa w węźle <textPath>?

+0

odbyła się dyskusja przed http://stackoverflow.com/questions/22736968/is-there-a-way-to-draw-a-rectangle-around-single-letters-on-a-svg-textpath ale jest dużo kodu javascript –

Odpowiedz

4

Wystarczy dodać do tego style="writing-mode: tb; glyph-orientation-vertical: 180;"text

Mam nadzieję, że to jest to, czego chciał:

<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> 
 
<svg width="100%" height="100%" viewBox="0 0 1000 300" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 
 
    <defs> 
 
     <path id="MyPath" d="M 100 200 
 
      C 200 100 300 0 400 100 
 
      C 500 200 600 300 700 200 
 
      C 800 100 900 100 900 100" /> 
 
    </defs> 
 
    <use xlink:href="#MyPath" fill="none" stroke="red" /> 
 
    <text class="material-icons" style="writing-mode: tb; glyph-orientation-vertical: 180;"> 
 
     <textPath xlink:href="#MyPath">&#xe55d; &#xe55d; &#xe55d; &#xe55d;</textPath> 
 
    </text> 
 
    <!-- Show outline of the viewport using 'rect' element --> 
 
    <rect x="1" y="1" width="998" height="298" fill="none" stroke="black" stroke-width="2" /> 
 
</svg>

+0

Dobra odpowiedź, właśnie chciałem to zrobić sam. Patrzyłem również na atrybuty "obracania" tekstu/tspanów, ale nie mogłem tego sprawić. – Ian

+0

jeszcze nie obsługiwane w FF? – Kaiido

+0

Naprawdę fajnie! Wydaje się, że Firefox nie obsługuje teraz trybu "pisania": https://developer.mozilla.org/en-US/docs/Web/CSS/writing-mode. Hope Firefox (Gecko) będzie obsługiwał 'tryb pisania' w przyszłości. –

Powiązane problemy