KG Software Library

Firefoxにおけるword-breakの代わりになるもの

Page :: FSWiki / Tips / word-break

このエントリーをはてなブックマークに追加


概要

Firefoxで表示する際、word-break:break-all;が利用できずレイアウトが崩れる事がよくある。当サイトも当初は左メニューから英単語がはみ出してしまっていた。

上記設定はIEでは有効で、ブロック要素の範囲からはみ出す部分を折り返すようになる。Forefoxでは、折り返さず、はみ出してしまう。

  • Q.かっこ悪いはみ出しを抑制するにはどうすればいいか?
  • A.<wbr>タグを使いましょう。

<wbr>タグとは任意の位置で改行してもいいですよという機能である。

じゃぁ、どこに入れる?

ここです↓。

修正箇所

Wiki/HTMLParser.pm (FSWiki-3.5.10)
--- lib\Wiki\HTMLParser.pm.org Tue Dec 06 01:02:35 2005
+++ lib\Wiki\HTMLParser.pm Wed Apr 05 12:53:34 2006
@@ -415,12 +415,14 @@ if($url eq $name && $url=~/\.(gif|jpg|jpeg|bmp|png)$/i){ return "<img src=\"".$url."\">"; } else {
+ $name = &Util::escapeHTML($name); + $name =~ s/\//\/<wbr>/g;
if($self->{wiki}->config('open_new_window')==1 && ($self->{wiki}->config('inside_same_window')==0 || ($self->{wiki}->config('inside_same_window')==1 && index($url,'://') > 0))){
- return "<a href=\"$url\" target=\"_blank\">".Util::escapeHTML($name)."</a>";
+ return "<a href=\"$url\" target=\"_blank\">".$name."</a>";
} else {
- return "<a href=\"$url\">".Util::escapeHTML($name)."</a>";
+ return "<a href=\"$url\">".$name."</a>";
} } } @@ -436,11 +438,13 @@ if(!defined($name) || $name eq ""){ $name = $page; }
+ $name = &Util::escapeHTML($name); + $name =~ s/\//\/<wbr>/g;
if($self->{wiki}->page_exists($page)){ return "<a href=\"".$self->{wiki}->config('script_name')."?page=".&Util::url_encode($page)."\" class=\"wikipage\">".
- &Util::escapeHTML($name)."</a>";
+ $name."</a>";
} else {
- return "<span class=\"nopage\">".&Util::escapeHTML($name)."</span>".
+ return "<span class=\"nopage\">".$name."</span>".
"<a href=\"".$self->{wiki}->config('script_name')."?page=".&Util::url_encode($page)."\">?</a>"; } }

これで、"/" のところで改行されるようになります。というところで、左側のメニューなどではちゃんと改行されているでしょ?

サイト構成の利用状況等で"_"や","や"-"などでも改行されるようにすれば良いかもしれませんね。

Comment
お名前: コメント:

最終更新時間:2006/04/05-13:01:48