移动开发基本知识点

. 使用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. 当网站添加到主屏幕快速启动方式,可隐藏地址栏,仅针对iossafari



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





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



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



   
        
        
        
        
        
        
        <span style="\"font-family:宋体\"">标题</span><span style="\"font-family:Arial\""></span>
        
   
   
        这里开始内容
   

四:移动端如何定义字体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;}

九:移动端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: 默认值(标准盒模型); widthheight只包括内容的宽和高,不包括边框,内边距;

比如如下div元素:

box



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

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

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



border-box: widthheight是包括内边距和边框的,不包括外边距,这是IE的怪异模式使用的盒模型,比如还是上面的代码:

box

;

css代码如下:

.box {width:200px;height:200px;padding:10px;border:1px solid #333;margin:10px;box-sizing:border-box;}
那么此时浏览器渲染的width会是178pxheight也是178px; 因为此时定义的widthheight会包含paddingborder在内;

使用这个属性对于在使用百分比的情况下布局页面非常有用,比如有两列布局宽度都是50%;但是呢还有paddingborder,那么这个

时候如果我们不使用该属性的话(当然我们也可以使用calc方法来计算); 那么总宽度会大于页面中的100%;因此这时候可以使用这

个属性来使页面达到100%的布局.如下图所示:



浏览器支持的程度如下:



回到顶部

理解display:box的布局

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

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


      

Hello


      

W3School




   .test{
      display:-moz-box; 
      display:-webkit-box; 
      display:box;
      width:300px;
   }
   #p1{
      -moz-box-flex:1.0; 
      -webkit-box-flex:1.0; 
      box-flex:1;
      border:1px solid red;
   }
   #p2{
      -moz-box-flex:2.0; 
      -webkit-box-flex:2.0; 
      box-flex:2;
      border:1px solid blue;
   }

如下图所示:



注意:

1. 必须给父容器定义 display: box, 其子元素才可以进行划分。如上给idp1设置box-flex设置为1,给idp2设置box-flex2

说明分别给其设置1等分和2等分,也就是说给idp1元素设置宽度为 300 * 1/3 = 100px; idp2元素设置宽度为 300 * 2/3 = 200px;

2. 如果进行父容器划分的同时,他的子元素有的设置了宽度,有的要进行划分的话,那么划分的宽度 = 父容器的宽度 已经设置的宽度 。

再进行对应的划分。

如下图所示:





二: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代码如下:
   
       .test{
          display:-moz-box; 
          display:-webkit-box; 
          display:box;
          width:300px;
          height:200px;
          -moz-box-orient:horizontal;
          -webkit-box-orient:horizontal;
          box-orient:horizontal;
       }
       #p1{
          -moz-box-flex:1.0; 
          -webkit-box-flex:1.0; 
          box-flex:1;
          border:1px solid red;
       }
       #p2{
          -moz-box-flex:2.0; 
          -webkit-box-flex:2.0; 
          box-flex:2;
          border:1px solid blue;
       }
   
如下图所示:



二:vertical 可以让子元素进行垂直排列
css代码如下:


   *{margin:0;padding:0;}
   .test{
      display:-moz-box; 
      display:-webkit-box; 
      display:box;
      width:300px;
      height:200px;
      -moz-box-orient:vertical;
      -webkit-box-orient:vertical;
      box-orient:vertical;
   }
   #p1{
      -moz-box-flex:1.0; 
      -webkit-box-flex:1.0; 
      box-flex:1;
      border:1px solid red;
   }
   #p2{
      -moz-box-flex:2.0; 
      -webkit-box-flex:2.0; 
      box-flex:2;
      border:1px solid blue;
   }

如下图所示:



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

2. box-direction

还是如下html代码:


     

Hello


     

W3School



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

normal | reverse | inherit

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

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

css代码如下:


       *{margin:0;padding:0;}
       .test{
          display:-moz-box; 
          display:-webkit-box; 
          display:box;
          width:300px;
          height:200px;
          -moz-box-direction:reverse;
          -webkit-box-direction:reverse;
          box-direction:reverse;
       }
       #p1{
          -moz-box-flex:1.0; 
          -webkit-box-flex:1.0; 
          box-flex:1;
          border:1px solid red;
       }
       #p2{
          -moz-box-flex:2.0; 
          -webkit-box-flex:2.0; 
          box-flex:2;
          border:1px solid blue;
       }
   
如下图所示:



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

start | end | center | baseline | stretch

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

代码如下:


       *{margin:0;padding:0;}
       .test{
          display:-moz-box; 
          display:-webkit-box; 
          display:box;
          width:300px;
          height:200px;
          -moz-box-align:start;
          -webkit-box-align:start;
          box-align:start; 
       }
       #p1{
          -moz-box-flex:1.0; 
          -webkit-box-flex:1.0; 
          box-flex:1;
          height:160px;
          border:1px solid red;
       }
       #p2{
          -moz-box-flex:2.0; 
          -webkit-box-flex:2.0; 
          box-flex:2;
          height:100px;
          border:1px solid blue;
       }
   
如上 P1 高度为160px p2 100px; 对齐方式如下图所示:



如果改为end的话,那么就是 居低对齐了,如下:



center表示居中对齐,如下:



stretch box-align表示拉伸,拉伸与其父容器等高。如下代码:



firefox下 和父容器下等高,满足条件,如下:



chrome下不满足条件;如下:



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

start | end | center | justify

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

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



 

   



更多学习分享加群      150601600