Создание встроенного элемента HTML «не занимающего места» без каких-либо побочных эффектов, изменяющих макет - PullRequest
0 голосов
/ 25 июня 2019

Я пытался создать элемент, не занимающий места, но все же видимый.Я не хочу каких-либо возможных побочных эффектов изменения макета, что означает, что элементы должны выглядеть точно одинаково после того, как они не занимают места.

Почти все методы, предоставляемые Google,или связанные ответы в StackOverflow, используйте абсолютное позиционирование.Проблема заключается в установке position: absolute для встроенного элемента, на самом деле изменяет его поведение макета.

Возьмем этот действительно простой макет, например:

Простой макет абзаца

Мое намерение состоит в том, чтобы синий текст <span> не занимал пространство.Я установил его на position: absolute:

После абсолютного позиционирования

Из изображения видно, что вторая строка <span> не позиционируется изначало линии больше.Он выровнен до начальной позиции первой строки, которая, как я полагаю, должна была гарантировать, что все <span> остается прямоугольной формы.Но несмотря ни на что, макет был изменен после абсолютного позиционирования.

Некоторые предлагают обернуть контейнер относительной компоновки вокруг <span>, но это не сработает - пока one absoluteконтейнер показывается, макет ломается.


Кстати, я собирался выделить несколько слов в параграфе, инвертировав их color и background-color, и мне пришлосьсделайте две идеальные накладывающиеся копии и стилизуйте их отдельно, чтобы сделать это.Я не могу напрямую ввести один <span>, потому что фон из нескольких строк текста всегда накладывается на предыдущие строки, обрезая спуски этих букв, когда line-height маленький, но это еще одна проблема.

...