HTML: Soft hyphen (­) without dash?

2020-03-12 03:11发布

问题:

I have a little layout problem: on a clients website, we show contact information of people in a little box. The width of that box is constrained. As it happens, there are people with very long names (this is in Germany, after all...), and the email address is a concatenation of the given name and family name. The result: with certain names, the email address overflows the constraints given by the about box.

Inserting a ­ before the @results in the correct line break, but looks like this:

john.doe-
@example.com

Is it possible to suppress that dash? I don't want to use <br />, because for 90% of the names, the available width is more than enough.

回答1:

Though I'm not sure how this does cross-browser (probably pretty well), you could always use the thin space character (&thinsp;) or the zero-width space (&#8203;).++

john.doe&thinsp;@example.com

++ I would not suggest using the zero-width space, as apparently some browsers will not render it correctly (source).



回答2:

Use a zero-width space: &#8203;

john.doe&#8203;@example.com

In action here: http://jsfiddle.net/uTXwx/1/



回答3:

You may want to have a look on css property word-wrap.

And this page seems to be doing what you want.



回答4:

If you're willing to drop support for Internet Explorer 11, then you can use the <wbr> element. This is probably superior to using the zero-width-space, because it won't be copied into the clipboard.

See it in action here

MDN documentation