CSS, добавляющий радиус границы к IFrame

Добавление границы к IFrame не является большим - вы делаете это, например, например:

  border: 4px solid #000;
  -moz-border-radius: 15px;
  border-radius: 15px;

Проблема заключается в том, что при загрузке содержимого в этот IFrame содержимое перекрывает границы в углах, например:

IFrame content overlapping with CSS border

Любые идеи о том, как можно обойти эту проблему? Например. есть ли библиотека JavaScript, которая позаботится об этом...

Ответ 1

Радиус границы недостаточно хорошо поддерживается или согласован. Если вы хотите получить нужный эффект, попробуйте использовать DIV вокруг элемента и вместо этого используйте графику с переполнением скрытых в CSS. Вы можете захотеть взглянуть на раздвижные двери, если ваш iframe будет меняться по высоте.

http://www.alistapart.com/articles/slidingdoors/

Надеюсь, что это поможет.

Удачи!

Ответ 2

Вы также можете сделать это следующим образом:

<div style="padding:10px;background:#000;webkit-border-radius: 20px;-moz-border-radius: 20px;border-radius: 20px;width:560px;margin:0 auto;overflow:hidden;">
    <iframe src="http://www.youtube.com/embed/MOVIEID?fs=1&autoplay=1&loop=1&rel=0&border=0&modestbranding=1" width="560" height="315" frameborder="0"></iframe>
</div>

В приведенном выше примере я также включил все параметры youtube:

1: автовоспроизведение = 1 (0/1 | автоматический режим воспроизведения)

2: loop = 1 (включение/выключение 0/1)

3: rel= 0 (скрыть связанные фильмы после окончания фильма, это не всегда работает)

4: border = 0 (удаляет границу youtube)

5: modestbranding = 1 (удаляет логотип youtube)

Ответ 3

Используйте это свойство:

border: 4px solid #000;
-moz-border-radius: 15px;
border-radius: 15px;
overflow: hidden;

Ответ 4

Я знаю, что это довольно старый поток, но я нашел для него правильную работу, которую другие не покрывали.

Что вы видите, это проблема z-индексации. Все, что вам нужно сделать, - это установить iFrame в DIV и установить абсолютное значение DIV и iframe. Затем установите z-index в CSS. Он отлично работает с видео Youtube в пузырьках!

<style>

#player-wrapper{
    border-radius:50%;  
    border:solid 1px #999;
    width:360px;
    height:360px;
    overflow:hidden;
    position:absolute;
    left:50%;
    top:90px;
    margin-left:-130px;
    z-index:10;
}
#player-wrapper iframe{
    position:absolute;
    left:50%;
    margin-left:-320px; 
    z-index:9;
}
</style>

<div id="player-wrapper">
    <iframe id="player" frameborder="0" allowfullscreen="1" title="YouTube video player" width="640" height="360" src="https://www.youtube.com/embed/rTMMraosnzg></iframe>
</div>

Ответ 5

Вы можете использовать Malsap jQuery подключаемый плагин. Это не будет устранять актуальную проблему, но это даст вам закругленные углы без проблем.

Ответ 6

Поместите iframe в элемент-оболочку и придайте этому элементу CSS атрибут wrapper:

transform: translateY(0px);

.corner-wrapper {
  display: block;
  overflow: hidden;
  width: 300px;
  height: 150px;
  border-radius: 10px;
  transform: translateZ(0px);
  border: 3px solid #eee;
}
<div class="corner-wrapper">
    <iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d77935.71780117304!2d9.691260439866745!3d52.37964560033004!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x47b00b514d494f85%3A0x425ac6d94ac4720!2sHannover!5e0!3m2!1sde!2sde!4v1458445807305" width="300" height="150" frameborder="0" style="border:0" allowfullscreen></iframe>
</div>

Ответ 7

Коробчатая тень будет вокруг углов. Просто располагайте расстояние от границы вашей границы и значение размытия 0. Это взломать, но что не в HTML?

box-shadow: 0 0 0 1px #000;

Будет добавлена ​​граница 1 пиксель. Первые два нуля - это смещение. Третий ноль - сколько размытия, которое вы хотите отдать тени (нет). 1px - это то, как далеко "вы" вы хотите, чтобы тень ушла. Последний параметр - цвет границы. Большинство людей опускают распространение, потому что хотят, чтобы их тени были того же размера, что и элемент.

Вот пример, где я это сделал, который работает как минимум в IE9 и Chrome 17: http://www.philihp.com/blog/2012/i-made-a-gps-locator-for-myself/

Ответ 8

Если вы еще этого не поняли, попробуйте это... работает для меня:

Я заметил, что если вы попытаетесь сделать это externall даже с тегом, это не сработает. Установите стиль в теге iframe.

Удачи!

Ответ 9

Вы пропустите свойства overflow и position. Это должно работать:

    border: 4px solid #000;
    -moz-border-radius: 15px;
    border-radius: 15px;
    overflow: hidden;
    position: relative;