4

ポルトガル語で書かれたコンテンツを含む Web サイト (Wordpress、HTML、CSS、jQuery) を開発しています。ハイフン付きの単語が多く、行末に来ると半分に分かれます。次に例を示します。

Batata frita pála-
pála, é uma tara de
sabor.

単語がハイフネーションされているかどうかを検出し、行末にある場合は半分に分割しない方法はありますか? 単語全体が次の行に移動するのが理想的ですが、それが不可能な場合は、提案をお待ちしています。このようなもの:

Batata frita
pála-pála, é uma
uma tara de sabor.

私にとって解決策を知ることよりも、それを理解することが重要です。前もって感謝します。

編集

Web サイトは CMS プラットフォームで開発され、コンテンツはクライアントによって挿入され、動的です。クライアントが改行しないハイフン ( HTML ‑) を単独で使用することは期待できません。

4

6 に答える 6

7

すべてのハイフンをNon-Breaking Hyphensに置き換えます。改行なしスペース ( ) と同じ ですが、ハイフンです。

于 2012-07-16T14:45:30.273 に答える
5

(正規表現の分割ではなく) ブラウザー独自のテキスト/HTML コンテンツのラッピングについて話している場合、これを行うには 2 つの方法が考えられます。

  • ‑通常のハイフンの代わりに非改行ハイフン (HTML) を使用する
  • <span style="white-space: nowrap">ラップしたくないセクションを追加します
于 2012-07-16T14:44:18.003 に答える
1

他の人が示唆しているように、通常のハイフンを改行しないものに置き換える必要があります。

これは、CMS によって自動化することができます。

Wordpress の場合、コンテンツ フィルターfunctions.phpテーマに追加できます。

function non_breaking_hyphens($content){
    return str_replace('-', '&#8209;', $content);
}

add_filter('the_content', 'non_breaking_hyphens');

これにより、ブラウザに送信される前に、投稿本文に目的の検索置換が適用されます。

于 2012-07-16T14:56:16.697 に答える
0

質問の更新に関して:

考えられる解決策は3つありますが、簡単な解決策はありません:)

  1. 正規表現を使用してコンテンツを解析します。部分文字列が内にある場合は>....<、使用str_replaceまたはラップイン<nobr>=>エラーが発生しやすく複雑です
  2. コンテンツを使用してDOMDocumentを作成し、DOMをウォークして、すべてのtextNodeを任意の非ブレークソリューションで処理します。=>サーバーリソースにコストがかかる可能性があります
  3. クライアント側:私が見たほとんどのWYSIWYGには、拡張機能用のAPIがあります。非ブレークハイフンを挿入するボタンを追加するか、次のように置き換えるonKeyUpリスナーを追加します-&#8209;
于 2012-07-23T13:08:46.253 に答える
0

いくつかの可能性があります:

<nobr>pála-pála</nobr>
<span class=nobr>pála-pála</span>
pála&#8209;pála

すべてに長所と短所があります ( http://www.cs.tut.fi/~jkorpela/html/nobr.htmlを参照)。

どちらの方法を選択しても、サーバー側またはクライアント側でプロセスの自動化を試みることができます。これは多かれ少なかれプレゼンテーション的なものであるため、クライアント側の JavaScript で十分に実行できると思います。Firefox と同様の戦略を採用することをお勧めします。長いハイフンで囲まれた複合語は分割できます (通常は書式設定が改善されます)。

于 2012-07-16T18:14:42.063 に答える