Мне нужно закруглить углы родительского элемента div, чтобы замаскировать содержимое от его ребенка. overflow: hidden
работает в простых ситуациях, но ломается в браузерах на основе webkit и в Opera, когда родительский элемент позиционируется относительно или абсолютно.
Это работает в Firefox и IE9:
CSS
#wrapper {
width: 300px;
height: 300px;
border-radius: 100px;
overflow: hidden;
position: absolute;
}
#box {
width: 300px;
height: 300px;
background-color: #cde;
}
HTML
<div id="wrapper">
<div id="box"></div>
</div>
Спасибо за помощь!
ОБНОВЛЕНИЕ: ошибка, вызывающая эту проблему, была исправлена в Chrome. Однако я не перепроверял Opera или Safari.
источник
Добавьте z-index к элементу border-radius, и он замаскирует вещи внутри него.
источник
-webkit-mask-image: -webkit-radial-gradient(circle, white, black);
Это был эффективный обходной путь, но, к счастью, ошибка была исправлена в последнем обновлении, которое я получил для Chrome.Не смотря ни на что, мне удалось решить проблему, добавив дополнительный div между оболочкой и коробкой.
CSS
HTML
Спасибо всем, кто помог!
→ http://jsfiddle.net/5fwjp/
источник
непрозрачность: 0,99; на обертке решить баг webkit
источник
transform: translateY(0);
является альтернативой, которая достигает того же результата, не влияя на визуальное представление объекта (если вы не используете перспективу).Кажется, это работает:
http://jsfiddle.net/qWdf6/82/
источник
transform: translateZ(0)
мне достаточно.translateZ
) неявно включит аппаратное ускорение для ваших элементов, что, к сожалению, в некоторых случаях открывает новую банку с червями.transform: translateZ(0)
тоже работал на меня. В моем случае это неплохая идея, что этот пункт аппаратно ускорен.Поддерживается в последних Chrome, Opera и Safari, вы можете сделать это:
Вы обязательно должны проверить инструмент http://bennettfeely.com/clippy/ !
источник
Не ответ, но это ошибка в источнике Chromium: http://code.google.com/p/chromium/issues/detail?id=62363
К сожалению, не похоже, что кто-то работает над этим. :(
источник
измените непрозрачность родительского элемента с рамкой, и это позволит организовать упорядоченные элементы. Это чудесно сработало для меня после нескольких часов исследований и неудачных попыток. Это было так же просто, как добавить непрозрачность 0,99, чтобы реорганизовать этот процесс рисования в браузерах. Проверьте http://philipwalton.com/articles/what-no-one-told-you-about-z-index/
источник
На мой взгляд, ни одно из решений не сработало, только с использованием:
на элемент обертки сделал свою работу.
Вот пример: http://jsfiddle.net/gpawlik/qWdf6/74/
источник
основанный на превосходном ответе серой вороны ...
Вот более реальный пример, в котором есть два специальных элемента с некоторым содержанием наполнителя. Я заменил жестко запрограммированный фон png на шестнадцатеричное значение, т.е.
заменяется на
Смотрите это JSFiddle ... http://jsfiddle.net/hqLkA/
источник
Вот посмотрите, как я это сделал; Jsfiddle
С помощью кода, который я вставил, мне удалось заставить его работать на Webkit (Chrome / Safari) и Firefox.
Я не знаю, работает ли он с последней версией Opera.Да, он работает под последней версией Opera.источник
border-radius
вообще ставить обертку в такой ситуации, вы получите тот же результат, просто включив ее#box
. Кроме того, если#box
радиус границы предназначен только для исправления WebKit, вы можете просто включить это-webkit-
свойство.Я попробовал каждый ответ, но безуспешно. После нескольких часов исследований я нашел решение этой проблемы. Использование этих свойств в вашем классе не позволит элементам div переполнять контейнер.
источник
Если вы хотите создать маску для изображения и расположить изображение внутри контейнера, не устанавливайте атрибут 'position: absolute'. Все, что вам нужно сделать, это изменить поля слева и поля справа. Chrome / Opera будет придерживаться правил переполнения: скрытый и радиус границы.
источник