CSS Border radius не обрезает изображение на Webkit - PullRequest
12 голосов
/ 03 января 2012

У меня проблемы с выяснением, почему border-radius исчез из моего элемента #screen при использовании chrome, а не firefox или ie9?

У меня есть все разные префиксы для каждого браузера плюс стандартный border-radius:

www.cenquizqui.com

Верхнее поле содержимого, содержащее картинки, называемое # screen

копия вставки css экрана:

#screen {background: none repeat scroll 0 0 #EEEEEE;
    display: block;
    height: 300px;
    position: relative;
    width: 960px;
    overflow:hidden;
    -moz-border-radius:10px;
    -webkit-border-radius:10px;
    -o-border-radius:10px;
    border-radius:10px;}

Это связано с тем, что Chrome неправильно обрабатывает «обрезку» изображений? Я думал, что это проблема только тогда, когда у вас есть фактические теги внутри контейнера с закругленными углами, а не когда img вызывается как background-image через css.

С уважением G.Campos

Ответы [ 6 ]

29 голосов
/ 14 января 2015

Вот обходной путь, который исправит текущую ошибку Chrome:

.element-that-holds-pictures {
   perspective: 1px; /* any non-zero value will work */
}

Это никак не повлияет на отображение (в отличие от обходного пути opacity:0.99, который, кстати, тоже неплохой).

9 голосов
/ 12 января 2012

Webkit не может обрабатывать кадрирование по радиусу границы для детей и внуков. Это просто так плохо. Если вы хотите обрезать границы, это должно быть непосредственно в том месте, где находится изображение, не углубляясь в иерархию.

3 голосов
/ 25 августа 2015

Существует гораздо более простое решение.

Просто добавьте overflow:hidden к контейнеру, который имеет border-radius и содержит дочерние элементы. Это препятствует тому, чтобы дети «текли» по контейнеру. Таким образом, исправляя проблему и показывая border-radius

1 голос
/ 22 ноября 2014

Попробуйте следующее css для дочерних элементов элемента с установленным border-radius: opacity:0.99; Это решает проблему и не сильно меняет непрозрачность.Это отлично сработало для меня.

0 голосов
/ 03 января 2012

У него очень большой радиус границы:

enter image description here

(я только что добавил границу с панелью инструментов Chrome dev).

Радиус границы не меняется• ограничить его содержимое до результирующей области - пространство вне углов по-прежнему может быть занято содержимым элемента.

Я бы порекомендовал наложить изображение, у которого углы были вырезаны таким образом (и затем использоватькарта или все, что вам удобно, чтобы все еще включить стрелки влево / вправо).

0 голосов
/ 03 января 2012

Похоже, вам нужно применить радиус границы к элементу li:

#slides li {
display: block;
float: left;
height: 300px;
width: 960px;
position: relative;
border-radius: 10px;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...