- webkit-border-radius не обрезает изображение должным образом

У меня есть 5 браузеров для рендеринга HTML-кодированных страниц: IE9, Firefox 4.0 и все новейшие версии Chrome, Safari и Opera. Теперь в IE9 и Firefox 4.0 изображение обрезается должным образом с помощью border-radius: and-moz-border-radius: но терпит неудачу в Opera, Chrome и Safari с помощью-webkit-border-radius:. С Opera изображение вообще не обрезается, а с Safari и Chrome изображение несколько обрезается, но граница обрезается как что ж.

.nonTyp{
margin: 15px 15px 15px 15px;
border:4px inset #C1C8DD;
border-radius:25px;
-moz-border-radius:25px;
-webkit-border-radius:25px;
width:200px;
height:200px;

}

Если у вас есть один из 3 браузеров, упомянутых в use-webkit-border-radius: пожалуйста, просмотрите изображения, например, с чем у меня проблема: Графика Страницы

5 ответов


что вы могли бы сделать, это поставить все стили, которые находятся на <img> тег теперь, на родителя <a> вместо того чтобы использовать его в качестве контейнера для изображения. Это, по крайней мере для меня, тоже имеет смысл. Не забудьте сохранить float: left на изображении, чтобы избавиться от фантомного нижнего поля.


Я думаю, это потому, что он находится на переднем плане над границей

попробуйте использовать тот же код, что и выше, но в вашем html:

<div class="nonTyp" style="background-image:url('image.jpg');"></div>

Это, вероятно, связано с порядком, в котором применяется зажим границы против радиуса, но очень странно. Решение состоит в том, чтобы переместить радиус границы и связанные определения в заключительный тег. Не забудьте указать display:block поэтому он рассматривается как уровень блока во всех браузерах.


это работает для меня в Chrome и Safari.

изображение верхнего уровня.

div.someclass с радиусом 5px и div.someclass img с радиусом 4px.

это, кажется, делает углы выглядеть чище в Chrome и Safari.

.someclass {
  ...
  border: 1px solid #000;
  -webkit-border-radius: 5px;
     -moz-border-radius: 5px; 
          border-radius: 5px;
  -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box; 
  -webkit-box-shadow: 0px 0px 5px #000; 
     -moz-box-shadow: 0px 0px 5px #000;
          box-shadow: 0px 0px 5px #000; 
}

.someclass img {
  ...
  -webkit-border-radius: 4px;
     -moz-border-radius: 4px; 
          border-radius: 4px;   
}

Я думаю, что функции рисования, которые Chrome использует для изображения и ссылки, работают по-разному друг с другом. И это вызывает пустое пространство между изображением и ссылкой.

Я частично исправил эту ошибку, немного изменив код jsfiddle Matjis. Я переместил положение тегов img влево.

.gallery a img {
...
position:relative;
left: 2px;
}

Это решение может работать, если вы установите различные значения радиуса изображения и ссылки.