Должно ли содержимое SVG быть видно за пределами встроенного по умолчанию? [закрытый]
в прошлом я ответил на вопрос о том, "кто был неправ" в отношении изображений SVG, которые не были "обрезаны" (overflow: hidden
) в IE9, где это сделали все остальные поддерживающие браузеры. Ответ здесь.
сегодня, просматривая шаблон HTML5 снова, я заметил, что они утверждают, что они "[правильно] переполнение не скрыто в IE9" С этот кусок кода:
svg:not(:root) { overflow: hidden; }
Я ищу кого-то, чтобы подтвердить или опровергнуть мои оригинальные исследования, указывая на некоторые другие примечания в спецификациях HTML5 или SVG. Я ничего не могу найти, но хочу быть уверенным, что ничего не упустил.
лучшее, что я могу найти, это то, что они пытаются применить правило 7 здесь, но это должно применяться только к документу SVG, например, через img
тег или при загрузке напрямую.
2 ответов
спецификация SVG имеет это, чтобы сказать:http://www.w3.org/TR/SVG/styling.html#UAStyleSheet
похоже на то, что Firefox и Chrome не делают?
ваш первоначальный ответ кажется мне разумным, используя указанные вами основания (в частности, пятый и седьмой пунктыспец).
кажется невероятно маловероятным, что IE является правильным, а Webkit и Firefox-нет. Однако, как вы подозреваете, седьмой пункт is дифференцирующим фактором.
если вы загружаете этот тест в Chrome и используйте инструменты разработчика для проверки SVG, вы будете см.:
(user agent stylesheet)
svg:not(:root), symbol, image, marker, pattern, foreignObject { overflow: hidden; }
если вы включите "Show User Agent CSS" в Firebug, вы увидите это правило в Firefox:
svg.css (line 49) <System>
svg:not(:root), symbol, image, marker, pattern, foreignObject { overflow: hidden; }
наконец, если вы изменить тестовый случай, чтобы добавить svg { overflow:hidden }
тогда IE визуально соответствует другим браузерам.
таким образом, мне кажется, что все три браузера ведут себя в соответствии со спецификацией, но Chrome / Safari / FF все имеют Правила UA, которые более точно соответствуют тому, что ожидает большинство пользователей.
если бы я мог оставить достаточно хорошо в покое, вот где я остановил бы этот ответ.
однако, если вы отредактируйте тестовый набор, чтобы добавить svg { overflow:visible }
, как Chrome, так и Firefox не "правильно" показывают переполненное содержимое. Я не уверен, как решить эту точку данных с остальной частью этого ответа. :/