コンテンツ管理 textarea 項目の改行の認識がおかしい? Ver.0.9.5a

ユーザーさんによるシステムの不具合報告です。できるだけ状況を詳しくご報告ください。

モデレータ: webmaster

返信
kkn
アクティブユーザー
記事: 20
登録日時: 2005年2月20日(日) 10:04

コンテンツ管理 textarea 項目の改行の認識がおかしい? Ver.0.9.5a

投稿記事 by kkn » 2005年2月23日(水) 23:45

不具合なのかわかりませんが,一応。

コンテンツ管理の textarea に文章を入力する際,
<span> や <em> など HTML タグを使うとそのタグを閉じた直後の改行が認識されない場合があるようです。

例えば,
コンテンツ管理画面には

<span class="green">◇ 出産手当金</span>

産前 ・ 産後休暇で給料がもらえない時, 休暇期間(日)に応じて, 1 日あたり標準報酬日額の 60% もらえる。

と入力してありますが,

表示結果は

◇ 出産手当金
産前 ・ 産後休暇で給料がもらえない時, 休暇期間(日)に応じて, 1 日あたり標準報酬日額の 60% もらえる。

となります。タグの直後の改行が認識されていません。
(スキーマでの設定は output="html2" です。)

試しに上記の <span> タグを外したところ,改行が認識され,表示結果で一行の空行が空きました。

この現象が 100%の再現性なのかちょっとよく分らないです。>すみません;
頻繁にある事は確かなようです。


又,<div> で囲った <table> を記述した場所があるのですが,
通常の HTML を記述する感覚で

<div style="padding-right: 25px; padding-left: 25px;">
<table border="1" cellpadding="3" cellspacing="0">
<tr>
<th nowrap="nowrap">BPD</th><td>
・・・・・・(略)

のように記述したせいか,表示結果でやけに上部が開いた状態になってしまいました。

表示結果のソースを,選択部分の参照にすると,

<div style="padding-right: 25px; padding-left: 25px;"> と
<table border="1" cellpadding="3" cellspacing="0"> の間に

<br>が2つ入っていました。

※但し,ソースの選択部分の参照でなく “ページのソースを表示" にした場合は,<br />は入っていませんでした。(この辺はちょっと私には?です)

どちらにしろ,タグが入った場合の自動改行の処理がうまくいっていないのか,
または使う側(私)の認識とズレがありそうです。

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: コンテンツ管理 textarea 項目の改行の認識がおかしい? Ver.0.9.5a

投稿記事 by webmaster » 2005年2月24日(木) 00:10

 webmasterです。
 こういうご質問は、なかなか作っている側からは気づけないので助かります。

 いちおうこの現象は「仕様」となります。
 が、分かりづらいですね・・・。どこかに書いておかないと・・・。

 詳しく説明しますと、"html2"の設定にすると、改行が自動的に<br />に変換
されますが、ある条件の場合には<br />がつきません。
 それは、

 ・行末が">"で終わっている。
 ・又は、<pre></pre>で囲ってある範囲。

 という条件です。
 これは、例えばTABLEタグなどを入力した場合に、行末に<br />が付くと
ほとんどの場合に非常に困る為です。

 この辺は、改行を空白とみなすHTMLの仕様との折り合いとしてどうしようも
ない部分かな・・・と諦めております。

 また、<pre></pre>の部分は基本的には改行はそのまま改行して表示
されますから、わざわざ<br />を付ける必要がなく、<br />を付ける処理から
外しています。

 行末が">"で終わっている場合にも改行をしたい場合は、行末に空白を
入れるとか、もしくは直接<br />と記述してしまってくださいませ。
 ちょっと分かりにくいですが、仕様として受け入れて頂ければと思います。

 (又は、こうした方がいいんじゃないかというご意見もお待ちしています)

 divで囲ったtableの件については、上記の仕様から考えると<br />が
入ることは無いとは思うのですが、うーん、なぜでしょう・・?

 「選択部分のソースを表示」ということは、firefoxか何かをお使いですか?
 この機能はどうやら自動的にタグを付け足したりするそうなので、実際の
出力内容を確認するのには向かないかもしれません。

 また情報がありましたらご連絡頂ければ幸いです。

kkn
アクティブユーザー
記事: 20
登録日時: 2005年2月20日(日) 10:04

Re: コンテンツ管理 textarea 項目の改行の認識がおかしい? Ver.0.9.5a

投稿記事 by kkn » 2005年2月24日(木) 11:07

仕様だったのですね。
いろいろやっているうちにそうかも知れない,と思ったりもしたのですが (- -;
お騒がせしたようですみません。
TABLEタグが入った場合に TD TR で改行されてしまう事を回避するのは必要ですものね。

>行末が">"で終わっている場合にも改行をしたい場合は、行末に空白を
>入れるとか、もしくは直接<br />と記述してしまってくださいませ。

了解しました。
閉じタグの後は改行を有効にすればいいかな,とも思いましたが,
先のTR TD のように例外が必要になるので
仕様として理解していれば現状がいいかと思いました。
(直接<br />と記述する回避はいい事を聞いた,という感じです。)


>「選択部分のソースを表示」ということは、firefoxか何かをお使いですか?
>この機能はどうやら自動的にタグを付け足したりするそうなので、実際の
>出力内容を確認するのには向かないかもしれません。

通常,Netscape または Firefox を使用しています。
ブラウザが勝手に手を加える(?)というのは何となく察している程度でした。
多分おっしゃる通りだと思います。

ただ今回の場合,textarea でそんなに空けていないつもりが
表示だとやけに段落間が空いてしまい 「なんか変だな〜?」 と思った次第です。
でも,スタイルシートの影響とかそういのもありそうなのでもっとよく検証する事にします。
(スタイルシートとか,ブラウザによる表示の違いとかももっと勉強しないとダメですね;)

お忙しいところ失礼いたしました。ご返信ありがとうございました。

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: コンテンツ管理 textarea 項目の改行の認識がおかしい? Ver.0.9.5a

投稿記事 by webmaster » 2005年2月24日(木) 17:46

 webmasterです。
 いえいえ、こういうご指摘は今後の修正の方向性を決めるのに大いに参考に
なります。 :)

 本当は、タグの種別まで判断して、tableタグやtd、tr、divならば改行しない、
それ以外なら改行する、とかやればいいのでしょうが、それなりに複雑な処理に
なる為、そこで変な不具合が発生したり、パフォーマンス低下を招いたりする
よりは・・・という、妥協案になっています。

 余白が空いてしまう件は、ひょっとすると半角空白だと思っていたところに
全角空白が入っていたりとか・・・いや、おそらく無いとは思うのですが、
もしかしたらということで。
 CSSかどうかの判断は、divとtableのスタイルに

border : 1px solid black;

 のように、ボーダーを指定すると、状況がよりはっきりするかもしれません。
 その上で、余白とマージンをゼロにしてみて、それでも空間が空くのであれば、
何らかの不具合である可能性があります。

padding : 0;
margin : 0;

 また状況が変わりましたらご連絡くださいませ。m(_ _)m

返信