Подтвердить что ты не робот

Модель обозревателя Internet Explorer - что такое офсет?

Я пытаюсь адаптировать сайт для поддержки IE 7. У меня есть несколько элементов, которые, однако, смещены вправо на 69 пикселей. Я тестирую в IE9, чтобы отображать страницу так, как если бы это был IE7. Когда я включаю режим разработчика и проверяю элемент, я замечаю, что вокруг "поля" есть параметр "offset".

Я никогда не слышал об этом раньше, и Googling не очень помог мне - мне только удалось найти что-то о плавающем смещении, что было не то же самое, но я предполагаю, что он должен был устранить некоторые из проблем режим quirks? Как я могу устранить этот параметр offset?

Очевидно, что у меня установлена ​​специальная таблица стилей IE-7, и вы можете сами проверить эту проблему, перейдя в мою тестовую среду по этой ссылке:

http://suitable.amok-adhoc.com/2012/

Решено:

Нашел решение - это было довольно просто. Просто нужно было явно объявить позицию подобным образом (хотя она была унаследована от родительского элемента во всех других браузерах, IE добавил маржу и назвал ее "смещением", что было отменено, сделав это):

p {
    left:0px;
}
4b9b3361

Ответ 1

Смещение - это расстояние, на которое элемент был перемещен из исходного местоположения. Это видно, когда вы позиционируете элемент как относительный, так и абсолютный с значениями left, top, bottom и/или right. В качестве примера возьмем следующий код:

#header {
    top: 3em;
    left: 3em;
    position: relative;
}

Если мы проверим этот элемент в Internet Explorer 10, мы увидим смещение, которое вы упомянули. Значения em были преобразованы в пиксели, но эффект все еще виден. Обратите внимание, что мы видим что-то подобное в Chrome Developer Tools (также в Opera), но вместо этого оно помечено как "позиция":

enter image description hereenter image description here

Как ни странно, Firefox даже не может сообщать о смещении/позиции по их иллюстрации:

enter image description here

В конце концов, это проблема простой семантики. Будем ли мы называть это "смещением" или "позицией", это все равно одно и то же; это расстояние от исходного местоположения на экране.

Надеюсь, что это поможет.

Ответ 2

Это кажется странным, но вы можете попробовать установить vertical-align: top в CSS для ввода. Это исправляет его в IE8, по крайней мере.

Ответ 3

У меня была аналогичная проблема, моя ширина заголовка заголовка не отображалась корректно (появлялась в ширине сокращений), после некоторой отладки я понял, что добавил rem Poly-fill, которая создавала проблему для меня. Я тоже использовал meta(http-equiv="x-ua-compatible" content="IE=Edge,chrome=1").

После удаления файла rem-polyfil JS он начал работать правильно для меня.

Ответ 4

Вы можете попробовать: position: -ms-device-fixed; этот трюк помогает мне.