Есть ли альтернатива свойству bikeshedding
CSS3? Кажется, он еще не поддерживается.
Альтернатива свойству CSS3 bikeshedding?
Ответы (4)
Свойство пробела
В CSS3 свойство white-space
является сокращением для свойств white-space-collapsing
(думаю, bikeshedding
означает, что они еще не знают, как его назвать) и свойств text-wrap
. Свойство white-space
— это свойство CSS 2.1, поддерживаемое большинством браузеров, и для него есть два значения, которые сворачивают новые строки:
normal
(начальное значение).nowrap
Но что означают свернутые символы перевода строки?
Согласно CSS 2.1:
Если для 'white-space' установлено значение 'normal' или 'nowrap', символы перевода строки преобразуются для цели рендеринга в один из следующих символов: символ пробела, символ пробела нулевой ширины (U+200B) или отсутствие символа ( т. е. не визуализируется) в соответствии с алгоритмами, специфичными для UA, на основе сценария контента.
Согласно CSS 3:
Пробел нулевой ширины до или после последовательности пробелов, содержащей новую строку, приводит к тому, что вся последовательность пробелов схлопывается в пробел нулевой ширины.
Реальность:
Большинство браузеров преобразуют символы перевода строки в пробел. Итак, что вам действительно нужно, так это установить для свойства white-space-collapsing
значение discard
, а не collapse
или collapse
, а затем добавить пробел нулевой ширины перед разрывом строки.
Что делать до поддержки браузера
Удалите пробелы из вашего HTML-документа:
<span>A</span>
<span>B</span>
To:
<span>A</span><span>B</span>
Or:
<span>A</span><span>
B</span>
<span>A</span [linebreak] ><span>B</span
- person Killroy; 08.02.2017
Всегда есть самое очевидное решение — просто удалить пробелы в HTML:
http://jsfiddle.net/F3Mdd/1/ — это очень просто и просто работает . Из этого:
<div>a</div>
<div>a</div>
к этому:
<div>a</div><div>a</div>
Вот более подробный ответ.
Честно говоря, я всегда просто удаляю пробелы...
Другой подход состоит в том, чтобы просто дождаться этой функции CSS3 и удалить пробелы с помощью Javascript до тех пор.
$('[data-bikeshedding="discard"]').each (function () {
var node = $(this);
node.html (node.find ('> *').detach ());
});
Если я вас правильно понял, вы имеете в виду свойство text-spacing
.
Насколько я могу судить, поддержки не так много.
css3-text
документе, на который я ссылался. xanthir.com /feed/public-css-коммиты/ - person rockerest   schedule 15.06.2011bikeshedding: collapse;
. - person Gajus   schedule 15.06.2011bikeshedding: collapse
? - person thirtydot   schedule 15.06.2011<inline element />\r\n<inline element \>
. Разрыв строки между двумя встроенными элементами создает пробел, который я пытаюсь удалить.bikeshedding
должен был это сделать. Странное имя,bikeshedding
, а? - person Gajus   schedule 15.06.2011span
. Я просто хочу убедиться, что мы на одной волне, спасибо. - person thirtydot   schedule 15.06.2011