css - @media横竖屏

@media screen and (orientation: portrait) {
	/* 竖屏 */
}
@media screen and (orientation: landscape) {
	/* 横屏 */
}

 请注意! 在横竖屏切换的时候, 使用em单位和rem单位的(特别是根据屏幕宽度计算的rem)是不变的,也就是说如果一开始用户是竖屏浏览, 我们计算出屏幕宽度(屏幕短边)=10rem, 那么在用户切换横屏的时候, 仍然是(屏幕短边)=10rem! 这时候需要绑定onorientationchange(屏幕翻转事件)进行重新计算, 并刷新页面


另外, 如果你写在两个css中, 那么引用的时候要这么写

<link rel="stylesheet" media="all and (orientation:portrait)" href="竖屏.css">  /* 伪代码, 写中文一眼就理解 */
<link rel="stylesheet" media="all and (orientation:landscape)" href="横屏.css">

还有一种用js事件判断的(参考 https://www.w3cways.com/1772.html, 侵删)

//判断手机横竖屏状态:
window.addEventListener("onorientationchange" in window ? "orientationchange" : "resize", function() {
        if (window.orientation === 180 || window.orientation === 0) { 
            alert('竖屏状态!');
        } 
        if (window.orientation === 90 || window.orientation === -90 ){ 
            alert('横屏状态!');
        }  
    }, false); 
//移动端的浏览器一般都支持window.orientation这个参数,通过这个参数可以判断出手机是处在横屏还是竖屏状态。
注: window.orientation是获取当前用户设备旋转了多少度. 0代表一开始加载时的位置, -90就是向左旋转了, 180就是头朝下, 90度就是向右旋转了

以上!

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值