sitemap
知识分享网:一个值得你收藏的网站!
当前位置:网站首页 > Html > H5移动端知识点总结

H5移动端知识点总结

作者:xuhongji发布时间:2020-09-11分类:Html浏览:77评论:0


导读:H5移动端知识点总结阅读目录移动开发基本知识点calc基本用法box-sizing的理解及使用理解display:box的布局理解flex布局Flex布局兼容知识...
H5移动端知识点总结

阅读目录

移动开发基本知识点

calc基本用法

box-sizing的理解及使用

理解display:box的布局

理解flex布局

Flex布局兼容知识点总结

回到顶部

移动开发基本知识点

一. 使用rem作为单位

html { font-size: 100px; }
@media(min-width: 320px) { html { font-size: 100px; } }
@media(min-width: 360px) { html { font-size: 112.5px; } }
@media(min-width: 400px) { html { font-size: 125px; } }
@media(min-width: 640px) { html { font-size: 200px; } }

给手机设置100px的字体大小; 对于320px的手机匹配是100px,其他手机都是等比例匹配; 因此设计稿上是多少像素的话,那么转换为rem的时候,rem = 设计稿的像素/100 即可;

二. 禁用a,button,input,optgroup,select,textarea 等标签背景变暗

在移动端使用a标签做按钮的时候或者文字连接的时候,点击按钮会出现一个 "暗色的"背景,比如如下代码:

button1

在移动端点击后 会出现"暗色"的背景,这时候我们需要在css加入如下代码即可:

a,button,input,optgroup,select,textarea{
    -webkit-tap-highlight-color: rgba(0,0,0,0);
}

三. meta基础知识点:

1.页面窗口自动调整到设备宽度,并禁止用户及缩放页面。

属性基本含义:

content="width=device-width:

控制 viewport 的大小,device-width 为设备的宽度

initial-scale - 初始的缩放比例

minimum-scale - 允许用户缩放到的最小比例

maximum-scale - 允许用户缩放到的最大比例

user-scalable - 用户是否可以手动缩放

2.忽略将页面中的数字识别为电话号码

3. 忽略Android平台中对邮箱地址的识别

4. 当网站添加到主屏幕快速启动方式,可隐藏地址栏,仅针对ios的safari

5. 将网站添加到主屏幕快速启动方式,仅针对ios的safari顶端状态条的样式

6. 需要在网站的根目录下存放favicon图标,防止404请求(使用fiddler可以监听到),在页面上需加link如下:

因此页面上通用的模板如下:


 
    
        
        
        
        
        
        
        标题
        
    
    
        这里开始内容
    

四:移动端如何定义字体font-family

body{font-family: "Helvetica Neue", Helvetica, sans-serif;}

五:在android或者IOS下 拨打电话代码如下:

打电话给:15602512356

六:发短信(winphone系统无效)

发短信给: 10010

七:调用手机系统自带的邮件功能

1. 当浏览者点击这个链接时,浏览器会自动调用默认的客户端电子邮件程序,并在收件人框中自动填上收件人的地址下面

发电子邮件

2、填写抄送地址;

在IOS手机下:在收件人地址后用?cc=开头;

如下代码:

填写抄送地址

在android手机下,如下代码:

填写抄送地址

3. 填上密件抄送地址,如下代码:

在IOS手机下:紧跟着抄送地址之后,写上&bcc=,填上密件抄送地址

填上密件抄送地址

在安卓下;如下代码:

填上密件抄送地址

4. 包含多个收件人、抄送、密件抄送人,用分号隔(;)开多个收件人的地址即可实现。如下代码:

包含多个收件人、抄送、密件抄送人,用分号隔(;)开多个收件人的地址即可实现

5、包含主题,用?subject=可以填上主题。如下代码:

包含主题,可以填上主题

6、包含内容,用?body=可以填上内容(需要换行的话,使用%0A给文本换行);代码如下:

包含内容,用?body=可以填上内容

7. 内容包含链接,含http(s)://等的文本自动转化为链接。如下代码:

