移动端开发个人笔记

移动端

一,移动端相关概念

  1. 移动端概念:可以移动的设备称之为移动端,一般指手机,平板,手表等。
  2. 我们开发时主要考虑的是手机界面,app
  3. 移动端查看模拟器功能

二,移动端手机像素

《1》物理像素

​ 设备出厂时的屏幕像素点

《2》逻辑像素/CSS像素

​ CSS样式表中使用的像素就叫逻辑像素

《3》设备像素比/DPR

​ 设备像素比=物理像素/CSS像素

三,视口

《1》布局视口:

​ 布局视口是指网页的宽度,一般移动端浏览器都默认设置了布局视口的宽度,布局视口的默认宽度有可能是768px、980px或1024px等。

1,浏览器设置布局视口的原因:

​ 有些网站是没有对移动端进行开发的,为了能够让用户观看,设置了布局视口,但是布局视口只是能看,并不能给用户最佳的观看体验。

《2》视觉视口:

​ 是指用户看到的区域,及屏幕窗口的大小

《3》理想视口:

理想视口是指对设备来讲最理想的视口尺寸,能够给用户最佳的移动端观看体验

设置理想视口代码如下:

<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />

四,移动端布局(PX固定布局)

《1》设置理想视口

《2》*{margin:0; padding:0;}

​ body{display :flex;

​ flex-direction: column; }

​ 中间模块{flex :1;

​ overflow-y : auto; }

《3》设计图量出来,根据设计图的设备像素比,计算出来我们要使用的CSS像素进行开发

缺点:

只能在出具设计图的机型上才能适配,无法适配其他机型。

五,其他的移动端布局方案

《1》可切换的固定布局

​ 同样以像素作为页面单位,参考主流设备尺寸,设计几套不同宽度的布局。通过识别的屏幕尺寸或浏览器宽度,选择最合适的那套宽度布局;

总结:

​ 响应式布局的理念,有部分网页时这么做的

《2》弹性布局/百分比布局(常用)

比百分比作为页面的基本带我,多使用弹性盒布局,可以适应一定范围内所有尺寸的设备屏幕及浏览器宽度,并能完美利用有效空间展现最佳效果。

《3》等比缩放布局/rem布局

使用rem作为移动端开发的基本单位,可以实现页面随着屏幕大小变化而等比缩放

《4》混合布局

弹性盒盒等比缩放布局综合使用。

六,响应式布局

《1》优缺点:

优点:

1,面对不同分辨率设备灵活性强

2,能够快捷解决多设备显示适应问题

缺点:

1,兼容各种设备工作量大,效率低下

2,代码累赘,会出现隐藏无用的元素,加载时间加长

3,其实这是一种折中性质的设计解决方案,多方面因素影响而达不到最佳效果

4,一定程度上改变了网站原有的布局结构,会出现用户混淆的情况

《2》如何实现响应式布局-媒体查询 @media

(1) 概念:

​ 媒体查询可以让我们根据设备显示器的特性为其设定CSS样式.

(2) 组成:

​ 媒体查询由媒体类型和一个或多个检测媒体特性的条件表达式组成。

(3) 格式:

​ @media all and (min-width:320px) and (max-width:480px){

需要响应的CSS样式

}

(4)媒体类型

​ 前端常用的类型有:

​ all 所有设备

​ screen 显示器,笔记本,移动端(前端页面显示设备)

​ handled 便携设备(移动端)

七,弹性布局/百分比布局

《1》特点:

控件弹性:

​ (1)关键模块高度和位置不变,宽度根据窗口大小自适应。

​ (2)布局多使用弹性布局,控件左右,左中右,居中分布,让左右固定,中间伸缩

文字流试:

​ (1)文字内容模块不去写固定的宽高,让内容自动撑开

图片等比缩放:

​ (1)图片不写固定的高度,宽度写百分比,让图片随着窗口大小等比缩放

《2》总结:

​ 弹性布局比较吃设计,开发时对于一些关键模块宽高固定,中间伸缩。

​ 多使用弹性盒,百分比开发。

八,前端常用开发单位

单位
px 像素
em 相对父元素的字体大小去,参照物是父元素字体大小,而不是父元素身上的其他属性大小
rem 相对根元素的字体大小,相对于html标签字体大小
vw vw视窗宽度单位(1vw视窗宽度的百分之1)
vh vh视窗高度单位(1vw视窗高度的百分之1)

九,等比缩放布局/rem布局

《1》特点:

​ 页面里边的元素会根据分辨率等比例放大或缩小.

《2》如何实现:

​ 1,rem——相对根元素字体大小:

​ 如果开发的时候,我们的单位全部使用rem,这个时候我们的每一个大小都不是一个固定值,而是一个变量,就能实现代码不变,根元素的字体一变,整个页面就会跟着变。

