[css] HTML5 및 프레임 테두리

HTML5 문서에 iframe이 있습니다. 유효성을 검사 할 때의 속성 iframe frameBorder이 더 이상 사용되지 않고 대신 CSS를 사용 하라는 오류가 표시 됩니다.

frameBorder="0"IE에서 테두리를 제거하는 방법을 알아낼 수있는 유일한 방법 이었기 때문에 여기 에이 속성이 있습니다. 저는 border:none;운없이 CSS를 사용해 보았습니다 . 이 문제를 해결할 수있는 방법이 있습니까?

감사.



답변

HTML 5는 frameborder, scrolling, marginwidth 및 marginheight (HTML 4.01에서 지원됨)와 같은 속성을 지원하지 않습니다. 대신 HTML 5 사양은 seamless 속성을 도입했습니다. seamless 속성을 사용하면 포함 문서의 일부로 렌더링되는 것처럼 인라인 프레임이 표시 될 수 있습니다. 예를 들어, 테두리와 스크롤바는 나타나지 않습니다.

MDN에 따르면

frameborder HTML5부터 사용되지 않음

1(기본값)은이 프레임 주위에 테두리를 그립니다. 이 값 0은이 프레임 주위의 테두리를 제거하지만 대신 CSS 속성 테두리를 사용하여 테두리를 제어해야합니다.

위의 인용문처럼 CSS로 테두리를 제거 해야 합니다.
인라인 ( style="border: none;") 또는 스타일 시트 ( iframe { border: none; }).

즉, .NET을 사용하지 않는 단일 iframe 제공 업체는없는 것 같습니다 frameborder="0". YouTube조차도 여전히이 속성을 사용하며 frameborder가 더 이상 지원되지 않을 때 iframe을 이전 버전과 호환되도록하는 스타일 속성도 제공하지 않습니다. 속성이 곧 아무데도 가지 않을 것이라고 말하는 것이 안전합니다. 이렇게하면 3 가지 옵션이 있습니다.

  1. 계속 사용하여 frameborder작동하는지 확인하십시오 (당분간).
  2. CSS를 사용하여 “올바른”작업 수행
  3. 둘 다 사용하십시오. 이것이 비 호환성 문제를 해결하지는 못하지만 (옵션 1과 마찬가지로), 기존의 모든 브라우저에서 작동합니다.

이 10 년 된 답변의 이전 상태에 관해서는 :

seamless속성은 짧은 시간 동안 (또는 일부 브라우저에서는 전혀 지원되지 않음) MDN이 더 이상 사용되지 않는 기능으로 나열하지도 않았습니다. 그것을 사용하지 말고 아래 설명에 혼동하지 마십시오.


답변

여기에 있는 다른 게시물 에 따라 가장 좋은 해결책은 CSS 항목을 사용하는 것입니다.

style="border:0;"


답변

때문에 frameborder속성이 IE에만 필요, 발리를 해결하기 위해 또 다른 방법이있다. 이것은 자바 스크립트 나 DOM 조작이 필요없는 가벼운 방법입니다.

<!--[if IE]>
   <iframe src="source" frameborder="0">?</iframe>
<![endif]-->
<!--[if !IE]>-->
   <iframe src="source" style="border:none">?</iframe>
<!-- <![endif]-->


답변

이것은 작동합니다

iframe{
    border-width: 0px;
}


답변

XHTML에 대상 속성을 붙여 Javascript로 유효성 검사기를 “속이는”기술에 대해 동일한 방법을 사용하는 것은 <a onclick="this.target='_blank'">어떻습니까?

  • onsomething = “this.frameborder = ‘0’”

<iframe onload = " this.frameborder='0' " src="menu.html" id="menu"> </iframe>

또는 getElementsByTagName]("iframe")1 페이지에있는 모든 iframe을이 속성을 추가?

IE에서 아무것도 작동 하지 않는다는 것을 의미하는 작업을 수행했기 때문에 이것을 테스트하지 않았습니다 . 🙂 그래서 내가 그것을 분류하는 동안 … 🙂


답변

여기 에서 IE7 에서 작동 할 수있는 좋은 방법을 찾았 습니다 . frameBorder 속성에 대한 유효성 검사기를 우회하지만 게시물에 설명 된대로 향후 브라우저를 위해 CSS를 유지합니다.


답변

style="border:none; scrolling:no; frameborder:0;  marginheight:0; marginwidth:0; "