- PR -

MS Pゴシック の文字数制限

1
投稿者投稿内容
川上
常連さん
会議室デビュー日: 2006/08/18
投稿数: 20
お住まい・勤務地: 東京
投稿日時: 2008-09-08 11:24
いつもお世話になります。  川上です。

ウェブ上に表示するタイトルで、
横幅の上限があるため出力文字数に制限(上限)を設けようと考えていますが
使用しているフォントが「MS Pゴシック」なので一律の文字数制限では
上手く制御できなく困っています。

文字数(例:15文字)と、バイト数(例:30バイト)で制御を掛けてみましたが
バイト数の方が結果的には良いのですが、まだ余白が余っています。

例えば、
|2008/09/08 今日は月曜日ですね。| → |2008/09/08 今日は月...   |
となってしまい、右部の余白があるのに削減されて表示されてしまいます。


Pゴシックの出力文字数を上手に制御する方法は何かございませんでしょうか?
もん吉
常連さん
会議室デビュー日: 2008/05/16
投稿数: 36
投稿日時: 2008-09-08 13:29
Pフォントは厳しいんじゃないでしょうか。
Pフォントの仕様は変更不可なのでしょうか。

私の場合、画面だけでなく、帳票なんかでもPフォントを使うのは
避けるようにしています。
力押しでやるなら文字ごとに幅をデータ化して長さを計るとかですかね。
現実味ないですけど。
sawat
大ベテラン
会議室デビュー日: 2006/08/02
投稿数: 112
投稿日時: 2008-09-08 16:31
"..."を出したいなら、CSSのtext-overflowプロパティで対応できるかも。
http://tomizawa-web.hp.infoseek.co.jp/property/textOverflow.htm
どのブラウザが対応しているかはちゃんとしらべてね。

川上
常連さん
会議室デビュー日: 2006/08/18
投稿数: 20
お住まい・勤務地: 東京
投稿日時: 2008-09-08 18:08
もん吉さま、sawatさま、レスありがとうございました。

色々と考えてみた結果、以下のようなロジックを設置してみました。

半角の場合は→1バイト
全角の英数字の場合→1.5バイト (※全角→半角変換が成功する文字)
全角の日本語の場合→2バイト

この仕様だと、15桁(30バイト)を表示する場合に
以前の単純バイト数制御(単純に半角と全角で制御)よりも
幅広(有効活用)して表示されるようになりました。

まだ改善の余地があるとは思いますが、この方法で行きたいと思います。

皆さま、ありがとうございました。
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2008-09-08 19:20
うーん…。「I」と「W」では、だいぶ変わってくるわけですが。
これはサーバ側のロジックでは難しいですね。
バカらしいといえばバカらしいですが、以下のような方法で一応可能です。
<span>等に文字列を入れておいて、JavaScriptで1文字ずつ削り、<span>が規定の幅以内になったらそれを使う。
しましま
常連さん
会議室デビュー日: 2005/01/08
投稿数: 41
投稿日時: 2008-09-08 22:57
.NETって、あまり詳しくないのだけど、サーバーサイドで画像を生成するAPIってあるんじゃないでしょうか?
もしあれば、文字列描画関連のAPIで、文字列の横幅が何ドットなのか取得できそうな気がするのですが。

unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2008-09-09 06:32
引用:

川上さんの書き込み (2008-09-08 11:24) より:
ウェブ上に表示するタイトルで、
横幅の上限があるため出力文字数に制限(上限)を設けようと考えていますが
使用しているフォントが「MS Pゴシック」なので一律の文字数制限では
上手く制御できなく困っています。


「ウェブ上に表示するタイトル」というのが、ちょっと良く分かりません。
HTML の TITLE タグのことではないのですよね?

引用:

川上さんの書き込み (2008-09-08 11:24) より:
例えば、
|2008/09/08 今日は月曜日ですね。| → |2008/09/08 今日は月...   |
となってしまい、右部の余白があるのに削減されて表示されてしまいます。


これはどのコントロールでの表示を言われているのでしょうか?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2008-09-09 21:48
引用:

川上さんの書き込み (2008-09-08 11:24) より:
ウェブ上に表示するタイトルで、
横幅の上限があるため出力文字数に制限(上限)を設けようと考えていますが
使用しているフォントが「MS Pゴシック」なので一律の文字数制限では
上手く制御できなく困っています。


 それは、プロポーショナルでなくても難しいと思います。
 おそらく、IE を使われていると思います。では、うまく表示されていると思われる状態にして、次のようにキーを入力してみてください。(IE7 の場合)
[Alt] [P] [X] [G]

 ベースの文字サイズを変えるオペレーションです。文字サイズによって、表示できる文字の長さが変わったと思います。このオペレーションは、完全にユーザの管理下に置かれています。つまり、サーバ側ではどうしようもありません。
 文字の大きさが変わらないなら、フォント サイズを絶対値で指定していると思います。使用しているディスプレイやその解像度、使用者の視力などによっては、そのサイズでは見にくいこともある、ということに、留意してください。

 「一般に公開するのではなく、限られた範囲のみ」「その範囲には、弱視者、強度の近視など、視力に問題がある人はいない」「現在のみならず、システムの稼働期間すべてに渡って、視覚に問題がある人がシステムにタッチする機会はない」のなら、まじめに考えましょう。
(私は、眼鏡をかければ問題はないと思っているのですが、同僚にエクセルなどで必ず「75%」にしている人がいます。この人がさわった後にエクセルやワードのドキュメントを開くと、見にくくて見にくくて...)
1

スキルアップ/キャリアアップ(JOB@IT)