6.移动开发基础
一、移动web开发入门
1.像素
(1)分辨率
(2)物理像素(physical pixel):也叫设备像素(dp:device pixel)
(3)CSS像素:也叫逻辑像素(logical pixel),也叫设备独立像素(dip:device independent pixel);实际开发中使用的像素。
(4)设备像素比(dpr:device pixel ratio):dpr=设备像素/CSS像素(缩放比是1的情况下);dpr=2表示一个css像素用2*2个设备像素来绘制。
(5)标清屏和高清屏:dpr是1的为标清屏,大于1的都可认为是高清屏。
(6)缩放:缩放改变的是css像素的大小。
(7)PPI/DPI(pixels per inch /dots per inch):PPI表示每英寸的物理像素点。
;
为屏幕对角线的分辨率,为屏幕横向分辨率,为屏幕纵向分辨率,为屏幕对角线的长度(单位为英寸)。
2.视口-viewport
-
<meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable=no,maximum-scale=1,minimum-scale=1">
-
-
//viewport:视口
-
//content="width=device-width"自适应视口宽度
-
//initial-scale:缩放比
-
//user-scalable=no:用户不能控制屏幕放大缩小。
3.box-sizing
-
box-sizing:content-box;
-
//宽度和高度分别应用到元素的内容框,在宽度和高度之外绘制元素的内边距和边框。
-
-
box-sizing:border-box;
-
//为元素设定的宽度和高度决定了元素的边框盒。
-
就是说,为元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。
-
通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。
4.Flex布局
(1)什么是flex布局:Flex 是 Flexible Box 的缩写,意为"灵活的盒子"或"弹性的盒子",所以 flex 布局一般也叫作"弹性布局"。
(2)基本概念:
flex容器:采用flex布局的元素,称为flex容器。
flex项目:flex容器的所有子元素(孙子元素不是)自动成为容器成员,称为flex项目。项目默认沿主轴排列。
(3)容器属性:
a.display:属性决定是否使用flex布局。
.box{ display:flex|inline-flex} //flex:将对象作为弹性伸缩盒显示. //inline-flex:将对象作为内联块级弹性伸缩盒显b.flex-direction:决定主轴的方向(即项目的排列方向)
.box { flex-direction: row | row-reverse | column | column-reverse; } //row(默认值):主轴为水平方向,起点在左端 //row-reverse:主轴为水平方向,起点在右端 //column:主轴为垂直方向,起点在上沿 //column-reverse:主轴为垂直方向,起点在下沿c.flex-wrap:默认情况下,项目都排在一条线(又称"轴线")上,flex-wrap 属性定义,如果一条轴线排不下,如何换行。
.box{ flex-wrap: nowrap | wrap | wrap-reverse; } //nowrap(默认):不换行 //wrap:换行,第一行在上方 //wrap-reverse:换行,第一行在下方d.flex-flow:是 flex-direction 属性和 flex-wrap 属性的简写形式,默认值为 row nowrap。
.box { flex-flow: <flex-direction> || <flex-wrap>; }
e.justify-content:定义了项目在主轴上的对齐方式。
.box { justify-content: flex-start | flex-end | center | space-between | space-around; } //flex-start(默认值):左对齐 //flex-end:右对齐 //center: 居中 //space-between:两端对齐,项目之间的间隔都相等 //space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍f.align-items:定义项目在交叉轴上如何对齐。
.box { align-items: flex-start | flex-end | center | baseline | stretch; } //flex-start:交叉轴的起点对齐 //flex-end:交叉轴的终点对齐 //center:交叉轴的中点对齐 //baseline: 项目的第一行文字的基线对齐 //stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度g.align-content:定义了多根轴线(多行)在交叉轴上的对齐方式,如果项目只有一根轴线(一行),该属性不起作用。
.box { align-content: flex-start | flex-end | center | space-between | space-around | stretch; } //flex-start:交叉轴的起点对齐 //flex-end:与交叉轴的终点对齐 //center:与交叉轴的中点对齐 //space-between:与交叉轴两端对齐,轴线之间的间隔平均分布 //space-around:每根轴线两侧的间隔都相等,所以,轴线之间的间隔比轴线与边框的间隔大一倍 //stretch(默认值):轴线占满整个交叉轴(4)项目的属性:
a.order:定义项目的排列顺序,数值越小,排列越靠前,默认为0。
b.flex-grow:定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大;如果所有项目的 flex-grow 属性都为1,则它们将等分剩余空间(如果有的话);如果一个项目的 flex-grow 属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍;如果有的项目有 flex-grow 属性,有的项目有 width 属性,有 flex-grow 属性的项目将等分剩余空间。
c.flex-shrink:定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小;如果所有项目的 flex-shrink 属性都为1,当空间不足时,都将等比例缩小;如果一个项目的 flex-shrink 属性为0,其他项目都为1,则空间不足时,前者不缩小,负值对该属性无效。
d.flex-basis:定义了在分配多余空间之前,项目占据的主轴空间(main size);浏览器根据这个属性,计算主轴是否有多余空间,它的默认值为auto,即项目的本来大小
e.flex:是 flex-grow, flex-shrink 和 flex-basis 的简写,默认值为0 1 auto后两个属性可选;该属性有两个快捷值:auto (1 1 auto) 和 none (0 0 auto)
f.align-self:允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性;默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。
5.媒体查询--基础
(1)什么是媒体查询:media query
@media screen and (min-width: 900px) { body { background-color: red; }(2)为什么需要没媒体查询:一套样式不可能适应各种大小的屏幕,针对不同的屏幕大小写样式。
(3)媒体样式:all(default)、screen、print、speech
(4)媒体查询中的逻辑:与(and)、或(,)、非(not)
(5)媒体特征表达式:
width/max-width/min-width -webkit-device-pixel-ratio/-webkit-max-device-pixel-ratio/-webkit-min-pixel-ratio orientation landscape/portrait height device-width/device-height screen.width/screen.height aspect-ratio 视口的宽高比
6.媒体查询--策略
(1)断点:改变屏幕大小,当页面显示不正常的时候,就需要设置断点。
@media (max-width: 576px) { .col { width: 100%; } } @media (min-width: 577px) and (max-width: 768px) { .col { width: 50%; } } @media (min-width: 769px) and (max-width: 992px) { .col { width: 25%; } } @media (min-width: 993px) and (max-width: 1200px) { .col { width: 16.6666666667%; } } @media (min-width: 1201px) { .col { width: 8.333333333%; } } /*pc first*/ .col { width: 8.333333333%; } @media (max-width: 1200px) { .col { width: 16.6666666667%; } } @media (max-width: 992px) { .col { width: 25%; } } @media (max-width: 768px) { .col { width: 50%; } } @media (max-width: 576px) { .col { width: 100%; } } /*mobile first*/ .col { width: 100%; } @media (min-width: 576px) { .col { width: 50%; } } @media (min-width: 768px) { .col { width: 25%; } } @media (min-width: 992px) { .col { width: 16.6666666667%; } } @media (min-width: 1200px) { .col { width: 8.33333333%; } }
二、响应式布局
三、移动端屏幕适配
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhghaejg
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13