2017-08-08 6 views
5

Some languages don't use space. Japanese for example.Is there a CSS solution for removing spaces for non-space using languages?

A typical paragraph might look like this (taken from the Japanese Wikipedia article on Stack Overflow)

本サービスはコンピュータ・プログラミングの広範囲なトピックを扱っていることが特色である。ウェブサイトは質問と回答を行う機能、またそれらに対する評価付け、wikiやdiggに似た文書の編集機能を備えており、ユーザの活発な参加を促している。Stack Overflowのユーザは良質な回答を行うことによって、評価ポイントや「バッヂ」を得ることができ、本サービスは伝統的なQ & Aサイト・フォーラムにゲーミフィケーションを施したものと言える。全てのユーザによる記述内容はクリエイティブ・コモンズライセンス下にある。

Even though there are 3 sentences in the paragraph above the only space in inside Stack Overflow .

So there's the issue. Japanese users generally don't write long sentences and paragraphs with no breaks. To write the paragraph above most people would not write.

<p>本サービスはコンピュータ・プログラミングの広範囲なトピックを扱っていることが特色である。ウェブサイトは質問と回答を行う機能、またそれらに対する評価付け、wikiやdiggに似た文書の編集機能を備えており、ユーザの活発な参加を促している。Stack Overflowのユーザは良質な回答を行うことによって、評価ポイントや「バッヂ」を得ることができ、本サービスは伝統的なQ&Aサイト・フォーラムにゲーミフィケーションを施したものと言える。全てのユーザによる記述内容はクリエイティブ・コモンズライセンス下にある。</p> 

They'd write something more along the lines of

<p> 
本サービスはコンピュータ・プログラミングの広範囲なトピックを扱っていることが特色である。 
ウェブサイトは質問と回答を行う機能、またそれらに対する評価付け、wikiやdiggに似た文書の 
編集機能を備えており、ユーザの活発な参加を促している。Stack Overflowのユーザは 
良質な回答を行うことによって、評価ポイントや「バッヂ」を得ることができ、本サービスは 
伝統的なQ&Aサイト・フォーラムにゲーミフィケーションを施したものと言える。全てのユーザに 
よる記述内容はクリエイティブ・コモンズライセンス下にある。 
</p> 

Which unfortunately becomes this

unwanted gaps

With all these unwanted gaps

The only solution I can think of requires JavaScript to go through and remove spaces between Japanese characters and any other character at display time or by adding a build step.

Is there a CSS only solution?

Here's a live sample: The first paragraph is one long hard to edit line. The 2nd paragraph has the line breaks in it

<p> 
 
本サービスはコンピュータ・プログラミングの広範囲なトピックを扱っていることが特色である。ウェブサイトは質問と回答を行う機能、またそれらに対する評価付け、wikiやdiggに似た文書の編集機能を備えており、ユーザの活発な参加を促している。Stack Overflowのユーザは良質な回答を行うことによって、評価ポイントや「バッヂ」を得ることができ、本サービスは伝統的なQ&Aサイト・フォーラムにゲーミフィケーションを施したものと言える。全てのユーザによる記述内容はクリエイティブ・コモンズライセンス下にある。 
 
</p> 
 

 

 
<p> 
 
本サービスはコンピュータ・プログラミングの広範囲なトピックを扱っていることが特色である。 
 
ウェブサイトは質問と回答を行う機能、またそれらに対する評価付け、wikiやdiggに似た文書の 
 
編集機能を備えており、ユーザの活発な参加を促している。Stack Overflowのユーザは 
 
良質な回答を行うことによって、評価ポイントや「バッヂ」を得ることができ、本サービスは 
 
伝統的なQ&Aサイト・フォーラムにゲーミフィケーションを施したものと言える。全てのユーザに 
 
よる記述内容はクリエイティブ・コモンズライセンス下にある。 
 
</p>

Here are screenshots to show the difference.

1st paragraph with no breaks in HTML

no breaks

2nd with

breaks

Also note that whatever solution it should not collapse the space in Stack Overflow

+0

have you tried letter spacing? https://www.w3schools.com/cssref/pr_text_letter-spacing.asp –

+0

Maybe 'word-spacing: -4px' could do it?1つの解決策は、PHPで行うことができます。 –

+0

具体的には日本語をターゲットにしているのですか?もしそうなら、あなたはどの言語をターゲットにしていますか?いくつかの言語は簡単に整理することができます。たとえば、韓国語は 'word-break:keep-all'で修正できますが、韓国語にはスペースが含まれているため、探している言語と異なる可能性があります。 –

答えて

-1

Use white-space: pre or white-space: pre-wrap

Reference: https://www.w3schools.com/cssref/pr_text_white-space.asp

JSFiddle : https://jsfiddle.net/kqcvp10w/

+0

コンテナを超えてhttps://jsfiddle.net/kqcvp10w/1/ – Kaiido

+0

@gman:これは、インラインコードが、同じ段落のコピーを含めることなく、フィドルを要約するのに十分である非常に例外的なケースの1つと考えられます。その答えの中の日本語のテキスト。どのような場合でも大まかな経験則として、通常は[インラインコードでは十分ではありません](https://meta.stackexchange.com/questions/176902/dont-consider-inline-code-spans-as-code) -for-the-quality-filter)... – BoltClock

+0

これは動作しません。 'pre'は、行が流れないことを意味し、正確には手作業でフォーマットされているだけです。私が探しているものではありません。 'pre-wrap'はさらに悪化します。ウィンドウのサイズを小さくして問題を確認します。 – gman