Home » Html » Optional line-breaking HTML entity that is always invisible

Optional line-breaking HTML entity that is always invisible

Posted by: admin November 30, 2017 Leave a comment

Questions:

I want an optional line-breaking character that is always invisible that works with the word-wrap: break-word; CSS style.

Here are some specifics. My goal is to break apart long links in reasonable places. These characters are a good place to start: -, ., _, /, \. This is not a Rails-specific question, but I wanted to share some code I’m using now:

module ApplicationHelper
  def with_optional_line_breaks(text)
    text.gsub(%r{([-._/\])}, '­')
  end
end

Here’s the problem with the code above: when ­ takes effect (in a table with: word-wrap: break-word;), ­ gets displayed as -. I don’t want to see the -; I want a line break without any character shown.


Answers:

is the HTML entity for a unicode character called the zero-width space (ZWSP).

“In HTML pages, this space can be used as a potential line-break in long words as an alternative to the <wbr> tag.”- Zero-width space – Wikipedia

The <wbr> tag also works, as mentioned by Aaron’s answer. I think I prefer this HTML entity over the tag because the entity seems simpler: unicode handles it, not the web browser.

Questions:
Answers:

<wbr> looks like it does what you want, but it looks like the support for it, and &shy; for that matter, is very inconsistent. So unfortunately, there may not be a particularly good way to do what you want.