Я хочу показать свой веб-сайт только в ландшафтном режиме, возможно ли это? Неважно, какая ориентация устройства в руке пользователя, но веб-сайт всегда будет в ландшафтном режиме. Я видел приложение iPhone, работающее так, но может ли это быть сделано для веб-сайта?
Заставлять веб-сайт показывать только в ландшафтном режиме
Ответ 1
@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 кредит.
Обновление
Недавно я работал с Кордовой, и, оказывается, вы можете управлять им, когда у вас есть доступ к собственным функциям.
Другое обновление
Итак, после выпуска Кордовы это действительно ужасно, в конце концов. Лучше использовать что-то вроде React Native, если вы хотите JavaScript. Это действительно потрясающе, и я знаю, что это не чистая сеть, но это вроде как неудачно.
Ответ 2
Пока я сам буду ждать ответа, интересно, можно ли это сделать через CSS:
@media only screen and (orientation:portrait){
#wrapper {width:1024px}
}
@media only screen and (orientation:landscape){
#wrapper {width:1024px}
}
Ответ 3
Попробуйте Это может быть более подходящим для вас
#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>
Ответ 4
Мне пришлось играть с шириной моих основных контейнеров:
html {
@media only screen and (orientation: portrait) and (max-width: 555px) {
transform: rotate(90deg);
width: calc(155%);
.content {
width: calc(155%);
}
}
}