​ 理论上,如果能够让根元素的字体大小随着分辨率实时改变,那么我们用rem开发,页面就能够实现等比缩放。

​ 2,vw——针对视窗宽度单位:

​ 1vw等于视窗宽度的百分之1,如果屏幕视窗宽度大小为1080px,那么1vw==10.8px,这个单位参考物为屏幕窗口大小,视窗一旦变化,他所代表的数值也会跟着改变,

​ 如果我们将根元素字体大小设置为vw,那么根元素的字体大小就会跟着屏幕的大小改变,根元素的字体大小改变页面的rem数值也会跟着改变。

​ 3,如何设置比例方便我们计算:

​ 总结:

​ html{

​ font-size:10000/设计图物理像素宽度;

​ /* 开发时换算比例为 1rem==100px; */

​ }

十,混合布局

等比缩放布局+弹性布局

在开发中,可以使用弹性布局的地方还用弹性布局,涉及到具体大小,我们用rem单位。

十一,Grid网格布局

《1》含义:

​ 它将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局

《2》区别:

​ Grid 布局与 Flex 布局有一定的相似性,都可以指定容器内部多个项目的位置。但是,它们也存在重大区别。
Flex 布局是轴线布局,只能指定"项目"针对轴线的位置,可以看作是一维布局。
Grid 布局则是将容器划分成"行"和"列",产生单元格,然后指定"项目所在"的单元格,可以看作是二维布局。

《3》相关概念:

容器:一个案例中最大的盒子,可以理解成父元素

项目:一个案例中的,最大盒子里面的内容,可以理解成子元素

行和列:容器里面的水平区域称为"行",垂直区域称为"列"。

单元格:行和列的交叉区域,称为"单元格"。

网格线:划分网格的线,称为"网格线"。水平网格线划分出行,垂直网格线划分出列。

N行N列 N+1横N+1竖

《4》gird布局容器属性(写给父元素)

1,将元素变为网格布局容器

​ display:grid; 块元素类型的网格布局

​ display:inline-gird; 行内块元素类型的网格布局

2,gird-template-rows 划分行
3, grid-template-columns 划分列

​ 特点:网格布局需要搭配行列划分去使用,容器进行行列划分后,项目默认水平从左往右在网格中排列。

​ 行列划分的属性值写法:

​ (1)xx yy zz; 具体数值,有几个参数划分几行几列,每一个参数是行列的宽或者高

​ (2)功能函数 repeat(X,Y) 第一个参数为重复几次,第二个参数为重复的内容

​ (3) 关键词 repeat(auto-fill,XXX) 作为repeat()的第一个参数使用,根据重复内容自动计算重复次数。

​ (4) 关键字fr 将行列总体划分为N份,每个fr参数为占据几分之几

​ (5)minmax() 功能函数 行列的最大最小值

​ (6)auto 关键字 自动填充,一组值中建议写一个

4,通过划分网格线,合并网格线来合并网格

​ grid-template-rows :[x1] 100px [x2] 100px [x3] 100px [x4];

​ grid-template-columns :[y1] 100px [y2] 100px [y3] 100px [y4];

5,指定区域:

​ gird-template-areas:

​ “a b c c ”

​ "d e c c"

​ "d g g h"

​ "f g g h“;

注意:

​ 1,划分区域时,只能横着或者竖着,不能斜着划分,也不能拐弯。

​ 2,可以使用.作为占位符使用,占位符不能写给项目当空间使用。

6,行列间距:

​ grid-row-gap 行间距

​ grid-column-gap 列间距

grid-gap 行列间距,第一次参数是行间距,第二个参数是列间距

7,项目排列顺序:grid-auto-flow

​ row(默认值) 横向排列

​ column 纵向排列

8,单元格对其方式

​ justify-items 水平对其方式

​ align-items 垂直对其方式

place-items: align-items justify-items ;(第一个参数为垂直,第二个参数为水平)

​ start 开始位置

​ center 居中

​ end 结束位置

​ stretch 拉伸(默认值)

9,网格行列分布方式

​ justify-content 行对其方式

​ align-content 类对其方式

​ place-content:align-content justify-content ;(第一个参数为垂直,第二个参数为水平)

​ start 整体靠开始位置

​ center 整体居中

​ end 整体结束位置

​ space-around 整体环绕式分布

​ space-between 整体两端分布

​ stretch 拉伸充满屏幕(默认值)

《5》项目属性(写给子元素)

​ 1, grid-row:开始行线/结束行线;

​ grid-column:开始列线/结束列线;

​ 作用:通过规定行和列开始线和结束线来合并网格,制定元素出现的位置

​ 2,grid-area 指定元素所在的区域

posted @   成绩稳在五十七  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
点击右上角即可分享
微信分享提示