웹 사이트가 가로 모드로만 표시되도록 강제


85

내 웹 사이트를 가로 모드로만 표시하고 싶습니다. 가능합니까? 사용자의 손에있는 장치의 방향은 중요하지 않지만 웹 사이트는 항상 가로 모드입니다. iPhone 응용 프로그램이 그렇게 작동하는 것을 보았지만 웹 사이트에서이 작업을 수행 할 수 있습니까?


3
좋은 질문이지만 속임수를 쓸 수 있지만 대답은 "불가능"이라고 확신합니다 : stackoverflow.com/a/4807047/615754 .
nnnnnn

별로. CSS 변환을 사용하여 가짜로 만들 수는 있지만 추악하며 Android에서 거꾸로 된 것인지 알 수있는 방법이 없다고 생각합니다. 이것은 이전에 여기서 논의 된 것이 확실합니다.
Dagg Nabbit

1
웹 사이트에 최소 너비 : 320px를 적용 할 수 있습니까? 따라서 화면 크기가 저해상도 인 경우 전체 사이트를 보려면 스크롤해야합니다. 또는 240px 너비에서 320px 콘텐츠로 확대 할 수 있습니까?
coure2011

이 링크가 여러분에게 얼마나 도움이 될지 잘 모르겠지만 최신 [2020 년 1 월] 기능은 W3C w3c.github.io/screen-orientation
Sarath Sajan

답변:


117

@Golmaal이 정말 대답했습니다. 저는 좀 더 장황하게 말하고 있습니다.

<style type="text/css">
    #warning-message { display: none; }
    @media only screen and (orientation:portrait){
        #wrapper { display:none; }
        #warning-message { display:block; }
    }
    @media only screen and (orientation:landscape){
        #warning-message { display:none; }
    }
</style>

....

<div id="wrapper">
    <!-- your html for your website -->
</div>
<div id="warning-message">
    this website is only viewable in landscape mode
</div>

방향을 이동하는 사용자를 제어 할 수는 없지만 최소한 메시지를 보낼 수는 있습니다. 이 예제는 세로 모드 인 경우 래퍼를 숨기고 경고 메시지를 표시 한 다음 가로 모드에서 경고 메시지를 숨기고 세로를 표시합니다.

나는이 대답이 @Golmaal보다 낫다고 생각하지 않으며 단지 칭찬 일뿐입니다. 이 답변이 마음에 들면 @Golmaal에게 크레딧을 제공하십시오.

최신 정보

최근에 Cordova와 함께 작업 해 왔는데 기본 기능에 액세스 할 수있을 때 제어 할 수 있다는 것이 밝혀졌습니다.

또 다른 업데이트

그래서 Cordova를 출시 한 후에는 결국 정말 끔찍합니다. JavaScript를 원한다면 React Native와 같은 것을 사용하는 것이 좋습니다. 정말 놀랍고 순수한 웹은 아니지만 모바일에서의 순수한 웹 경험은 실패했습니다.


내 하루를 만들었습니다! 이것은 멋진 메시지를 넣어 작은 장치에 가로 모드를 강제하는 정말 편리한 스크립트입니다.
dhruvpatel

.. 당신의 잘 설명 대답 및 @Golmaal 용) + 1D, 당신은 신용 생각의 대부분을 가지고
Hitesh Misro에게

정말 유용합니다, 감사합니다! 별도의 스타일 시트에 삽입하면 작동하지 않는 것 같습니다.
Mmm

당신의 대답은 당신이 언급 한 것보다 낫습니다. 실제 솔루션을 제공하고 더 창의적이고 문제가되는 것 대신 쉽게 구현 된 경고를 권장합니다. 다른 "답변"이 당신에게 영감을 주었을 지 모르지만 그것은 다소 큰 소리로 궁금해했습니다. orientation조건부 그룹 속성 의 존재를 언급하는 주석으로 더 좋았을 것 입니다.
Vince

46

내가 여기서 답을 기다리는 동안 CSS를 통해 할 수 있는지 궁금합니다.

@media only screen and (orientation:portrait){
#wrapper {width:1024px}
}

@media only screen and (orientation:landscape){
#wrapper {width:1024px}
}

35

당신에게 더 적합 할 수 있습니다.

#container { display:block; }
@media only screen and (orientation:portrait){
  #container {  
    height: 100vw;
    -webkit-transform: rotate(90deg);
    -moz-transform: rotate(90deg);
    -o-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    transform: rotate(90deg);
  }
}
@media only screen and (orientation:landscape){
  #container {  
     -webkit-transform: rotate(0deg);
     -moz-transform: rotate(0deg);
     -o-transform: rotate(0deg);
     -ms-transform: rotate(0deg);
     transform: rotate(0deg);
  }
}
<div id="container">
    <!-- your html for your website -->
    <H1>This text is always in Landscape Mode</H1>
</div>

이것은 자동으로 균등 회전을 관리합니다.


7
영리하지만 실제로 작동하지 않습니다. 페이지의 대부분은 회전 할 때 액세스 할 수 없습니다. 실제 브라우저가 아닌 콘텐츠 만 회전되기 때문입니다.
Graham

2
이것은 모든 애니메이션을 깨뜨리고 아마도 페이지의 모바일 응답 성을 파괴 할 것입니다.
Wissam El-Kik 2014 년

2

메인 컨테이너의 너비를 가지고 놀아야했습니다.

html {
  @media only screen and (orientation: portrait) and (max-width: 555px) {
    transform: rotate(90deg);
    width: calc(155%);
    .content {
      width: calc(155%);
    }
  }
}

좋은 아이디어 .. 세로 / 가로를 전환 할 때 인공물 / 노이즈가 있습니까?
hko
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.