This specific behavior is actually controlled by the browser itself, independent of CKEditor.
The truth is, representing a space at the end of a block in HTML can be quite tricky. In most cases, without using pre-formatted blocks, the only way to do so would be:
<p>Hello </p>
So when you add a space at the end of a block, Chrome and Safari typically convert it into this HTML code. However, if you start typing another word immediately after, you might end up with something like:
<p>Hello World!</p>
But what if you wanted a regular space between those words instead? This is where Chrome and Safari replace the with a normal space as you continue typing, unless they lose context and leave you with unwanted s causing issues.
In contrast, IE and FF handle this differently. They simply insert a standard space (or potentially nothing at all) when you hit the spacebar, even though this space may not be visible outside of contentEditable
. It's not the perfect solution, but it's the workaround implemented by these browsers.
If you're looking for a potential fix, one idea could involve styling your content following the guidelines outlined in How to preserve white spaces in content editable div, then modifying CKEditor's parser to retain whitespaces at block boundaries. Keep in mind that adjusting CKEditor's parser functionality is no easy task and will require some serious code modifications.