Видаліть кордон від IFrame


706

Як я можу видалити кордон із iframe, вбудованого у свій веб-додаток? Приклад iframe:

<iframe src="myURL" width="300" height="300">Browser not compatible.</iframe>

Я хотів би, щоб перехід від вмісту на моїй сторінці до вмісту рамки кадрів був безшовним, припускаючи, що кольори фону є послідовними. Цільовим браузером є лише IE6 і, на жаль, рішення для інших не допоможуть.


Зробити це можна легко, скориставшись генератором iframe
Shan Eapen Koshy

2
Просто створіть клас типу ".nb {border: none;}" всередині тегу <style>. Потім додайте "class =" nb "" всередину тегу <iframe>.
Джим

Відповіді:


1125

Додайте frameBorderатрибут (відмітьте велику літеру "B" ).

Так би виглядало так:

<iframe src="myURL" width="300" height="300" frameBorder="0">Browser not compatible.</iframe>

3
Займіть мене хвилиною, щоб розібратися в JavaScript, вам просто потрібен element.frameBorder = 0. № .style і використовуйте 0, не '0'
anderspitman

15
Під час перевірки документа за допомогою служби перевірки розмітки frameBorder призводить до помилки, оскільки він не сумісний з HTML5: Атрибут frameborder на елементі iframe є застарілим. Використовуйте замість CSS. У HTML5 я б встановив властивість CSS border:0. Чи є спосіб зробити його сумісним назад, не викликаючи помилок перевірки?
ᴍᴀᴛᴛ ʙᴀᴋᴇʀ

1
@ MatthewT.Baker Безумовно, дивіться мою відповідь на одне з інших безліч питань щодо цього атрибута: stackoverflow.com/a/20719286/1016716 На жаль, я бачу, що я забув там столицю B; Я відредагую.
Містер Лістер

15
@MartinAndersson caniuse.com/#feat=iframe-seamless йдеться , що вона взагалі не підтримується.
Тім Бют

2
Відповідь тут правильна, проте коментарі, що пропонують використання атрибута безшовної дії, більше не є правильними. Атрибут безшовного тексту
Ron E

144

З глузду намагаючись видалити межу в IE7, я виявив, що атрибут frameBorder відрізняється від регістру.

Ви повинні встановити атрибут frameBorder з великої B .

<iframe frameBorder="0"></iframe>

13
Це абсолютно смішно! Хороший улов, хоча. Так я знову врятував мені багато годин клопоту :)
Алекс

було б рятівник , якщо був правильну відповідь, тому що він згадує капітал B .
KARASZI István

1
ПРИМІТКА: IE6 не відображатиме зміни атрибутів frameborder у "налагоджувачі" F12. Натомість додайте атрибут у html-код.

Зауважте, що хоча властивість JavaScript є frameBorderз великого регістру B, атрибут HTML насправді завжди був нечутливим до регістру. І в XHTML це повинно бути все малі літери frameborder.
Містер Лістер

83

Відповідно до документації iframe , рамка frameBorder застаріла і надається перевагу використанню атрибута CSS "border":

<iframe src="test.html" style="width: 100%; height: 400px; border: 0"></iframe>
  • Примітка. Властивість кордону CSS не досягає бажаних результатів у IE6, 7 або 8.

54

На додаток до додавання атрибуту frameBorder, ви можете розглянути можливість встановлення атрибута прокрутки на "ні", щоб запобігти появі смуг прокрутки.

<iframe src="myURL" width="300" height="300" frameBorder="0" scrolling="no">Browser not compatible. </iframe > 

1
Який його еквівалент у HTML5?
Даніель Спрінгер

3
style = "overflow: hidden"

21

Для проблем із браузером також додайте frameborder="0" hspace="0" vspace="0" marginheight="0" marginwidth="0"згідно з Dreamweaver:

<iframe src="test.html" name="banner" width="300" marginwidth="0" height="300" marginheight="0" align="top" scrolling="No" frameborder="0" hspace="0" vspace="0">Browser not compatible. </iframe>

9

Використовуйте атрибут рамки рамки рамки iframe HTML

http://www.w3schools.com/tags/att_iframe_frameborder.asp

Примітка: використовуйте порядок кадру B (кришка B) для IE, інакше не вийде. Але, атрибут iframe frameborder не підтримується в HTML5. Отже, використовуйте замість CSS.

<iframe src="http://example.org" width="200" height="200" style="border:0">

ви також можете видалити прокрутку за допомогою атрибута прокрутки http://www.w3schools.com/tags/att_iframe_scrolling.asp

<iframe src="http://example.org" width="200" height="200" scrolling="no" style="border:0">

Також ви можете використовувати безшовний атрибут, який є новим у HTML5. Бездоганний атрибут тегу iframe підтримується лише в Opera, Chrome та Safari. Якщо він присутній, він вказує, що кадр iframe повинен виглядати так, як він є частиною документа, що містить документ (без меж і смуг прокрутки). На сьогоднішній день бездоганний атрибут тегу підтримується лише в Opera, Chrome та Safari. Але найближчим часом це буде стандартним рішенням і буде сумісним з усіма браузерами. http://www.w3schools.com/tags/att_iframe_seamless.asp


9

Можна використовувати style="border:0;" у своєму коді iframe. Це рекомендований спосіб видалення кордону в HTML5.

Перевірте мій інструмент генератора iframe html5 , щоб налаштувати ваш iframe без редагування коду.


9

Властивість стилю може бути використана для HTML5, якщо ви хочете видалити бодер свого кадру або все, що ви можете використовувати властивість стилю. як наведено нижче

Код іде тут

<iframe src="demo.htm" style="border:none;"></iframe>

7

Додайте атрибут frameBorder (заголовок "B").

