2009-04-21 5 views
1

すべてのブラウザで縦書きテキスト(90度回転)を表示するにはどうすればよいですか?すべてのブラウザで縦書きテキスト(90度回転)を表示するにはどうすればよいですか?

alt text http://blogs.sun.com/oootnt/resource/sbres_1164126054_0__.png

+1

もIE 6で動作します。それはプログラミング言語であり、ほとんどの場合と同様に、画像の変更機能にアクセスできます。 –

答えて

0

This threadあなたがイメージにテキストを書き込み、画像を回転させることができることを示唆しています。

は、トリックを行うダメIE6のためにそれらのほとんどの勝利の1 =)

+0

IEはIE専用のタグでも可能です。他の主要なブラウザ(Firefox、Safari、Operaなど)のほとんどは、オープンなWeb標準であるSVGを使用して実行できます。 (2001年リリース、まだマイクロソフトからのサポートはありません)私はここでIEの勝利を見ていません。 :-) – Ken

0

imagettftextかもしれないので、他のブラウザではIEで可能ではないように見えます。

5

PHP/HTML/CSSでテキストを回転させることはできません。しかし、テキストを含むGDでイメージを作成することはできます。

例:私の知る限りは、それが回転したテキストが画像でなければならないことを意味するので、それは、CSSで縦書きのテキストを取得することはできません知っているよう

header ("Content-type: image/png"); 

// imagecreate (x width, y width) 
$img_handle = @imagecreatetruecolor (15, 220) or die ("Cannot Create image"); 

// ImageColorAllocate (image, red, green, blue) 
$back_color = ImageColorAllocate ($img_handle, 0, 0, 0); 
$txt_color = ImageColorAllocate ($img_handle, 255, 255, 255); 
ImageStringUp ($img_handle, 2, 1, 215, $_GET['text'], $txt_color); 
ImagePng ($img_handle); 
ImageDestroy($img_handle); 
+0

$ back_colorには何がありますか? – dstonek

0

。 PHPの 'libgdインターフェースで生成して画像ファイルを出力するのは非常に簡単です。

ただし、これは1つのスクリプトを使用して画像を生成し、もう1つは周囲のWebページを生成することを意味します。一般的に(インラインデータ:URIにもかかわらず)、1つのスクリプトで複数のページコンポーネントを作成することはできません。

+0

@Verandaguyこの回答が書かれた3年半前、それはうまくサポートされていませんでした。 – Alnitak

7

問題は、サーバー側の言語から独立しています。垂直レンダリングされたテキストがテキストではなく画像ではない場合に問題がない場合は、solution provided by tharkunを選択してください。さもなければ、プレゼンテーション層でそれを行う方法があります。

最初は、IEのみのソリューション(part of the CSS3 standard)があります。あなたはcheck it liveです。

p { 
    writing-mode: tb-rl; 
} 

CSS3 text moduleはまた、いくつかのproperties for text orientationを指定します。

他の人はwith SVGです。そこ

-3
function verticletext($string) 
    { 
     $tlen = strlen($string); 
     for($i=0;$i<$tlen;$i++) 
     { 
      echo substr($string,$i,1)."<br />"; 
     } 
    } 
+0

ここにようこそ、あなたのソリューションを使用する理由だけを説明するのは良い習慣です。それはあなたの答えをより価値のあるものにし、読者があなたのやり方をより良く理解できるようにします。また、私たちのよくある質問をご覧ください:http://stackoverflow.com/faq。 – ForceMagic

1
function verticletext($string) 
    { 
     $tlen = strlen($string); 
     for($i=0;$i<$tlen;$i++) 
     { 
      $vtext .= substr($string,$i,1)."<br />"; 
     } 
     return $vtext; 
    } 

あなたには、エコー

1

テキストの回転を行っていない他のブラウザでも可能です。

CSS:

/*Safari*/ 
-webkit-transform: rotate(-90deg); 

/*Firefox*/ 
-moz-transform: rotate(-90deg); 

/*Opera*/ 
-o-transform: rotate(-90deg); 

/*IE*/ 
writing-mode: tb-rl; 
filter: flipV flipH; 
+0

これは最新のブラウザー全般で機能しますが、古いブラウザーではサポートされていません。 – Jules

1

私はテーブルのヘッダー行が長すぎる場合は、以下の機能を使用します。使い方が簡単で速く、テキストの高さを計算する必要がないので、これは非常に便利です。&幅。これらのcss-gimmicksはうまくいきません。

####################################################### 
# convert text to image and embed it to html 
# uses /tmp as a cache to make it faster 
# usage: print imagetext("Hello my friend"); 
# Created by Ville Jungman, GPL-licenced, donated by www.varuste.net 

function imagetext($text,$size = 10,$color = array(253,128,46)){ 
    $dir = "/tmp/tekstit"; 
    $filename = "$dir/" . base64_encode($text); 
    if(!file_exists($filename)){ 
    $font = "/usr/share/fonts/truetype/freefont/FreeSans.ttf"; 
    $box = imagettfbbox($size,90,$font,$text); 
    $w = -$box[4] - 1; 
    $h = -$box[3]; 
    $im = imagecreatetruecolor($w,$h); 
    $white = imagecolorallocate($im,$color[1],$color[2],$color[3]); 
    $black = imagecolorallocate($im, 0x00, 0x00, 0x00); 
    imagecolortransparent($im,$white); 
    imagefilledrectangle($im, 0, 0, $size, 99, $white); 
    imagettftext($im,$size,90,$size,$h,$black,$font,$text); 
    @mkdir($dir); 
    imagepng($im,$filename); 
    imagedestroy($im); 
    } 
    $data = base64_encode(file_get_contents($filename)); 
    return "<img src='data:image/png;base64,$data'>"; 

}

関連する問題