内容包含链接,含http(s)://等的文本自动转化为链接

八:webkit表单输入框placeholder的颜色值改变:

如果想要默认的颜色显示红色,代码如下:

input::-webkit-input-placeholder{color:red;}

如果想要用户点击变为蓝色,代码如下:

input:focus::-webkit-input-placeholder{color:blue;}

同理,

textarea::-webkit-input-placeholder {color: blue;}

textarea::-moz-placeholder {color: blue;}

九:移动端IOS手机下清除输入框内阴影,代码如下

input,textarea {

-webkit-appearance: none;

}

十:在IOS中 禁止长按链接与图片弹出菜单

a, img {

-webkit-touch-callout: none;

}

回到顶部

calc基本用法

calc基本语法:

.class {width: calc(expression);}

它可以支持加,减,乘,除; 在我们做手机端的时候非常有用的一个知识点;

优点如下:

1. 支持使用 "+","-","*" 和 "/" 四则运算。

2. 可以混合使用百分比(%),px,em,rem等作为单位可进行计算。

浏览器的兼容性有如下:

IE9+,FF4.0+,Chrome19+,Safari6+

如下测试代码:

我是测试calc

.calc{
    margin-left:50px;
    padding-left:2rem;
    width:calc(100%-50px-2rem);
    height:10rem;
}

回到顶部

box-sizing的理解及使用

该属性是解决盒模型在不同的浏览器中表现不一致的问题。它有三个属性值分别是:

content-box: 默认值(标准盒模型); width和height只包括内容的宽和高,不包括边框,内边距;

比如如下p元素:

box