<iframe src="myURL" width="300" height="300" frameBorder="0">Browser not compatible. </iframe>

6

Ви також можете це зробити з JavaScript таким чином. Він знайде будь-які елементи iframe та видалить їхні межі в IE та інших браузерах (хоча ви можете просто встановити стиль "border: none;" у веб-переглядачах, які не IE замість JavaScript). І він буде працювати, навіть якщо він використовується ПІСЛЯ генерованого iframe та на місці в документі (наприклад, iframe, які додаються у звичайний HTML, а не JavaScript)!

Здається, це працює, тому що IE створює межу не на елементі iframe, як ви очікували, а на ЗМІсті iframe - після створення iframe у BOM. ($ @ & * # @ !!! IE !!!)

Примітка: частина IE буде працювати (звичайно), лише якщо батьківське вікно та рамка походження походять з однакового походження (той же домен, порт, протокол тощо). В іншому випадку скрипт отримає помилки "відмовлено у доступі" до консолі помилок IE. Якщо це трапиться, ваш єдиний варіант - встановити його до його генерування, як зазначали інші, або використовувати нестандартний атрибут frameBorder = "0". (або просто дозвольте IE виглядати нечітко - мій поточний улюблений варіант;))

Мені довелося СТАЛИ багато годин роботи, щоб розібратися в цьому ...

Насолоджуйтесь. :)

// =========================================================================
// Remove borders on iFrames

if (window.document.getElementsByTagName("iframe"))
   {
      var iFrameElements = window.document.getElementsByTagName("iframe");
      for (var i = 0; i < iFrameElements.length; i++)
         {
            iFrameElements[i].frameBorder="0";   //  For other browsers.
            iFrameElements[i].setAttribute("frameBorder", "0");   //  For other browsers (just a backup for the above).
            iFrameElements[i].contentWindow.document.body.style.border="none";   //  For IE.
         }
   }

6

Я спробував усе вищесказане, і якщо це не допомогло, ви спробуйте нижче, CSS вирішив проблему для мене. Що просто говорить браузерам не додавати будь-які прокладки чи запаси.

* {
  padding:0px;
  margin:0px;
 }

5

Якщо тип сторінки на якій ви розміщуєте iframe - це HTML5, ви можете використовувати такий seamlessатрибут:

<iframe src="..." seamless="seamless"></iframe>

Документи Mozilla на атрибут безшовного тексту


4
шви, як чудова ідея, але, на жаль, недостатньо підтримується. caniuse.com/#search=seamless
code_monk

4
Він взагалі не підтримується.
skobaljic

5

У таблицю стилів додайте

{
  padding:0px;
  margin:0px;
  border: 0px

}

Це теж життєздатний варіант.


frameBorder не працював для мене, але це було. Дякую.
Дойс

4

Якщо ви використовуєте iFrame для встановлення ширини та висоти всього екрана, і я припускаю, що ви не базуєтесь на розмірі 300x300, ви також повинні встановити межі тіла на "0", як це:

<body style="margin:0px;">

4
<iframe src="mywebsite" frameborder="0" style="border: 0px solid white;">HTML iFrame is not compatible with your browser</iframe>

Цей код повинен працювати як в HTML 4, так і в 5.


4

Або додайте атрибут frameBorder або використовуйте стиль з шириною рамки 0px ;, або встановіть стиль межі рівний жодному.

використовувати будь-який знизу 3:

<iframe src="myURL" width="300" height="300" style="border-width:0px;">Browser not compatible.</iframe>

<iframe src="myURL" width="300" height="300" frameborder="0">Browser not compatible.</iframe>

<iframe src="myURL" width="300" height="300" style="border:none;">Browser not compatible.</iframe>




3

Використовуй це

style="border:none;

Приклад:

<iframe src="your.html" style="border:none;"></iframe>

2

Для видалення кордону ви можете використовувати властивість межі CSS для жодної.

<iframe src="myURL" width="300" height="300" style="border: none">Browser not compatible.</iframe>

1

Його простий атрибут просто додати в тег iframe frameborder = 0 <iframe src="" width="200" height="200" frameborder="0"></iframe>


Перш ніж відповісти на запитання, завжди прочитайте наявні відповіді. Цю відповідь уже надано. Замість того, щоб повторювати відповідь, проголосуйте за існуючу відповідь. Деякі вказівки щодо написання гарних відповідей можна знайти тут .
dferenc

0

1.Via Inline Style встановити межу: 0

 <iframe src="display_file.html" style="height: 400px; width:
   100%;border: 0;">HTML iFrame is not compatible with your browser
   </iframe>

2. Через тег Attribute frameBorder Set 0

<iframe src="display_file.html" width="300" height="300" frameborder="0">Browser not compatible.</iframe>

3. якщо у нас є кілька I фреймів, ми можемо дати клас і поставити css внутрішньо або зовні.

HTML:

<iframe src="display_file.html" class="no_border_iframe">
    HTML iFrame is not compatible with your browser 
</iframe>

CSS:

<style>
.no_border_iframe{
border: 0; /* or border:none; */
}
</style>

0

У мене виникла проблема із нижньою білою облямівкою, і я не зміг виправити це за допомогою правил кордону, поля та прокладки ... Тож додайте display:block; тому що iframe є вбудованим елементом.

Це враховує пробіли у вашому HTML.



-1
<iframe src="URL" frameborder="0" width="100%" height="200">
<p>Your browser does not support iframes.</p>
</iframe>

<iframe frameborder="1|0">

(OR)

<iframe src="URL" width="100%" height="300" style="border: none">Your browser 
does not support iframes.</iframe>

The <iframe> frameborder attribute is not supported in HTML5. Use CSS 
instead.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.