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