前端html原生页面兼容多端H5和移动端适配方案

目录

    • 图片
    • 代码
    • 最后

图片

是一个注册页面
请添加图片描述

代码

自己查看效果

注意: 单位全部用rem这样才能保证兼容性适配多端,px转rem转换公式
1px = 1/37.5rem
所以想要20px应该对应20/37.5 = 0.53rem

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" /><title>注册五福亿家</title><style>* {margin: 0;padding: 0}/* 但这样我们会发现在写布局的时候会非常复杂,也就是你需要自己手动去计算一下对应的rem值,
比如上面的font-size设计稿上是20px,那我们就要计算一下20px对应的rem是多少,
按我们上面的规则,1px = 1/37.5rem,所以20px应该对应20/37.5 = 0.53rem */.register {width: 10rem;height: 4rem;/* background-color: antiquewhite; *//* 18px 以18px字体为基准*/font-size: 0.48rem;}.register_box {padding: 0.4rem 0.98rem;box-sizing: border-box;}.register_nav {padding: 2.4rem 0;padding-bottom: 1.46rem;}.title {font-size: 0.69rem;font-weight: 600;margin-bottom: 0.42rem;}.register_form {display: flex;flex-direction: column;}.form_list {display: flex;align-items: center;}.form_list_tit {font-size: 0.45rem;/* 	position: relative;bottom: 1px; */width: 3rem;}.form_list_ipt {width: 4.96rem;height: 1.2rem;border-bottom: 0.02rem solid #f4f4f4;/* border: 0.02rem solid red; */display: flex;justify-content: center;}.form_list_ipt input {outline: none;background: transparent;border: none;outline: medium;width: 100%;/* font-size: 0.45rem; */}// 当输入框获取焦点时.form_list_ipt input:focus {outline: none;background-color: transparent;}// 选择输入文本时,默认蓝色,改为透明::selection {background: transparent;}::-moz-selection {background: rgb(241, 241, 241);}/* 阅读 */.read {padding-top: 0.4rem;display: flex;flex-direction: row;align-items: center;}.read_size {font-size: 0.1rem;color: f4f4f4;}.read_size_grn {font-size: 0.1rem;color: rgb(26, 173, 88);}.read_size_radio {margin-right: 0.1rem;}.read_size_rgt {margin-right: 0.1rem;}#registerBtn {width: 100%;height: 1.2rem;line-height: 1.2rem;font-size: 0.45rem;border-radius: 0.58rem;color: #ffffff;background-color: #19ad57;margin: 0.4rem 0;text-align: center;}</style><script>function setRootRem() {const root = document.documentElement;/** 以iPhone6为例:布局视口为375px,我们把它分成10份,则1rem = 37.5px,* 这时UI给定一个元素的宽为375px(设备独立像素),* 我们只需要将它设置为375 / 37.5 = 10rem。*/const scale = root.clientWidth / 10root.style.fontSize = scale + 'px'}setRootRem()window.addEventListener('resize', setRootRem)</script></head><body><div class="register"><div class="register_box"><div class="register_nav"><div class="title">注册五福亿家</div></div><div class="register_form"><div class="form_list"><div class="form_list_tit">手机号</div><div class="form_list_ipt"><input type="number" id="mobile" placeholder="请填写手机号"></div></div><div class="form_list"><div class="form_list_tit">昵称</div><div class="form_list_ipt"><input type="text" id="nick_name" placeholder="请填写昵称"></div></div><div class="form_list"><div class="form_list_tit">推荐人</div><div class="form_list_ipt"><input type="number" id="referee_id" placeholder="请填写推荐人"><!-- <input type="number" id="input"> --></div></div><div class="form_list"><div class="form_list_tit">登录密码</div><div class="form_list_ipt"><input type="password" id="password" placeholder="请填写登录密码"></div></div><div class="form_list"><div class="form_list_tit">确认登录密码</div><div class="form_list_ipt"><input type="password" id="repassword" placeholder="请填写确认登录密码"></div></div><div class="form_list"><div class="form_list_tit">支付密码</div><div class="form_list_ipt"><input type="password" id="pay_password" placeholder="请填写支付密码"></div></div><div class="form_list"><div class="form_list_tit">确认支付密码</div><div class="form_list_ipt"><input type="password" id="repay_password" placeholder="请填写确认支付密码"></div></div></div><div class="read"><div class="read_size read_size_radio"><input type="radio" checked></div><div class="read_size read_size_rgt">我已阅读并接受</div><div class="read_size_grn">《用户协议》</div><div class="read_size"></div><div class="read_size_grn">《隐私政策》</div></div><div id="registerBtn">注册</div></div></div></body><script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.js"></script><script>var mobile = document.getElementById('mobile');var nick_name = document.getElementById('nick_name');var referee_id = document.getElementById('referee_id');var password = document.getElementById('password');var repassword = document.getElementById('repassword');var pay_password = document.getElementById('pay_password');var repay_password = document.getElementById('repay_password');var registerBtn = document.getElementById('registerBtn');registerBtn.onclick = function() {var mobiles = mobile.value;var nickName = nick_name.value;var refereeId = referee_id.value;var passwords = password.value;var repasswords = repassword.value;var payPassword = pay_password.value;var repayPassword = repay_password.value;// 验证  if (!mobiles || !nickName || !refereeId || !passwords || !repasswords || !payPassword || !repayPassword) {// alert('账号或密码不能为空')alert('请输入,不能为空')return}// 提交数据  $.ajax({type:"POST",url:'https://wfyj.yunjingwl.com/index.php/api/user.useropen/register',data: {app_id: 10001,mobile: mobiles,nick_name: nickName,referee_id: refereeId,password: passwords,repassword: repasswords,pay_password: payPassword,repay_password: repayPassword,// type: 'add',},// https://www.cnblogs.com/hanguidong/p/9442927.html // 用JSON来传数据,靠JSONP来跨域// dataType: 'JSONP',dataType: 'JSON',// Headers:{// 	"Access-Control-Allow-Origin":'*'// },crossDomain: true,success: function(json) {alert(json.msg)},error: function(code) {alert(code)}})}</script>
</html>

最后

感觉文章好的话记得点个心心和关注和收藏,有错的地方麻烦指正一下,如果需要转载,请标明出处,多谢!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/111898.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小程序中使用分包

前言 小程序在未使用的分包的情况下仅支持大小为2M,如果图片等资源过多的情况下可以使用分包功能&#xff0c;使用分包的情况下单个分包大小不能超过2M,总大小不能超过20M&#xff0c;分包有两种情况&#xff1a;普通分包和独立分包&#xff0c;下面介绍的是普通分包。官方文档…

CANoe-Model Editor无法修改ARXML文件的问题、E2E在SOME/IP通信中的使用问题

1、Model Editor无法修改ARXML文件的问题 在CANoe 15软件版本中,Communication Setup导入arxml文件后,可以在model editor中打开arxml并修改配置。关闭model editor后再打开,可以看到修改的配置被保存了。 但是,当我把arxml文件从Communication Setup中移除后,再导入。此…

开启编程之门

自我介绍 目前已经大二了&#xff0c;计算机专业在读&#xff0c;是一个热爱编程&#xff0c;做事踏实专注的人。转眼间一年已经过去了&#xff0c;也接触编程一年了&#xff0c;但开始并没有对所学所想进行很好的总结和输出&#xff0c;这一年也有了新的很多感悟与心得&#x…

ArcGIS标注的各种用法和示例

标注是将描述性文本放置在地图中的要素上或要素旁的过程。 本文整理了ArcGIS中的各种标注方法、可能遇到的问题和细节,内容比较杂,想到哪写到哪。 一、正常标注某一字段值的内容 右键点击【属性】,在【标注】选项卡下勾选【标注此图层中的的要素】,在【文本字符串】栏中…

Vue 使用vue-pdf 显示pdf文件 切换页面 缩放 全屏 自动播放等

<template><div id"container"><!-- 上一页、下一页--><div class"right-btn"><div click"toFullOrExit" class"turn-btn"><span>{{ isFull 1 ? "取消全屏" : "全屏" }}&l…

Vue3 Ajax(axios)异步

文章目录 Vue3 Ajax(axios)异步1. 基础1.1 安装Ajax1.2 使用方法1.3 浏览器支持情况 2. GET方法2.1 参数传递2.2 实例 3. POST方法4. 执行多个并发请求5. axios API5.1 传递配置创建请求5.2 请求方法的别名5.3 并发5.4 创建实例5.5 实例方法5.6 请求配置项5.7 响应结构5.8 配置…

7.idea 使用 docker 构建 spring boot 项目

本文目录 step 1&#xff1a;编写 Dockerfile 文件step 2&#xff1a;pom.xml 中添加如下配置step 3&#xff1a;maven仓库 setting.xml <servers> 模块下&#xff0c;添加访问自定义仓库的用户名&#xff0c;密码step 4&#xff1a;使用 maven命令开始 clean、packagest…

2023年华为杯研究生数学建模竞赛辅导

2023年华为杯研究生数学建模竞赛辅导 各研究生培养单位&#xff1a; 中国研究生数学建模竞赛作为教育部学位管理与研究生教育司指导&#xff0c;中国学位与研究生教育学会、中国科协青少年科技中心主办的“中国研究生创新实践系列大赛”主题赛事之一&#xff0c;是一项面向在校…

kafka知识点汇总

kafka是什么&#xff1f; Kafka是一个分布式的基于发布/订阅模式的消息队列&#xff08;Message Queue&#xff09;&#xff0c;主要应用于大数据实时处理领域。 Kafka是由Apache软件基金会开发的一个开源流处理平台&#xff0c;由Scala和Java编写。Kafka是一种高吞吐量的分布…

K8S:pod资源限制及探针

文章目录 一.pod资源限制1.pod资源限制方式2.pod资源限制指定时指定的参数&#xff08;1&#xff09;request 资源&#xff08;2&#xff09; limit 资源&#xff08;3&#xff09;两种资源匹配方式 3.资源限制的示例&#xff08;1&#xff09;官网示例&#xff08;2&#xff0…

2023年最热门的编程语言:前进的趋势和机会

2023年最热门的编程语言&#xff1a;前进的趋势和机会 2023年最热门的编程语言&#xff1a;前进的趋势和机会摘要引言1. 编程语言的热门趋势1.1 新兴编程语言的崛起1.2 编程语言的可持续性发展1.3 跨平台编程语言的兴起1.4 人工智能和机器学习编程语言的需求 2. 编程语言职业机…

在PHP8中对数组进行排序-PHP8知识详解

在php8中&#xff0c;提供了丰富的排序函数&#xff0c;可以对数组进行排序操作。常见的排序函数如下几个&#xff1a;sort() 函数、rsort() 函数、asort() 函数、arsort() 函数、ksort() 函数、krsort() 函数、natsort()函数和natcascsort()函数。 1、sort() 函数&#xff1a;…