Несовместимое абсолютное позиционирование внутри встроенных элементов между браузерами - PullRequest
0 голосов
/ 10 октября 2019

В настоящее время я борюсь с некоторыми различиями между Firefox и Chrome, которые демонстрируют различное поведение при размещении абсолютно позиционированного элемента в относительно позиционированном элементе, который имеет display:inline;.

В Chrome следующий пример помещаетМетка «Foo» в верхней части правой нижней части ввода текста, а в Firefox метка «Foo» помещается поверх текста «Example» над полем ввода.

.box {
  width: 300px;
  border: 1px solid black;
}
.relative-box {
  position: relative;
}
.relative-box::after {
  content: "Foo";
  position: absolute;
  bottom: 0px;
  right: 0px;
  background: #AAA;
}
input[type="text"] {
  display: inline-block;
  width: 260px;
}
<div class="box">
  <label class="container">
    <span class="relative-box">
      Example:
      <input type="text"/>
      </span>
  </label>
</div>

Мне любопытно узнать, есть ли способ сохранить точно такую ​​же функциональность, включая использование <label>, и в то же время получить последовательный рендерингТекст "Foo".

Желательно, чтобы у меня было решение, которое не подразумевало бы изменение display:inline; на что-либо еще, потому что для моих приложений это также могло бы иметь дополнительные нежелательные эффекты.

PS: обратите внимание, что это минимальный рабочий пример. Тот факт, что это выглядит очень недружественным для пользователя, заключается в том, что к этому примеру не применяется много стилей.

Ответы [ 2 ]

0 голосов
/ 10 октября 2019

Firefox сохраняет размер каждой коробки уникальным. Следовательно, размер относительного блока не совпадает с размером входного файла.

Если вы используете display: block в div «lative-box », он будет соответствовать размеру ваших детей в firefox. Таким образом, поведение будет одинаковым в обоих.

0 голосов
/ 10 октября 2019

Вы пытались использовать что-нибудь вроде normalize.css? Это может помочь с несоответствиями, которые вы видите. Вот ссылка на дополнительную информацию - http://nicolasgallagher.com/about-normalize-css/

Некоторые из преимуществ файла normalize.css: Сохраните полезные настройки браузера, а не стирайте их. Нормализуйте стили для широкого диапазона элементов HTML. Исправьте ошибки и распространенные несоответствия браузера. Улучшение удобства использования с небольшими улучшениями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...