Chcę obrócić pojedyncze słowo tekstu o 90 stopni, korzystając z obsługi wielu przeglądarek (> = IE6,> = Firefox 2, dowolnej wersji przeglądarki Chrome, Safari lub Opera). Jak to zrobić?Jak mogę narysować tekst pionowy za pomocą przeglądarki CSS?
Odpowiedz
Zaktualizowano tę odpowiedź na podstawie najnowszych informacji (z CSS Tricks). Kudos do Matta i Douglasa za wskazanie implementacji filtra.
.rotate {
-webkit-transform: rotate(-90deg);
-moz-transform: rotate(-90deg);
-ms-transform: rotate(-90deg);
-o-transform: rotate(-90deg);
transform: rotate(-90deg);
/* also accepts left, right, top, bottom coordinates; not required, but a good idea for styling */
-webkit-transform-origin: 50% 50%;
-moz-transform-origin: 50% 50%;
-ms-transform-origin: 50% 50%;
-o-transform-origin: 50% 50%;
transform-origin: 50% 50%;
/* Should be unset in IE9+ I think. */
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
}
Old odpowiedź:
For FF 3.5 lub Safari/Webkit 3.1, sprawdź: -moz-transform (i -webkit-transform). IE ma Matrix filter (v5.5 +), ale nie jestem pewien, jak z niego korzystać. Opera nie ma jeszcze możliwości transformacji.
.rot-neg-90 {
/* rotate -90 deg, not sure if a negative number is supported so I used 270 */
-moz-transform: rotate(270deg);
-moz-transform-origin: 50% 50%;
-webkit-transform: rotate(270deg);
-webkit-transform-origin: 50% 50%;
/* IE support too convoluted for the time I've got on my hands... */
}
I dostosowany to z http://snook.ca/archives/html_and_css/css-text-rotation:
<style> .Rotate-90 { display: block; position: absolute; right: -5px; top: 15px; -webkit-transform: rotate(-90deg); -moz-transform: rotate(-90deg); } </style> <!--[if IE]> <style> .Rotate-90 { filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); right:-15px; top:5px; } </style> <![endif]-->
Używam następujący kod do wpisywania tekstu w pionie na stronie. Firefox 3.5+, WebKit, opera 10.5+ i IE
.rot-neg-90 {
-moz-transform:rotate(-270deg);
-moz-transform-origin: bottom left;
-webkit-transform: rotate(-270deg);
-webkit-transform-origin: bottom left;
-o-transform: rotate(-270deg);
-o-transform-origin: bottom left;
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
}
Działa w Chrome 5. Nie działa w trybie "dziwactw" IE 8; * działa * w trybie "Standard IE8". –
Dzięki za poinformowanie mnie. Proszę napisać to tutaj, jeśli znajdziesz sposób, aby mieć pionowy tekst w IE w trybie dziwactwa. – tchoesang
miałem problemy staramy się robić to w czystym CSS - w zależności od czcionki może wyglądać trochę śmieci. Jako alternatywę możesz użyć SVG/VML, aby to zrobić. Istnieją biblioteki, które ułatwiają przeglądanie przeglądarki, np. Raphael i ExtJS. W ExtJS4 kod wygląda następująco:
var drawComp = Ext.create('Ext.draw.Component', {
renderTo: Ext.getBody(), //or whatever..
height: 100, width: 100 //ditto..
});
var text = Ext.create('Ext.draw.Component', {
type: "text",
text: "The text to draw",
rotate: {
x: 0, y: 0, degrees: 270
},
x: -50, y: 10 //or whatever to fit (you could calculate these)..
});
text.show(true);
To będzie pracować w IE6 + i wszystkich nowoczesnych przeglądarkach, jednak niestety myślę, że trzeba co najmniej FF3.0.
Kochanie rozróżnienie między IE6 + i wszystkimi nowoczesnymi przeglądarkami - brzmi to tak, jakby powiedzieć, że jakakolwiek wersja IE nie jest nowoczesna :) – ClarkeyBoy
@ClarkeyBoy Powiedziałbym, że tylko IE10 jest prawie na czasie z innymi przeglądarkami, i tylko dlatego, że wymuszono gpu renderowanie i układ siatki. Naprawdę nie da się zmienić IE w nowoczesną przeglądarkę, ponieważ aktualizuje się x3-x10 razy wolniej niż w każdej innej przeglądarce. – skmasq
Najlepiej jest użyć pliku SVG lub tego JS, ponieważ może się okazać, że użycie właściwości przekształcenia CSS może być niezgodne z twoimi responsywnie zaprojektowanymi stronami. – b01
Moje rozwiązanie, które będzie działać na Chrome, Firefox, IE9, IE10 (Zmień stopni jak na swoje wymagania):
.rotate-text {
-webkit-transform: rotate(270deg);
-moz-transform: rotate(270deg);
-ms-transform: rotate(270deg);
-o-transform: rotate(270deg);
transform: rotate(270deg);
filter: none; /*Mandatory for IE9 to show the vertical text correctly*/
}
Jeśli używasz Bootstrap 3, można użyć jednej z nich znajduje się wstawek:
.rotate(degrees);
przykład:
.rotate(-90deg);
Ciągle działa, ale zauważ, że: ** Wszystkie mixiny dostawców są przestarzałe od wersji v3.2.0 z powodu wprowadzenia Autoprefixer w naszym pliku Gruntfile. Zostaną one usunięte w wersji v4. ** – yishaiz
Innym rozwiązaniem jest użycie tex SVG t węzeł, który jest supported by most browsers.
<svg width="50" height="300">
<text x="28" y="150" transform="rotate(-90, 28, 150)" style="text-anchor:middle; font-size:14px">This text is vertical</text>
</svg>
Demo:https://jsfiddle.net/bkymb5kr/
więcej w tekście SVG:http://tutorials.jenkov.com/svg/text-element.html
świetne rozwiązanie, znacznie lepsze niż poprzednie - brak problemów z pozycjonowaniem tekstu po obróceniu – Picard
Moduł CSS Writing Modes wprowadza ortogonalne przepływów z tekstem pionowym.
Po prostu użyj właściwości writing-mode
z żądaną wartością.
span { margin: 20px; }
#vertical-lr { writing-mode: vertical-lr; }
#vertical-rl { writing-mode: vertical-rl; }
#sideways-lr { writing-mode: sideways-lr; }
#sideways-rl { writing-mode: sideways-rl; }
<span id="vertical-lr">
↑ (1) vertical-lr 至<br />
↑ (2) vertical-lr 至<br />
↑ (3) vertical-lr 至
</span>
<span id="vertical-rl">
↓ (1) vertical-rl 至<br />
↓ (2) vertical-rl 至<br />
↓ (3) vertical-rl 至
</span>
<span id="sideways-lr">
↓ (1) sideways-lr 至<br />
↓ (2) sideways-lr 至<br />
↓ (3) sideways-lr 至
</span>
<span id="sideways-rl">
↓ (1) sideways-rl 至<br />
↓ (2) sideways-rl 至<br />
↓ (3) sideways-rl 至
</span>
od tej pory sideways-rl jak na razie nie jest obsługiwane, polecam vertical-rl i obracanie do 180 stopni – godblessstrawberry
- 1. Jak mogę narysować tekst za pomocą Libgdx/Java?
- 2. Jak mogę narysować schemat za pomocą LaTeX?
- 3. Jak narysować linie drzewa genealogicznego za pomocą HTML CSS?
- 4. Pionowy dzielnik CSS
- 5. Zakrzywiony tekst za pomocą HTML i CSS
- 6. Jak mogę narysować przezroczysty obiekt 3D za pomocą SharpDX Toolkit?
- 7. Jak narysować punkt za pomocą Core Graphics?
- 8. Jak wyśrodkować tekst w pionie za pomocą css
- 9. Jak narysować krzywą mocy za pomocą ggplot2
- 10. Jak narysować tekst na obrazku?
- 11. Jak narysować tekst na płótnie?
- 12. Tekst pionowy w płótnie Tkinter
- 13. jak narysować serce za pomocą pylab
- 14. Czy mogę narysować coś w rodzaju Koła fortuny za pomocą CSS?
- 15. obracanie obrazu za pomocą css
- 16. Jak skalować całą stronę za pomocą CSS?
- 17. Dodanie „wymagane” tekst do formularza HTML za pomocą CSS
- 18. Jak mogę usunąć tekst w nawiasach za pomocą wyrażenia regularnego?
- 19. Jak mogę podkreślić tekst za pomocą FDPF w PHP?
- 20. Jak mogę dodać tekst na końcu pliku za pomocą Ant?
- 21. Android get tekst z przeglądarki
- 22. Jak "wymagać" plików tekstowych za pomocą przeglądarki?
- 23. iPhone - Jak narysować tekst w środku prostego
- 24. Jak utworzyć układ obramowania za pomocą css?
- 25. Jak mogę zminimalizować CSS za pomocą `less` w` express-js`?
- 26. Jak mogę kierować reklamy na pola tekstowe za pomocą CSS?
- 27. iPhone: jak narysować tekst w oknie?
- 28. Jak narysować pogrubiony tekst na bitmapie?
- 29. R/ggplot: pionowy tekst paska z facet_wrap
- 30. Jak uruchomić kątomierz za pomocą przeglądarki internetowej?
Nie ma czystego CSS można korzystać z wzajemnej zgodności. To, co mam, to wszystko, co istnieje. Lepiej z obrazem. –
Oto zestawienie użytej techniki: http://scottgale.com/blog/css-vertical-text/2010/03/01/ –
Oto samouczek wyjaśniający, jak wykonywać wszelkiego rodzaju transformacje tekstu nawet w IE (w tym rozwiązanie twojego problemu) :) http://www.useragentman.com/blog/2010/03/09/cross-browser-css-transforms-even-in-ie/ Hope it help! –