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

news2024/11/25 11:30:02

目录

    • 图片
    • 代码
    • 最后

图片

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

代码

自己查看效果

注意: 单位全部用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 / 10
				root.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.coloradmin.cn/o/1009536.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

生成随机数列向量并保存到不同的log文件中

随机数列要求 长度 10元素随机每个数列中有两个相同的元素生成到100个文本中每个文本数列数量为 1000 代码 import torch import pickle import numpy as np import os import shutil import loggingdef creat_logger(log_path,logging_name,suf_name):if not os.path.exists(…

免费知识管理系统,让企业管理文档数据更便捷

编者按&#xff1a;本文详细介绍了免费强大的低代码平台在构建知识管理系统方面的优势&#xff0c;并介绍了其知识管理系统独特的功能。只需轻松操作&#xff0c;即可体验到该平台带来的便捷与高效&#xff01;快来了解如何利用这一神奇的工具&#xff0c;让知识管理变得更加轻…

DataX实现Mysql与ElasticSearch(ES)数据同步

文章目录 一、Linux环境要求二、准备工作2.1 Linux安装jdk2.2 linux安装python2.3 下载DataX&#xff1a; 三、DataX压缩包导入&#xff0c;解压缩四、编写同步Job五、执行Job六、定时更新6.1 创建定时任务6.2 提交定时任务6.3 查看定时任务 七、增量更新思路 一、Linux环境要求…

定制化图标——Element UI 组件图标替换指南

本篇博客将介绍如何在使用 Element UI 组件时对原生图标进行定制化替换&#xff0c;提供了适用于满足个性化需求的方法和技巧。 引言 Element UI 是一款基于 Vue.js 的流行 UI 组件库&#xff0c;在前端开发中得到广泛应用。然而&#xff0c;在使用 Element UI 的组件时&#…

java内存泄漏和内存溢出oom排查思路

1、可能出现 2、如何去进行排查 3、visualvm分析 4、Jprofile分析 案例

使用C#开发163邮件发送功能

创建SMTP服务器&#xff08;发送邮件需要SMTP服务器代发&#xff09; 这里介绍创建网易SMTP&#xff08;SMTP是邮件通讯格式&#xff09;服务器&#xff1a; 1.先注册一个163网易邮箱 2.注册成功后登陆该邮箱 3.在该邮箱中找到设置>POP3/SMTP/IMAP点击进入&#xff0c;如下…

【LeetCode-简单题】541. 反转字符串 II

文章目录 题目方法一&#xff1a;双指针 题目 方法一&#xff1a;双指针 题目的意思&#xff1a; 通俗一点说&#xff0c;每隔k个反转k个&#xff0c;末尾不够k个时全部反转&#xff1b; 需要注意右边界的取值 int r Math.min(l k -1,n-1);//取右边界与n-1的最小值 确定边界…

抖店什么类目容易起店?新开通的抖店,最好是从这几个类目做起

我是王路飞。 做抖店之前&#xff0c;你需要先考虑好自己要做什么类目&#xff0c;适合做什么类目。 如果你什么都不了解&#xff0c;单凭自己的个人喜好去确定类目&#xff0c;大概率是做不起来的。 因为你作为一个没有电商经验的新手&#xff0c;并没有足够的能力判断抖音…

2020南京站ICPC F Firworks - 概率 + 三分

几何分布&#xff1a;每次时间发生的概率互不影响 每次成功的概率是1 - &#xff08;1 - p&#xff09;^ k,所以期望就为1 / &#xff08;1 - &#xff08;1 - p&#xff09;^ k&#xff09;。 期望再乘以该次花费的时间就是在第k轮放烟花的答案&#xff0c;然后让我们求最小…

celery app control inspect python后台控制

i tasks.app.control.inspect() # 创建inspect对象&#xff0c;可以操作tasks的队列管理 i.active(safeNone) # Return list of tasks currently executed by workers. i.reserved(safeNone) # Return list of currently reserved tasks, not including scheduled/active c…

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

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

【SpringBoot】生成二维码、在图片中嵌入二维码

背景 说明&#xff1a;本文章是介绍&#xff0c;在一张背景图片中嵌入生成的二维码和中文文字。 用处&#xff1a;比如活动分享二维码的时候&#xff0c;提供一张背景图&#xff0c;然后在背景图中嵌入二维码等。 注意&#xff1a;二维码和文字的位置需要你自行调整。 一、依赖…

el-dialog__body的border-radius属性失效解决思路

我的代码 .select-page :deep(.el-dialog__body) {padding: 0;width: 39.35vw;height: 60.03vh;background: #FFFFFF;border-radius: 3.78vh; }我查到的解决方案&#xff1a; 1、设置border&#xff1a;none; 去掉边框&#xff1b; 2、设置border-radius:40px; &#xff1b; 3…

电工-实验图解二极管伏安特性曲线和主要参数

实验图解二极管伏安特性曲线和主要参数 晶体二极管主要是由一个PN结构成&#xff0c;因此它应该与PN结具有相同的特性&#xff0c;即具有单向导电性。下面介绍加在二极管两端的电压和流过二极管的电流之间的关系。即二极管的伏安特性及二极管主要参数。 二极管伏安特性曲线 …

Java高级: 反射

目录 反射反射概述反射获取类的字节码反射获取类的构造器反射获取构造器的作用反射获取成员变量&使用反射获取成员方法反射获取成员方法的作用 反射的应用案例 接下来我们学习的反射、动态代理、注解等知识点&#xff0c;在以后开发中极少用到&#xff0c;这些技术都是以后…

李佳琦掉粉,国货品牌却从“商战大剧”走向“情景喜剧”

李佳琦直播间带货怼网友&#xff0c;“哪里贵了&#xff0c;国货很难的”“这么多年工资没涨&#xff0c;有没有认真工作&#xff1f;”本人事后垂泪道歉仍掉粉百万&#xff0c;但是闻风而来的国货品牌却迎来了一场流量盛宴。 从蜂花蹲点“捡”粉丝&#xff0c;上架三款79元洗…

多元函数的偏导数

目录 偏导数的定义 二元函数偏导数的几何意义 高阶偏导数 全微分 偏导数的定义 偏导数是一种特殊的数学概念&#xff0c;它是针对一个多变量的函数在某个自变量上的导数。 具体来说&#xff0c;对于一个有多个自变量的函数yf(x0, x1, xj, ..., xn)&#xff0c;在自变量xk固…

TCP特性的滑动窗口,流量控制

目录 一、TCP特性滑动窗口 二、TCP特性流量控制&#xff08;作为滑动窗口的补充&#xff09; 一、TCP特性滑动窗口 提高传输效率&#xff08;更准确的说&#xff0c;让TCP在可靠传输的前提下&#xff0c;效率不太拉跨&#xff09;&#x1f49b; 当然你要是想让TCP媲美UDP&…

清水模板是什么材质?

清水模板是建筑施工中常用的一种模板&#xff0c;用于浇筑混凝土结构的形成和支撑。它是指没有进行任何装饰和涂层处理的模板&#xff0c;通常由木材制成&#xff0c;如胶合板、钢模板等。下面是关于清水模板的详细介绍。 清水模板的材质多样&#xff0c;其中最常见的是胶合板。…

ASEMI二极管1N4148(T4)的用途和使用建议

编辑-Z 二极管是一种常见的电子元件&#xff0c;其中1N4148&#xff08;T4&#xff09;是一款广泛使用的快恢复二极管。它具有快速的开关特性和高反向阻挡能力&#xff0c;适用于多种电子应用。本文将介绍1N4148&#xff08;T4&#xff09;的特点、用途和如何正确使用该二极管…