CSS 利用@media screen判断识别手机/PC端浏览器

本文介绍了如何利用CSS的@media screen查询来判断并适配手机和PC端浏览器的字体显示。通过设置不同的屏幕尺寸临界值,确保在手机端使用自定义字体,而在PC端保持浏览器默认字体,避免手机系统字体影响网页样式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、写此篇的初衷:

手机用户常可以更换自己手机系统的字体,那么在浏览网页的时候,网页内容字体也都随之变了,于是我想,能不能让自己的网站的字体在手机浏览器中保持不变(使用一款自定义字体)呢;而在PC端浏览器不用处理。

二、功能实现依据:

首先,CSS @media查询中有判断横屏(orientation:landscape)、竖屏(orientation:portrait)的功能,那么分别在电脑、手机浏览器上是否有不同表现呢,如果有,就靠它了。先看如下代码:

<style type="text/css">
/*定义竖屏 css*/
@media screen and (orientation:portrait) {
	.portrait { display:block; background-color:#FFCC00; }
	.landscape { display:none; }
}
/*定义横屏 css*/
@media screen and (orientation:landscape) {
	.portrait { display:none; }
	.landscape { display:block; background-color:#FFCC00; }
}
</style>
<div class="portrait">当前(浏览器)是竖屏</div>
<div class="landscape">当前(浏览器)是横屏</div>
<span id="a"></span>
<script>
window.onload=window.onresize=function(){
	document.getElementById('a').innerHTML = '屏幕尺寸为:宽 '+window.screen.width+' x '+window.screen.height+'';
}

1、电脑浏览器表现:

 缩窄浏览器——

 可见横、竖屏分得还是很清楚的。但是大家发现没有,判断电脑屏幕尺寸的结果是没有变的,都是1440x900,因为电脑就是横着看的,您不像手机一样把电脑竖起来吧*′∀`)′∀`)*′∀`)*′∀`)

2、手机浏览器表现:

     

 可见手机表现就如偿所愿了,非常正常,横屏时窗口是横向的尺寸,竖屏是竖向的,very good!

三、添加屏幕窗口的临界尺寸判断(关键点)

目前电脑的屏幕分辨率设置起点是800x600(早期显像管时代的14寸),其次是1024x768(15寸也好多年前了),——这二种显然目前看是太落后了,基本没人用了吧;即使如此,而大多手机的窗口屏显也都达不到这个尺寸,所以可以放心利用这二个作为判断分寸。

/*定义竖屏 css*/
@media screen and (orientation:portrait) and (max-device-width:600px) and (max-device-height:800px) {

}
/*定义横屏 css*/
@media screen and (orientation:landscape) and (max-device-width:800px) and (max-device-height:600px) {

}

请注意:这里用的是max-device-widthmax-device-height而不是网上流行的max-widthmax-height,前者是定义显示屏“宽、高”,后者是定义浏览器“宽、高”,显然前者是恒定不变的,而后者比如PC浏览器是可变换尺寸的,可以变窄变成竖长手机的样子,所以用起来不那么靠谱。

四、CSS @media查询中的or(或):

最后把横屏(orientation:landscape)、竖屏(orientation:portrait)综合起来,用逗号连接两条命令,实现or(或)的功能,变成一行命令代码:

@media
screen and (orientation:portrait) and (max-device-width:600px) and (max-device-height:800px),
screen and (orientation:landscape) and (max-device-width:800px) and (max-device-height:600px) {
}

这个也行:

@media
screen and (orientation:portrait) and (max-device-width:768px) and (max-device-height:1024px),
screen and (orientation:landscape) and (max-device-width:1024px) and (max-device-height:768px) {
}

五、贴上我的终稿:

当用户用手机浏览器浏览时,调用自定义的字体(压缩过的微软雅黑),用PC、iPad浏览器浏览时不用处理。

<style type="text/css">
<!--
/*判断手机浏览器,当前限:竖屏 宽600 高800,横屏 宽600 高800*/
@media
screen and (orientation:portrait) and (max-device-width:600px) and (max-device-height:800px),
screen and (orientation:landscape) and (max-device-width:800px) and (max-device-height:600px) {
@font-face {
    font-family: "Microsoft YaHei";
    src: url("_css/font_cn/_gb/msyh.eot"); /* IE9 */
    src: url("_css/font_cn/_gb/msyh.eot?#iefix") format("embedded-opentype"), /* IE6-IE8 */
    url("_css/font_cn/_gb/msyh.woff") format("woff"), /* chrome、firefox */
    url("_css/font_cn/_gb/msyh.ttf") format("truetype"), /* chrome、firefox、opera、Safari, Android, iOS 4.2+ */
    url("_css/font_cn/_gb/msyh.svg#msyh") format("svg"); /* iOS 4.1- */
}
}
body {
    font-family:"tahoma","Microsoft YaHei","SimSun";
}
-->
</style>

现丑了,具体应用,参见:http://www.furuijinzhao.com/

用PC浏览器浏览时,使用浏览器默认字体;用手机浏览器浏览时调用自定义字体,实现不被手机系统字体所干扰。

如果您认为此篇对您有帮助,请不吝点赞,谢谢!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值