吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4288|回复: 11
收起左侧

[其他转载] CSS3 @media 媒体查询配合ZOOM属性快速做自适应网站

[复制链接]
fengrui99 发表于 2019-6-26 13:53
本帖最后由 fengrui99 于 2019-7-7 12:14 编辑

原文来自枫瑞网:https://www.frbkw.com/1818/


2019.07.07更新
更具大佬提示 检查了一下文章修改2个错误
1.文本中应该是高度为800px,写成宽度了。
2.js中函数名字写错,以及代码中未添加事件


以上是修改内容文章以更新,大意丢失了细节感谢@yqesl1 提醒,另外js也只是多一种思路,一个不同的方式。木有说明一定要使用js哦

其实枫瑞在写这文章的时候比较纠结,这个方式目前还需要嘛?我们在设计网站的时候都会要求适应不同分辨率以及移动端,
也好在目前主流前端UI框架都可以帮助我们处理这些事情。

但也有一些项目需求不能使用框架需要自己手写,那么大家首先会想到最简单的方式使用百分比布局,media媒体查询方式我们就得对对不同的分辨率针对性的做一些专门的处理。
以下枫瑞会对meia方式,以及js操作zoom,css操作zoom三种方式去说明。zoom方式很适合偷懒,比较我一行代码可以解决的事情为啥要去做两行代码去解决呢?对吧!不偷懒的员工都不是好员工,
本文只是介绍一个简单的方式,如果追求质量最好住专门去写一个media。


media:不同分辨率修改样式
举个栗子:现在有一个网页 在1920*1080屏幕下,一个黑色背景的DIV高度为800px;


[Asm] 纯文本查看 复制代码
<!DOCTYPE html>
<html lang="zh-cmn-Hans">
        <head>
                <meta charset="utf-8" />
                <title></title>
                <style>
                        .bg{background-color: #000000;height: 800px;}
                </style>
        </head>
        <body class="feng">
                <div class="bg"></div>                
        </body>
</html>


在1366*768屏幕下就不能为800px,我们就可以使用媒体查询方式去修改高度:
[Asm] 纯文本查看 复制代码
@media(max-width:768px)
{
  .bg{height:400px}
}


整理后
[Asm] 纯文本查看 复制代码
<!DOCTYPE html>
<html lang="zh-cmn-Hans">
        <head>
                <meta charset="utf-8" />
                <title></title>
                <style>
                        .bg{background-color: #000000;height: 800px;}
                        @media(max-width:1366px)
                        {
                         .bg{height: 400px;}
                        }                        
                </style>
        </head>
        <body class="feng">
                <div class="bg"></div>
                
        </body>
</html>


zoom控制网页

zoom属性设置或检索对象的缩放比例,通俗的理解我们在body标签添加一个class标签,在使用媒体查询的方式去修改zoom的值,这样就达到了不同分辨率下不用再去针对性的修改样式
[Asm] 纯文本查看 复制代码
!DOCTYPE html>
<html lang="zh-cmn-Hans">
        <head>
                <meta charset="utf-8" />
                <title></title>
                <style>
                        .bg{background-color: #000000;height: 800px;}
                        @media(max-width:1366px)
                        {
                         .feng{zoom: 50%;}
                        }                        
                </style>
        </head>
        <body class="feng">
                <div class="bg"></div>
                
        </body>
</html>


js 方式控制zoom

在dody标签中添加onload=”fengrui()”事情在给一个class=”zoom“
[Asm] 纯文本查看 复制代码
<head>
		<meta charset="utf-8" />
		<title></title>

		<style>
			.bg{background-color: #000000;height: 800px;}
		</style>
		<script>
		function fengrui()
		{
		screen.width
		screen.height
		 if (window.screen.width=='1366')
		 document.body.style.zoom = '67%';
		else if (window.screen.width =='1600')
		 document.body.style.zoom = '80%' ;
		}
		</script>
	</head>
	<body class="zoom">
		<div class="bg"></div>
		
	</body>
</html>

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
a847404572 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

yqesl1 发表于 2019-7-6 15:20
1.描述与代码不一致,一个说是div宽度是800px,代码却是height;函数名字写错onload=”fnegrui()”,运行你的代码肯定一堆bug

2.媒体查询没有写全,window.screen.width=='1366'也不好,现在的屏幕的分辨率类型更多,判断不准确,可以用CSS 3的@media(max-device-width:1366px)之类进行处理

3.媒体查询使用css3即可,看看相关api,没有必要使用JS
 楼主| fengrui99 发表于 2019-7-7 12:06
本帖最后由 fengrui99 于 2019-7-7 12:15 编辑
yqesl1 发表于 2019-7-6 15:20
1.描述与代码不一致,一个说是div宽度是800px,代码却是height;函数名字写错onload=”fnegrui()”,运行你 ...

哈!老哥 我看下了帖子 高度800px,文字中打错为宽度。另外js也只是提供一个方式,提供媒体查询控制zoom百分比和js去控制。文中确实错别人和细节地方比较多,这是我疏忽。
hlh2518 发表于 2019-6-26 14:04
zjhjszwx 发表于 2019-6-26 14:27
受教了!谢谢分享
glk1010282338 发表于 2019-6-26 17:35
老铁发帖 得支持!
psx1lin 发表于 2019-6-26 17:46
學習了
谢谢分享
头像被屏蔽
cszwjwzq1 发表于 2019-7-6 12:20
提示: 作者被禁止或删除 内容自动屏蔽
chenya 发表于 2019-7-7 14:59
谢谢分享,学习了
geluyx 发表于 2019-7-7 22:58
受教了!谢谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 11:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表