Меня интересует странное поведение рендеринга в Safari 5.1. В двухколоночном макете первая колонка имеет фиксированную ширину, а вторая должна занимать оставшуюся часть.
HTML:
<div class="row">
<div class="left">
<p>Left</p>
</div>
<div class="right">
<p>Right. Some more text here, to show how odd the line breaks...</p>
</div>
</div>
CSS:
.row { width: 300px; background: yellow; overflow: hidden; }
.left { width: 100px; background: red; float: left; }
.right { margin-left: 100px; background: green; overflow: hidden; }
Это прекрасно работает в большинстве браузеров (во всех «современных» браузерах, как я думал), но теперь я обнаружил, что Safari 5 добавляет непреднамеренное правое поле во второй столбец той же ширины, что и предполагаемое левое поле (как будто там были .right { margin-right: 100px; }
правилом).
Большинство браузеров:
Safari5: (проверено на 5.1.7, но встречается и на 5.1.9)
Когда я удаляю overflow: hidden;
, он работает нормально, но мне это нужно для других внутренних элементов.
Мой вопрос не в том, как изменить этот небольшой пример, а в следующем:
- Является ли это ошибкой Safari-5 или мои правила CSS как-то неверны, даже если они «работают» в большинстве браузеров?
- Если это ошибка, есть ли у нее имя, с помощью которого я могу поискать обходные пути?
- Могу ли я каким-то образом определить, на какие браузеры влияет такое поведение, чтобы определить для них некоторые правила исключения.
Обновление: стандартный браузер Android (Galaxy S3, AppleWebKit 534.30), похоже, использует тот же старый движок webkit. Появляется такое же странное правое поле: http://jsfiddle.net/MvF3V/1/embedded/result/
overflow: hidden;
. Я мог бы использовать решение для очистки, но все же мне любопытно, почему происходит этот странный рендеринг. - person Beat Sprenger   schedule 17.01.2014This works great on most browsers
...что ты имеешь в виду??? я сомневаюсь, что это ошибка браузера .... можете ли вы подробнее рассказать о выделенной части, потому что вы не используете какой-либо css3/vendor-prefix, поэтому он должен работать во всех браузерах!! - person NoobEditor   schedule 17.01.2014hard-reset
никогда не предлагается, как вы показали в своей скрипке !! :) - person NoobEditor   schedule 17.01.2014this works great on most browsers
я пытаюсь сказать во всех браузерах, включая Safari 7 и Safari 6, но не в Safari 5 (который по-прежнему является самой популярной версией Safari согласно gs.statcounter.com). Я тоже сомневаюсь, что это баг браузера, поэтому ищу объяснения, которых нигде не могу найти. Конечно, есть обходные пути, такие как решение @Eras. Мне любопытно, если кто-то еще знает об этой проблеме. Если нет, вы и Era можете сформулировать свои обходные пути в качестве ответов, которые я затем приму... Большое спасибо! - person Beat Sprenger   schedule 17.01.2014