网站首页 > 技术文章 正文
随移动端设备的普及,移动web网站成为了前端工程师工作主攻点
诸多的手机厂商,导致每种手机机型、分辨率等手机参数相差很多,同时给前端开发人员增加了工作难度
此时手机端的适配是个不得不解决的问题
下面介绍一下网站适配的实现及原理是如何操作的
首先要在html页面中添加适配meta标签使页面与手机设备宽度生成一定比例:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
自适应工作原理也比较简单
将外层容器元素按照百分比铺满
容器内元素生成固定像素或百分比或左右浮动形式来进行内容填充
<div class="div">
<div class="div1">div1</div>
<div class="div2">div2</div>
</div>
.div {
width: 100%;
overflow: hidden;
}
.div1 {
width: 20%;
height: 50px;
float: left;
}
.div2 {
width: 50px;
height: 50px;
float: right;
}
由于父级元素采用百分比的布局方式,随着屏幕的拉伸,它的宽度会无限的拉伸
而子元素由于采用了浮动,那么它们的位置也会固定在两端
但适配方法随着迭代发展,也慢慢的被flex弹性伸缩盒子的布局方式所替代
除此之外,在移动端的HTML页面上不要使用绝对字体(px)
而要使用相对字体(em/rem)
对于大多数浏览器来说,通常用em = px/16换算,例如16px就等于1em
rem属性指的是相对于根元素设置某个元素的字体大小
它同时也可以用作为设置高度等一系列可以用px来标注的单位
写入以下一段js,以宽度为375的手机设备为例,将页面中'px'单位转换为'rem'
(function(doc, win) {
var docE1 = doc.documentElement,
resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
recalc = function() {
var clientWidth = docE1.clientWidth;
if (!clientWidth) return;
docE1.style.fontSize = 15 * (clientWidth / 375) + 'px'; // 转化为25rem
};
if (!doc.addEventListener) return;
win.addEventListener(resizeEvt, recalc, false);
doc.addEventListener('DOMContentLoaded', recalc, false);
})(document, window);
- 上一篇: 聊聊前端性能指标那些事儿
- 下一篇: 「干货」移动端Web页面适配
猜你喜欢
- 2024-11-22 预加重、去加重和均衡
- 2024-11-22 建议收藏!总结了 42 种前端常用布局方案
- 2024-11-22 springboot开源系统-解决弹框拉伸高度无法自适应问题
- 2024-11-22 「干货」移动端Web页面适配
- 2024-11-22 聊聊前端性能指标那些事儿
- 2024-11-22 深蓝S7——巡航控制——自适应巡航系统(ACC)2
- 2024-11-22 前端学习路径,细化分讲。加深新手对前端技术的认知
- 2024-11-22 看似简单的css宽度自适应,间距固定踩坑记
- 2024-11-22 好程序员web前端教程分享如何用CSS做响应式布局
- 2024-11-22 Web前端新手怎么入门 如何用CSS做响应式布局
你 发表评论:
欢迎- 07-10Oracle 与 Google Cloud 携手大幅扩展多云服务
- 07-10分享收藏的 oracle 11.2.0.4各平台的下载地址
- 07-10Oracle 和 Microsoft 推出 Oracle Exadata 数据库服务
- 07-10Oracle Database@Azure 推进到南美等新区域并增加了新服务
- 07-10Oracle宣布推出 Oracle Database@AWS 的有限预览版
- 07-10Oracle与Nextcloud合作,推出主权云上的安全协作平台
- 07-10NodeRED魔改版连接MsSql、PostgreSQL、MySQL、OracleDB存储无忧
- 07-10对于企业数据云备份,“多备份”承诺的是成本更低,管理更高效#36氪开放日深圳站#
- 602℃几个Oracle空值处理函数 oracle处理null值的函数
- 594℃Oracle分析函数之Lag和Lead()使用
- 582℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 579℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 574℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 567℃【数据统计分析】详解Oracle分组函数之CUBE
- 554℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 548℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- Oracle 与 Google Cloud 携手大幅扩展多云服务
- 分享收藏的 oracle 11.2.0.4各平台的下载地址
- Oracle 和 Microsoft 推出 Oracle Exadata 数据库服务
- Oracle Database@Azure 推进到南美等新区域并增加了新服务
- Oracle宣布推出 Oracle Database@AWS 的有限预览版
- Oracle与Nextcloud合作,推出主权云上的安全协作平台
- NodeRED魔改版连接MsSql、PostgreSQL、MySQL、OracleDB存储无忧
- 对于企业数据云备份,“多备份”承诺的是成本更低,管理更高效#36氪开放日深圳站#
- 解读丨《归档文件整理规则》— 电子文件元数据存储
- Data Guard跳归档恢复的实践(dataguard failover)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (57)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)