Насколько мне известно, только два неразрывных пробела: U + a0 (пространство без разрывов) и U + 202f (узкое пространство без разрывов). Тем не менее, существуют другие используемые пространства, каждое со своим собственным использованием. В качестве разделителя тысяч Unicode Standard 5.0 рекомендует использовать U + 2009 (тонкий пробел), который - «[u] не похож на U + 2002 на U + 2008, его ширина может быть скорректирована при наборе текста» - и, следовательно, является правильным пространством для использования, чтобы он соответствовал любым обоснованиям, приведенным в тексте. (Он также может иметь другое применение, кроме как разделитель тысяч, но затем мы углубимся в типографику, которая относится к дизайну SO.)
Проблема с этим пробелом состоит в том, что он определяется как пробел, и вы не хотите, чтобы слово разрывалось в середине числа. Есть ли способ переопределить определенный символ c, чтобы изменить его поведение, то есть с классом .number { }
? Насколько я знаю, псевдоэлементы не могут выполнять эту задачу, равно как и псевдо-селекторы. Есть ли способ выполнить sh это?
На данный момент я могу подумать только об использовании <span class="thinsp" />
каждый раз, когда требуется пробел, а затем определение класса для выполнения по желанию. , Пример:
HTML:
<p>
The Earth orbits the sun some 149
<span class="thinsp" />597<span class="thinsp" />
870 kilometres away from the sun. Given the speed of light, which is 299
<span class="thinsp" />792<span class="thinsp" />
458 metres per second, … … …
</p>
CSS:
.thinsp {
whitespace: nowrap
}
.thinsp::after {
content: "\2009";
}
Но это приводит к совершенно ужасным HTML
, если у вас много чисел Вы хотите набрать хорошо. Есть ли способ вместо этого переопределить саму природу U + 2009, чтобы не переносить в конце строки?