Xóa đường viền khỏi IFrame


707

Làm cách nào để xóa đường viền khỏi iframe được nhúng trong ứng dụng web của tôi? Một ví dụ về iframe là:

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

Tôi muốn quá trình chuyển đổi từ nội dung trên trang của tôi sang nội dung của iframe sẽ liền mạch, giả sử màu nền là nhất quán. Trình duyệt mục tiêu chỉ là IE6 và không may là các giải pháp cho người khác sẽ không giúp ích.


Bạn có thể làm điều đó một cách dễ dàng bằng cách sử dụng trình tạo iframe
Shan Eapen Koshy

2
Chỉ cần tạo một lớp như ".nb {Border: none;}" bên trong thẻ <style>. Sau đó thêm "class =" nb "" bên trong thẻ <iframe>.
Jim

Câu trả lời:


1126

Thêm frameBorderthuộc tính (lưu ý viết hoa 'B' ).

Vì vậy, nó sẽ trông như:

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

3
Mất một phút để tìm hiểu trong JavaScript, bạn chỉ cần phần tử.frameBorder = 0. không .style và sử dụng 0, không phải '0'
anderspitman

15
Khi xác thực tài liệu bằng Dịch vụ xác thực đánh dấu frameBorder sẽ xảy ra lỗi vì nó không tuân thủ HTML5: Thuộc tính frameborder trên phần tử iframe đã lỗi thời. Sử dụng CSS thay thế. Trong HTML5 tôi sẽ đặt thuộc tính CSS của border:0. Có cách nào để làm cho nó tương thích ngược mà không gây ra lỗi xác nhận không?
ᴍᴀᴛᴛ 26/2/2015

1
@ MatthewT.Baker Chắc chắn, hãy xem câu trả lời của tôi về một trong nhiều câu hỏi khác về thuộc tính này: stackoverflow.com/a/20719286/1016716 Rất tiếc, tôi thấy tôi đã quên vốn B ở đó; Tôi sẽ chỉnh sửa.
Ông Lister

15
@MartinAndersson caniuse.com/#feat=iframe-siền nói rằng nó hoàn toàn không được hỗ trợ.
Tim Büthe

2
Câu trả lời ở đây là chính xác, tuy nhiên các ý kiến ​​cho thấy việc sử dụng thuộc tính liền mạch không còn đúng nữa. Thuộc tính liền mạch đã bị xóa khỏi đặc tả: w3.org/TR/2014/REC-html5-20141028/ Kẻ
Ron E

145

Sau khi phát điên khi cố gắng loại bỏ đường viền trong IE7, tôi thấy rằng thuộc tính frameBorder phân biệt chữ hoa chữ thường.

Bạn cần phải thiết lập các thuộc tính frameborder với số vốn B .

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

13
Điều này là hoàn toàn vô lý! Bắt tốt mặc dù. SO đã cứu tôi nhiều giờ rắc rối một lần nữa :)
Alex

nó sẽ là một phao cứu sinh nếu câu trả lời đúng, bởi vì nó đề cập đến thủ đô B .
KARASZI István

1
LƯU Ý: thay đổi thuộc tính frameborder trong "trình gỡ lỗi" F12 sẽ không được hiển thị bởi IE6. Thay vào đó, hãy thêm thuộc tính trong mã html.

Lưu ý rằng trong khi thuộc tính JavaScript frameBordercó chữ hoa B, thuộc tính HTML thực sự luôn không phân biệt chữ hoa chữ thường. Và trong XHTML, nó nên là chữ thường frameborder.
Ông Lister

83

Theo tài liệu iframe , frameBorder không được dùng nữa và sử dụng thuộc tính CSS "viền" được ưu tiên:

<iframe src="test.html" style="width: 100%; height: 400px; border: 0"></iframe>
  • Lưu ý thuộc tính viền CSS không đạt được kết quả mong muốn trong IE6, 7 hoặc 8.

54

Ngoài việc thêm thuộc tính frameBorder, bạn có thể muốn xem xét đặt thuộc tính cuộn thành "không" để ngăn thanh cuộn xuất hiện.

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

1
Tương đương của nó trong HTML5 là gì?
Daniel Springer

3
style = "overflow: hidden"

21

Đối với các sự cố cụ thể của trình duyệt cũng thêm frameborder="0" hspace="0" vspace="0" marginheight="0" marginwidth="0"theo 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

Sử dụng thuộc tính khung nội tuyến iframe frameborder

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

Lưu ý: sử dụng thứ tự khung B (nắp B) cho IE, nếu không sẽ không hoạt động. Nhưng, thuộc tính khung hình iframe không được hỗ trợ trong HTML5. Vì vậy, sử dụng CSS thay thế.

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

bạn cũng có thể xóa cuộn bằng cách sử dụng thuộc tính cuộn http://www.w3schools.com/tags/att_iframe_scrolling.asp

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

Ngoài ra, bạn có thể sử dụng thuộc tính liền mạch vốn mới trong HTML5. Thuộc tính liền mạch của thẻ iframe chỉ được hỗ trợ trong Opera, Chrome và Safari. Khi có mặt, nó chỉ định rằng iframe sẽ trông giống như nó là một phần của tài liệu chứa (không có viền hoặc thanh cuộn). Đến bây giờ, thuộc tính liền mạch của thẻ chỉ được hỗ trợ trong Opera, Chrome và Safari. Nhưng trong tương lai gần, nó sẽ là giải pháp tiêu chuẩn và sẽ tương thích với tất cả các trình duyệt. http://www.w3schools.com/tags/att_iframe_siền.asp


