전체 페이지 <iframe>


99

아래에 예제 코드가 있습니다. 이것은 모바일 장치의 브라우저를 제외한 모든 브라우저에서 잘 작동합니다.

오버플로 태그가 문제입니다.

모바일을 제외한 모든 제품에서 작동 :

margin: 0; padding: 0; height: 100%; overflow: hidden;

컴퓨터가 아닌 모든 모바일에서 작동 :

margin: 0; padding: 0; height: 100%;

두 가지 모두에서 작동하도록하는 가장 좋은 방법은 무엇입니까?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Test Layout</title>
        <style type="text/css">
            body, html
            {
                margin: 0; padding: 0; height: 100%; overflow: hidden;
            }
        </style>
    </head>
    <body>
        <iframe width="100%" height="100%" src="http://www.cnn.com" />
    </body>
</html>

왜 그냥 리디렉션하지 cnn.com않습니까?
GolezTrol 2013

cnn.com은 그 이상입니다. 내가 방지하려는 행동을 보여주기 위해.
Lacer

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> 포함하는 html의 헤드에 추가 하면 응답 성이 다시 (적어도 부분적으로) 돌아옵니다.
Nukey

답변:


173

다음은 작동 코드입니다. 데스크톱 및 모바일 브라우저에서 작동합니다. 도움이되기를 바랍니다. 응답 해주셔서 감사합니다.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Test Layout</title>
        <style type="text/css">
            body, html
            {
                margin: 0; padding: 0; height: 100%; overflow: hidden;
            }

            #content
            {
                position:absolute; left: 0; right: 0; bottom: 0; top: 0px; 
            }
        </style>
    </head>
    <body>
        <div id="content">
            <iframe width="100%" height="100%" frameborder="0" src="http://cnn.com" />
        </div>
    </body>
</html>

2
iframe을 위에 놓고 싶을 때 Chrome에 문제가 있습니다. 나는 닫는 추가 </ iframe> 해당과 작동
미갈을 - wereda 그물

iframe 내의 콘텐츠에서 응답 성 (예 : 열 축소 등) 을 제거하는 것 같습니다 . 그러나 어떻게 든 데스크톱 브라우저의 크기를 조정할 때가 아니라 모바일 사파리로 페이지를 열 때만. 그 행동을 유발할 수있는 아이디어가 있습니까?
psteinweber

3
@psteinweber, <meta content='width=device-width, initial-scale=1.0' name='viewport'>포함하는 페이지 에 추가 하기 만하면 됩니다.
jfeust 2015

Chromium 81에서 적절한 정렬을 얻으려면 for 및 속성 vw대신 사용해야 했습니다 . 그렇지 않으면 매력처럼 작동합니다. %widthheight
Josh Habdas

19

이것은 브라우저 간이며 완전히 반응합니다.

<iframe
  src="https://drive.google.com/file/d/0BxrMaW3xINrsR3h2cWx0OUlwRms/preview"
  style="
    position: fixed;
    top: 0px;
    bottom: 0px;
    right: 0px;
    width: 100%;
    border: none;
    margin: 0;
    padding: 0;
    overflow: hidden;
    z-index: 999999;
    height: 100%;
  ">
</iframe>


4

이것은 내가 과거에 사용한 것입니다.

html, body {
  height: 100%;
  overflow: auto;
}

또한 iframe다음 스타일을 추가하십시오.

border: 0; position:fixed; top:0; left:0; right:0; bottom:0; width:100%; height:100%

답장을 보내 주셔서 감사합니다.하지만 본질적으로 제가 가지고있는 것이므로 작동하지 않습니다. 모바일 브라우저에서는 오버플로되는 모든 것을 차단하고 스크롤 할 수 없습니다.
Lacer

교체 시도 @Lacer overflow: hiddenoverflow: auto
제이 파텔

그것을 시도했다. 모바일 브라우저에서 여전히 떨어져 데스크탑 브라우저에 인하는 이중 스크롤의 원인
Lacer

아니 아직 모바일 브라우저에 떨어져 데스크톱 브라우저와 인하 이중 스크롤
Lacer

2

전체 화면 프레임 리디렉션 및 유사한 작업의 경우 두 가지 방법이 있습니다. 둘 다 모바일과 데스크톱에서 잘 작동합니다.

이것은 완전한 브라우저 간 작동, 유효한 HTML 파일입니다. 그냥 변경 titlesrc사용자의 요구에. ASCII가 아닌 문자가 없으면
삭제를 고려할 수 있습니다 <meta charset>.

1. 이것은 내가 가장 좋아하는 :

<!DOCTYPE html>
<meta charset=utf-8>
<title> Title-1 </title>
<meta name=viewport content="width=device-width">
<style>
 html, body, iframe { height:100%; width:100%; margin:0; border:0; display:block }
</style>
<iframe src=src1></iframe>

<!-- More verbose CSS for better understanding:
  html   { height:100% }
  body   { height:100%; margin:0 }
  iframe { height:100%; border:0; display:block; width:100% } -->

또는 2. 약간 더 짧습니다.

<!DOCTYPE html>
<meta charset=utf-8>
<title> Title-2 </title>
<meta name=viewport content="width=device-width">
<iframe src=src2 style="position:absolute; top:0; left:0; width:100%; height:100%; border:0">
</iframe>


참고 :
보수적으로 위의 예는 height:100vh이전 브라우저가이를 알지 못하고 (요즘에는 논쟁의 여지가있을 수 있음) 모바일 브라우저에서 height:100vh항상 동일 하지는 않기 때문에 사용을 피 height:100%합니다 (아마 여기에서는 해당되지 않음). 그렇지 않으면 vh일을 약간 단순화하므로

3. 이것은 vh를 사용하는 예입니다 (내가 가장 좋아하는 것이 아니고, 약간의 이점이 있지만 덜 호환 됨).

<!DOCTYPE html>
<meta charset=utf-8>
<title> Title-3 </title>
<meta name=viewport content="width=device-width">
<style>
 body { margin:0 }
 iframe { display:block; width:100%; height:100vh; border:0 }
</style>
<iframe src=src3></iframe>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.