2011-07-24 3 views
1

contentEditableドキュメントのためにOperaでEnter/Returnキーで改行がスペースとして表示されたり消えたりするのはなぜですか?なぜ改行は空白に変わるのか、あるいはcontentEditable文書のためにOperaで消えるのですか?

このデモを試してみてください:

<!DOCTYPE html> 
<html> 
<head> 
<title>contentEditable demo</title> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
</head> 
<body contenteditable="true" spellcheck="true" dir="ltr"> 
<h1>Welcome to the contentEditable demo!</h1><p><span style="font-size: xx-large"> 
Try<span style="font-size: small">to type some text before the word "Try". You will see that random spaces are inserted before the word. Press Enter; you will see that the newline on the top disappears.</span></span></p></body> 
</html> 

オペラ11.50ビルド1074のWindows Vista上で

は、このオペラのバグですか?私は、なぜこれらのリンクから発見された可能性があることを考えるのWindowsのInternet Explorer 8、サファリ、Google Chromeの、またはFirefox 5

答えて

4

でこのバグは発生しませんでした:

[WHATWG]のcontentEditableに折りたたまれた空白の扱い:行末の

http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2011-June/032187.html

  • NBSPは、長い最後の言葉になりますので、あなたは、スペースを打ったとき、ラインかもしれない上最後の言葉次の行にジャンプします。次に 文字を入力すると、nbspが通常のスペースに変換され、 という単語が前の行にジャンプします。は(私はオペラでこれを観察 はIEとGeckoが、これを回避するためにいくつかの特別なケースを持っているように思われる;。WebKitの は私が後で注意しましょう、より一般的なハックでそれを回避することができます。)
  • 直前に巻き取るNBSP単語は、行開始の際に字下げされます()。 Geckoはこのケースを避けるために非常に 注意するようだが、他のすべてのエンジンは、時にはそれを行います。
  • スペースの一部が空白で、一部がnbspのものであれば、行の先頭にnbspが入ることがあります。したがって、あなたは、2番目の単語はをインデントすることができます いくつかのケースでは、どのような理由のための2つの単語の間に 3つのスペースを入力した場合。これはおそらくユーザが望むものではありません。

バグ13011 - [編集] "空白:事前ラップ" を使用して、著者を奨励= "" と.designMode =真のcontentEditableのために:

https://www.w3.org/Bugs/Public/show_bug.cgi?id=13011

例事前にラップなしの潜在的な問題の:もしユーザーが の間に2つのスペースで「FOOバー」、 「FOO  バー」または「FOO  バー」のいずれかになります。最初のケースでは、「FOO  」 だけでは、「foo」が 現在の行に合うことができるにもかかわらず、次の行に折り返さかもしれません。第2のケースで、「 バーが」行を開始した場合、それ は目に見えてをインデントされます。

ベストでページ編集者のための実践:前者の場合には

http://developers.whatwg.org/editing.html#best-practices-for-in-page-editors

、 "yellow⍽" の次の行( "⍽" を表すためにここ を使用されることに包むかもしれませんたとえ "黄色" が単独で行の終わりに収まるかもしれません。後者の場合、 "⍽ball"、 の行の先頭にラップされている場合、は、目立たない隙間からの可視インデント を表示します。

関連する問題