9

Bạn có thể sử dụng style="border:0;"mã iframe của mình. Đó là cách được đề xuất để xóa đường viền trong HTML5.

Kiểm tra công cụ tạo iframe html5 của tôi để tùy chỉnh iframe của bạn mà không cần chỉnh sửa mã.


9

Thuộc tính kiểu có thể được sử dụng cho HTML5 nếu bạn muốn xóa bộ mã hóa khung của mình hoặc bất cứ thứ gì bạn có thể sử dụng thuộc tính kiểu. như được đưa ra dưới đây

Mã ở đây

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

7

Thêm thuộc tính frameBorder (Vốn 'B').

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

6

Bạn cũng có thể làm điều đó với JavaScript theo cách này. Nó sẽ tìm thấy bất kỳ thành phần iframe nào và loại bỏ các đường viền của chúng trong IE và các trình duyệt khác (mặc dù bạn chỉ có thể đặt kiểu "đường viền: không;" trong các trình duyệt không phải IE thay vì sử dụng JavaScript). VÀ nó sẽ hoạt động ngay cả khi được sử dụng SAU KHI iframe được tạo và tại chỗ trong tài liệu (ví dụ: iframe được thêm vào bằng HTML đơn giản và không phải JavaScript)!

Điều này dường như hoạt động vì IE tạo đường viền, không phải trên phần tử iframe như bạn mong đợi, mà trên NỘI DUNG của iframe - sau khi iframe được tạo trong BOM. ($ @ & * # @ !!! IE !!!)

Lưu ý: Phần IE sẽ chỉ hoạt động (tất nhiên) nếu cửa sổ cha và iframe là từ nguồn gốc SAME (cùng tên miền, cổng, giao thức, v.v.). Nếu không, tập lệnh sẽ nhận được lỗi "truy cập bị từ chối" trong bảng điều khiển lỗi IE. Nếu điều đó xảy ra, tùy chọn duy nhất của bạn là đặt nó trước khi nó được tạo, như những người khác đã lưu ý hoặc sử dụng thuộc tính frameBorder = "0" không chuẩn. (hoặc chỉ để IE tìm kiếm đầy đủ - tùy chọn yêu thích hiện tại của tôi;))

Mất tôi NHIỀU giờ làm việc đến mức tuyệt vọng để tìm ra điều này ...

Thưởng thức. :)

// =========================================================================
// 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

Tôi đã thử tất cả các cách trên và nếu điều đó không hiệu quả với bạn, hãy thử CSS bên dưới giải quyết vấn đề cho tôi. Mà chỉ cho các trình duyệt không thêm bất kỳ phần đệm hoặc lề.

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


5

Trong biểu định kiểu của bạn thêm

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

}

Đây cũng là một lựa chọn khả thi.


frameBorder không hoạt động với tôi, nhưng điều này đã làm. Cảm ơn.
Dois

4

Nếu bạn đang sử dụng iFrame để vừa với chiều rộng và chiều cao của toàn bộ màn hình, tôi cho rằng bạn không dựa trên kích thước 300x300, bạn cũng phải đặt lề cơ thể thành "0" như thế này:

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

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

Mã này sẽ hoạt động trong cả HTML 4 và 5.


4

Hoặc thêm thuộc tính frameBorder hoặc sử dụng kiểu có độ rộng đường viền 0px;, hoặc đặt kiểu đường viền bằng không.

sử dụng bất kỳ một từ dưới 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

cũng đặt viền = "0px"

 <iframe src="yoururl" width="100%" height="100%" frameBorder="0"></iframe>

3

Thử

<iframe src="url" style="border:none;"></iframe>

Điều này sẽ loại bỏ đường viền của khung hình của bạn.



2

Để xóa đường viền, bạn có thể sử dụng thuộc tính viền CSS cho không.

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

1

Đơn giản chỉ cần thêm thuộc tính trong thẻ iframe frameborder = 0 <iframe src="" width="200" height="200" frameborder="0"></iframe>


Trước khi trả lời một câu hỏi, luôn luôn đọc các câu trả lời hiện có. Câu trả lời này đã được cung cấp. Thay vì lặp lại câu trả lời, hãy bỏ phiếu trả lời hiện có. Một số hướng dẫn để viết câu trả lời tốt có thể được tìm thấy ở đây .
dferenc

0

1.Via Inline Style đặt viền: 0

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

2. Thông qua khung thuộc tính thẻBorder Đặt 0

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

3. nếu chúng ta có nhiều khung I Chúng ta có thể cung cấp lớp và đặt css vào bên trong hoặc bên ngoài.

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

Tôi gặp vấn đề với viền trắng phía dưới và tôi không thể sửa nó với các quy tắc viền, lề & đệm ... Vì vậy, hãy thêm display:block;vì iframe là một thành phần nội tuyến.

Điều này có khoảng trắng trong HTML của bạn vào tài khoản.


-1
iframe src="XXXXXXXXXXXXXXX"
marginwidth="0" marginheight="0" width="xxx" height="xxx"

Hoạt động với Firefox;)


câu hỏi khác nhau có lẽ?

-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.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.