Safari реализует display:none иначе, чем в других браузерах

Проблема: у меня есть ошибка CSS, которая возникает только в Safari, а не в любом другом браузере (назад к IE8). Это не вызвано экспериментальной/неподдерживаемой функцией, поэтому прослушивание функций не является решением. По сути, кажется, что display:hidden и display:table реализуются неправильно.

Я рассматривал возможность загрузки отдельной таблицы стилей для Safari, но ненадежность прослушивания браузером — это не то, от чего я хочу зависеть.

Подробности. У меня есть текстовое поле, которое применяется display:hidden при наведении курсора на другой элемент. Текстовое поле больше не отображается, но кажется, что оно взаимодействует с другими элементами на странице, так как отображаемый вместо этого элемент смещается вниз по странице. Я знаю, что это должно быть невозможно, но не могу понять, почему остальные элементы затронуты.

JSBin

Этот JSBIN демонстрирует, что страница отлично работает, как и предполагалось, в Chrome, Firefox, Opera, IE, проверенном ранее. для IE8 и некоторых мобильных браузеров. Однако при открытии в Safari (и страница достаточно широка, чтобы разместить оба элемента textarea в одной строке) элементы перетасовываются при применении эффектов наведения.

Может ли кто-нибудь определить, в чем здесь проблема или что можно изменить, чтобы сделать ее согласованной с браузером?


person Rory    schedule 23.07.2015    source источник


Ответы (1)


Контейнеру .my-box присвоено значение display: inline-block. Значение по умолчанию для вертикального выравнивания в CSS — baseline. Safari каким-то образом выравнивает содержащиеся элементы (с display: table и display: inline-block) в .my-box, в отличие от других браузеров. Вы можете заставить Safari (и все другие браузеры) выровнять все элементы по верхнему краю, используя этот CSS:

.my-box {
     vertical-align: top;
}

Демо

Попробуйте перед покупкой

person insertusernamehere    schedule 23.07.2015
comment
С некоторыми другими незначительными правками это позволило мне наконец решить проблему. Спасибо! - person Rory; 23.07.2015