クロスブラウザ(> = IE6、> Firefox 2、Chrome、Safari、またはOperaのいずれかのバージョン)をサポートし、テキストの1単語を90度回転させたいとします。これはどうすればできますか?CSSのクロスブラウザで縦書きテキストを描画するにはどうすればよいですか?
答えて
最新の情報(CSS Tricks)でこの回答を更新しました。フィルターの実装を指摘してくれたMattとDouglasの功績。
.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);
}
旧答え:FF 3.5やSafari/Webkitの3.1
、チェックアウト:-moz-transformを(と-webkit-変換)。 IEはMatrix filter(v5.5 +)ですが、使用方法はわかりません。 Operaにはまだ変換機能はありません。
.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... */
}
私は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]-->
私はページ内の縦書きのテキストを書くために、次のコードを使用しています。 のFirefox 3.5+、WebKitの、オペラX 10.5+と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);
}
クロム5で動作します。IE 8 "quirks"モードで動作しません。 * IE8標準モードで動作します。 –
私にお知らせいただきありがとうございます。 quirksモードでIEに垂直テキストを表示する方法を見つけたら、ここに投稿してください。IE6 +およびすべての最新ブラウザ間の差別愛する – tchoesang
私は純粋なCSSでそれをやろうとして問題を持っていた - フォントによって、それはビットゴミを見ることができます。代わりに、SVG/VMLを使ってそれを行うこともできます。例えば、ブラウザを簡単にクロスブラウズするのに役立つライブラリがあります。 RaphaelおよびExtJS。 ExtJS4でコードは次のようになります。これは、IE6 +およびすべての最新ブラウザで動作します
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);
、しかし、残念ながら私はあなたが、少なくともFF3.0が必要だと思います。
- あなたがIEのすべてのバージョンを言っているかのように読み、現代ではありません:) – ClarkeyBoy
@ClarkeyBoyは、私が唯一のIE10は、他のブラウザでスピードほとんど次第です、とだけ強制ので、GPUと言うでしょうレンダリングとグリッドレイアウト。あなたはx3 - x10倍遅くして、他のすべてのブラウザを更新するので、あなたは本当に現代的なブラウザのIEを調整することはできません。 – skmasq
最善の策は、あなたがCSSのtransformプロパティを使用すると、あなたの応答に設計されたページと互換性がない可能性があることを見つけることとして、SVGファイルまたはこのJSを使用することです。 – b01
クロム、Firefoxの、IE9、IE10(あなたの要件ごとに度を変更します)上で動作します私のソリューション:
.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*/
}
ブートストラップ3を使用する場合、あなたはそれのミックスインのいずれかを使用できます。
.rotate(degrees);
例:
.rotate(-90deg);
はまだ動作しますが、それに気づく: **すべてのベンダーのミックスインが原因私たちのGruntfileで Autoprefixerの導入にV3.2.0のよう推奨されていません。彼らは、V4に削除されます以前のものよりもはるかに優れ** – yishaiz
別の解決策は、SVGテックスを使用することですノードは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>
デモ:SVGテキストにhttps://jsfiddle.net/bkymb5kr/
素晴らしいソリューション、 - 。回転 – Picard
CSS Writing Modesモジュールは垂直テキスト直交流れを導入します。
writing-mode
プロパティを目的の値に設定するだけです。
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>
後の文字列の配置でも問題なく横向き-RLを広くサポートされていない今のように、私は垂直-RLをお勧めしますし、180℃に回転します – godblessstrawberry
- 1. cssを使用して縦書きテキストを作成するにはどうすればよいですか?
- 2. サブビューにテキストを描画するにはどうすればよいですか?
- 3. Google Charts - 縦書きのテキストでY軸ラベルを作成するにはどうすればよいですか?
- 4. 縦書きテキストメニューに適切なCSSを使用するにはどうすればよいですか?
- 5. plotly jsを使用して縦書きテキストを表示するにはどうすればよいですか?
- 6. voiceoverでiOSを指で「描画」できるようにするにはどうすればよいですか?
- 7. CSS縦書きテキストのセンタリング
- 8. CSSの縦書きテキスト
- 9. iReportに縦線を描くにはどうすればいいですか?
- 10. D3でラベルとして縦書きのテキストを描画する方法
- 11. キャンバス要素にそのテキストを描画するために、テキストの描画座標を取得するにはどうすればよいですか?
- 12. CSSで特定の境界線を描画するにはどうすればよいですか?
- 13. DrawingContext.DrawText()を使用してWPFで縦書きテキストを描画する
- 14. drawAtPointで複数行のテキストを描画するにはどうすればよいですか?
- 15. テキストビューのボトムアップでテキストを描画するにはどうすればよいですか?
- 16. matplotlibからスライダウィジェットの値のテキストを描画するにはどうすればよいですか?
- 17. アプリケーションにグラフを描画するにはどうすればよいですか?
- 18. iPhoneに線を描画するにはどうすればよいですか?
- 19. AdMobをキャンバスに描画するにはどうすればよいですか?
- 20. マップコントロールにルートを描画するにはどうすればよいですか?
- 21. JPanelにルーラーを描画するにはどうすればよいですか?
- 22. ビットマップにボールドテキストを描画するにはどうすればよいですか?
- 23. Androidソフトキーボードのキーに2行のテキストを描画するにはどうすればよいですか?
- 24. Objective-Cを使用してカスタムビューでテキストを描画するにはどうすればよいですか?
- 25. オブジェクトを再描画するときに画面をクリアするにはどうすればよいですか?
- 26. editfieldのテキストにビットマップを描画するにはどうすればよいですか?
- 27. テキストのオーバーフローなしで自動高さのあるテーブルヘッダーに縦書きのテキストを表示するにはどうすればよいですか?
- 28. Win32 APIを使用してテキストを描画するときにClearTypeの設定を上書きするにはどうすればよいですか?
- 29. カスタムボタンを描画するにはどうすればよいですか?
- 30. iOS描画アプリをズームするにはどうすればよいですか?
あなたは、クロスの互換性で使用することができます何の純粋なCSSはありません。私が持っているのはそこにあるすべてです。あなたはイメージが良いです。 –
ここに私が使ったテクニックの内訳があります:http://scottgale.com/blog/css-vertical-text/2010/03/01/ –
ここには、IEでもすべての種類のテキスト変換を行う方法を説明するチュートリアルがあります(あなたの問題への解決策を含む):) http://www.useragentman.com/blog/2010/03/09/cross-browser-css-transforms-even-in-ie/ –