css如下:.box {width:200px;height:200px;padding:10px;border:1px solid #333;margin:10px;box-sizing:content-box;}

那么在浏览器下渲染的实际宽度和高度分别是:222px,222px; 因为在标准的盒模型下,在浏览器中渲染的实际宽度和高度包括

内边距(padding)和边框的(border);如下图所示:

回到顶部

理解display:box的布局

display: box; box-flex 是css3新添加的盒子模型属性,它可以为我们解决按比列划分,水平均分,及垂直等高等。

一:按比例划分:

目前box-flex 属性还没有得到firefox, Opera, chrome浏览器的完全支持,但我们可以使用它们的私有属性定义firefox(-moz-),opera(-o-),chrome/safari(-webkit-)。box-flex属性主要让子容器针对父容器的宽度按一定的规则进行划分。 代码如下:

Hello

W3School

如下图所示:

二:box具体的属性如下:

box-orient | box-direction | box-align | box-pack | box-lines

1. box-orient;

box-orient 用来确定父容器里的子容器的排列方式,是水平还是垂直,可选属性如下所示:

horizontal | vertical | inline-axis | block-axis | inherit

一:horizontal | inline-axis

给box设置 horizontal 或 inline-axis 属性效果表现一致。都可以将子元素进行水平排列.

如下html代码:

Hello

W3School

css代码如下:

如下图所示:

二:vertical 可以让子元素进行垂直排列;

css代码如下:

如下图所示:

三:inherit。 Inherit属性让子元素继承父元素的相关属性。效果和第一种效果一样,都是水平对齐;

2. box-direction

还是如下html代码:

Hello

W3School

box-direction 用来确定父容器里的子容器的排列顺序,具体的属性如下代码所示:

normal | reverse | inherit

normal是默认值,按照HTML文档里的结构的先后顺序依次展示, 如果box-direction 设置为 normal,则结构顺序还是 id为p1元素,id为p2元素。

reverse: 表示反转。如果设置reverse反转,则结构排列顺序为 id为p2元素,id为p1元素。如下代码:

css代码如下:

如下图所示:

3. box-align:

box-align 表示容器里面字容器的垂直对齐方式,可选参数如下表示:

start | end | center | baseline | stretch

1. 对齐方式 start:表示居顶对齐

代码如下:

a,button,input,optgroup,select,textarea{
    -webkit-tap-highlight-color: rgba(0,0,0,0);
}0

如上 P1 高度为160px p2 为100px; 对齐方式如下图所示:

4. box-pack

box-pack表示父容器里面子容器的水平对齐方式,可选参数如下表示:

start | end | center | justify

box-pack:start; 表示水平居左对齐,对于正常方向的框,首个子元素的左边缘被放在左侧(最后的子元素后是所有剩余的空间)

对于相反方向的框,最后子元素的右边缘被放在右侧(首个子元素前是所有剩余的空间)代码如下所示:

a,button,input,optgroup,select,textarea{
    -webkit-tap-highlight-color: rgba(0,0,0,0);
}1

如下图所示:

容器默认存在2根轴,水平的主轴和垂直的侧轴,主轴的开始位置(与边框的交叉点)叫做main start, 结束位置叫做 main end.

交叉轴的开始位置叫做 cross start,结束位置叫做cross end。项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,

占据的交叉轴空间叫做cross size。

二:容器有如下6个属性

flex-direction

flex-wrap

flex-flow

justify-content

align-items

align-content

我们分别来看下上面6个属性有哪些值,分别代表什么意思。

1. flex-direction:该属性决定主轴的方向(即项目的排列方向)。

它可能有四个值:

row(默认值):主轴为水平方向,起点在左端。

row-reverse:主轴为水平方向,起点在右端。

column:主轴为垂直方向,起点在上沿。

column-reverse:主轴为垂直方向,起点在下沿。

我们来做几个demo,来分别理解下上面几个值的含义;我这边只讲解上面第一个和第二个值的含义,下面的也是一样,

就不讲解了; 比如页面上有一个容器,里面有一个元素,看下这个元素的排列方向。

HTML代码:(如没有特别的说明,下面的html代码都是该结构):

a,button,input,optgroup,select,textarea{
    -webkit-tap-highlight-color: rgba(0,0,0,0);
}2

css代码如下:

a,button,input,optgroup,select,textarea{
    -webkit-tap-highlight-color: rgba(0,0,0,0);
}3

注意:在android平台的uc浏览器和微信浏览器中使用display: flex;会出问题。不支持该属性,因此使用display: flex;的时候需要加上display: -webkit-box; 还有一些水平对齐或者垂直对齐都需要加上对应的box-pack(box-pack表示父容器里面子容器的水平对齐方式)及box-align(box-align 表示容器里面子容器的垂直对齐方式).具体的可以看如下介绍的 display:box属性那一节。

我们可以看下截图如下:

2. flex-wrap属性 默认情况下,项目都排在一条线(又称"轴线")上。flex-wrap属性定义,如果一条轴线排不下,可以换行。

它有如下三个值:

nowrap(默认):不换行。

wrap:换行,第一行在上方。

wrap-reverse:换行,第一行在下方。

3. flex-flow

该属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap

4. justify-content属性

justify-content属性定义了项目在主轴上的对齐方式。下面假设主轴为从左到右。

值为如下:

flex-start | flex-end | center | space-between | space-around;

flex-start(默认值) 左对齐

flex-end 右对齐

center 居中

space-between: 两端对齐,项目之间的间隔都相等

space-around:每个项目两侧的间隔相等。

5. align-items属性

align-items属性定义项目在交叉轴上如何对齐。

它可能取5个值:

flex-start:交叉轴的起点对齐。

flex-end:交叉轴的终点对齐。

center:交叉轴的中点对齐。

baseline: 项目的第一行文字的基线对齐。

stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。

6. align-content属性

align-content属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。

该属性可能取6个值。

flex-start:与交叉轴的起点对齐。

flex-end:与交叉轴的终点对齐。

center:与交叉轴的中点对齐。

space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。

space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。

stretch(默认值):轴线占满整个交叉轴。

三:项目的属性,以下有6个属性可以设置在项目中,

order

flex-grow

flex-shrink

flex-basis

flex

align-self

1. order属性

order属性定义项目的排列顺序。数值越小,排列越靠前,默认为0。

基本语法:

.xx {order: ;}

2. flex-grow属性

flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大

基本语法:

.xx {

flex-grow: ;

}

3. flex-shrink属性

flex-shrink属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。

基本语法:

.xx {

flex-shrink: ;

}

4. flex-basis属性

flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。

基本语法:

.xx { flex-basis: | auto; }

它可以设为跟width或height属性一样的值(比如350px),则项目将占据固定空间。

5. flex属性

flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。

6. align-self属性

align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。

默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。

基本语法:

.xx {

align-self: auto | flex-start | flex-end | center | baseline | stretch;

}

上面是基本语法,感觉好模糊啊,看到这么多介绍,感觉很迷茫啊,下面我们趁热打铁来实现下demo。

我们很多人会不会打麻将呢?打麻将中有1-9丙对吧,我们来分别来实现他们的布局;

首先我们的HTML代码还是如下(如果没有特别的说明都是这样的结构):

一: 1丙

HTML代码:

a,button,input,optgroup,select,textarea{
    -webkit-tap-highlight-color: rgba(0,0,0,0);
}2

上面代码中,p元素(代表骰子的一个面)是Flex容器,span元素(代表一个点)是Flex项目。如果有多个项目,就要添加多个span元素,以此类推。css代码结构如下:

a,button,input,optgroup,select,textarea{
    -webkit-tap-highlight-color: rgba(0,0,0,0);
}5

1. 首先,只有一个左上角的情况下,flex布局默认为左对齐,因此需要display:flex即可;如下代码:

.first-face {
display: flex;
display: -webkit-box;
}

上面为了兼容UC浏览器和IOS浏览器下,因此需要加上display: -webkit-box;来兼容,我们也明白,如果不加上.first-face里面的代码,也能做出效果,因为元素默认都是向左对齐的,如下图所示:

我们继续来看看对元素进行居中对齐; 需要加上 justify-content: center;即可;但是在UC浏览器下不支持该属性,

我们水平对齐需要加上box-pack,box-pack表示父容器里面子容器的水平对齐方式,具体的值如上面介绍的box的语法,

需要加上 -webkit-box-pack:center; 因此在first-face里面的css代码变为如下代码:

a,button,input,optgroup,select,textarea{
    -webkit-tap-highlight-color: rgba(0,0,0,0);
}6

效果如下:

上面已经介绍过justify-content属性定义了项目在主轴上的对齐方式(水平方向上),有五个值,这里不再介绍,具体可以看上面的基本语法。

水平右对齐代码也一样、因此代码变成如下:

a,button,input,optgroup,select,textarea{
    -webkit-tap-highlight-color: rgba(0,0,0,0);
}7

如下图所示:

2. 我们接着来分别看看垂直居左对齐,垂直居中对齐,垂直居右对齐.

一:垂直居左对齐

我们现在需要使用上align-items属性了,该属性定义项目在交叉轴上如何对齐。具体的语法如上:

同样为了兼容UC浏览器或其他不支持的浏览器,我们需要加上box-align 该属性表示容器里面字容器的垂直对齐方式;具体的语法如上;

因此代码变成如下:

a,button,input,optgroup,select,textarea{
    -webkit-tap-highlight-color: rgba(0,0,0,0);
}8

效果如下:

二:垂直居中对齐

现在垂直已经居中对齐了,但是在水平上还未居中对齐,因此在水平上居中对齐,我们需要加上justify-content属性居中即可;

同样为了兼容UC浏览器,需要加上 -webkit-box-pack:center;

代码变为如下:

a,button,input,optgroup,select,textarea{
    -webkit-tap-highlight-color: rgba(0,0,0,0);
}9

效果如下:

更多H5移动端知识点总结相关文章请关注HTML中文网!


欢迎 发表评论:

Html排行
«   2021年1月   »
123
45678910
11121314151617
18192021222324
25262728293031
标签列表
网站分类
文章归档
最近发表
推荐文章