移动端基础知识总结--从0开始

<!DOCTYPE html> <!--这个是HTML5使用的开头声明.-->
<html>
    <head>
        <title>html整体结构</title>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
        <!--禁止浏览器从本地计算机的缓存中访问页面内容问-->
        <meta http-equiv="Pragma" name="no-cache" />
        <!--no-cache:不缓存--><!--no-store:缓存但不存档-->
        <meta http-equiv="Cache-Control" name="no-store" />
        <!--防止别人在框架里调用自己的页面-->
        <meta http-equiv="window-target" content="_top" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
        <meta name="HandheldFriendly" content="true" />
        <!--viewport:移动端设备视窗-->
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
        <meta name="apple-mobile-web-app-capable" content="yes" />
        <!--忽略页面中的数字识别为电话,忽略email识别,去除Android平台中对邮箱地址的识别-->
        <meta content="telephone=no" name="format-detection" />
        <!--启用360浏览器的极速模式(webkit)-->
        <meta name="renderer" content="webkit">
        <!--UC强制竖屏-->
        <meta name="screen-orientation" content="portrait">
        <!--QQ强制竖屏-->
        <meta name="x5-orientation" content="portrait">
        <!--windows phone 点击无高光-->
        <meta name="msapplication-tap-highlight" content="no">
        <script type="text/javascript" src="js/style.js"></script>
        <link rel="stylesheet" href="css/style.css"/>

    </head>

    <body>
        <p>写页面我们最先要了解的就是整体结构,然后就是头部,中间部分,底部.</p>
        <p>meta标签里面的东西我已经大致写好注释了,你们可以自己恰当的去做选择.</p>
        <p>然后就是引入外部css,js文件了.</p>
        <p>从优化的角度,我建议是先引入js,再引入css.注意:JS文件普遍应该写到<span><pre></body></pre>前面</span></p>
        <p>浏览器是从第一行开始读取文件的,有顺序的来读取.如果JS写在head里面会容易出现“阻塞”问题.</p>
        <P>我们来先了解html中的div结构</P>
        <pre>
            <div>
                <div>1</div>
                <div>2</div>
                <div>3</div>
            </div>
            <ul>
                <li>4</li>
                <li>5</li>
                <li>6</li>
            </ul>
        </pre>
        <p>上面这个属于div嵌套(跟ul li写法一样),先下外面最大的父元素,再逐个写子元素.</p>
        <p>第二节现在我该给大家介绍下id,class选择器,包括HTML5新增的选择器</p>
    </body>

</html>

第二步,我要介绍的是:选择器.

选择器:

权重顺序 “ !important > 内联 > ID > 类 > 标签 | 伪类 | 属性选择 > 伪对象 > 继承 > 通配符”.

4个等级的定义如下:
第一等:代表内联样式,如: style=””,权值为1000.
第二等:代表ID选择器,如:#content,权值为100.
第三等:代表类,伪类和属性选择器,如.content,权值为10.
第四等:代表类型选择器和伪元素选择器,如div p,权值为1.
特别注意: !important这个尽量少使用.

id选择器:一般不是用来写样式用的,是提供给后端或JS来操作DOM的.

class选择器:通过定义类名来添加样式,近年来有专业的前端开始利用后端的面向对象思想来写前端页面,目的是:简洁,高效,复用性高.

1,在class里面实现class组合:class="c1 c2 c3 c4"(组合必须要不得大于4个)

2,在css样式表中,可以提高重复使用率,

          .c1{height:100px}
                .c2{width:100%}
                /*一般情况下,所有页面布局多多少少都会存在相同情况:宽度,高度等是会重复出现的,那么一般新手是会一个一个去写,一个一个去定义.例如:*/

                .div1{width:100%;height:100px;color:#000000;font-size:18px}
                .div2{width:100%;height:50px;color:#000000;font-size:16px}

为了减少重复,提高效率,我们可以写成下面的情况:

          .div1,.div2{width:100%;color:#000000}
                .div1{height:100px;font-size:18px}
                .div2{height:50px;font-size:16px}

为了可以实现重复使用的,而不单单是写一个css,而是“哪里需要放哪里”.

3,模块化:这个本来是后端才会有的,现在前端也可以实现了.那么我们该如何去理解呢?

<div class="menu">...这里可能会出现多组div嵌套</div>

<div class="list">...这里可能会出现多组div嵌套</div>

在css上我们就要这样来写:(就是以父元素开头,这样就不会出现跟其他模块冲突)

            /*公同使用的样式:*/.menu div1,.menu div2,.list div1,.list div2{width:100%;color#000000}
                    .menu div1{....}
                    .menu div2{....}
                    .list div1{....}
                    .list div2{....}
下面来介绍下HTML5的新标签和新选择器---(只讲解我常用的)
       article>h2{background:#239528;}/*h1是article的子元素*/
            .title+p{background:#239528;}/*兄弟选择器*/
            .title1 li:first-child{background:#239528;}/*第一个li元素*/
            p:nth-of-type(2){color:#0066cc;}/*2是指父元素的第二个选择器*/
            fieldset:nth-child(odd){background:#239528;}
            fieldset:nth-child(even){color:#0066cc;}
            ul li:last-child{background:#0066CC;color:#239528;}/*最后一个li元素*/
<h1>下面来介绍下HTML5的新标签和新选择器---(只讲解我常用的)</h1>
        <address>
            Written by <a href="#">Donald Duck</a>.<br>
            Visit us at:<br>
            Example.com<br>
            Box 564, Disneyland<br>
            USA
        </address>
        <article>
            <h2>Internet Explorer 9</h2>
            <p>Windows Internet Explorer 9(简称 IE9)于 2011 年 3 月 14 日发布.....</p>
        </article>
        <blockquote>
            <p class="title">This is a long quotation. This is a long quotationuotatiouotatio.</p>
            <p>This is a long quotation.</p>
            <p>This is a long quotation. This is a long quotation.</p>
        </blockquote>

        <figure>
            <figcaption>黄浦江上的的卢浦大桥</figcaption>
            <ul class="title1">
                <li>黄浦江</li>
                <li>黄浦江黄浦江</li>
                <li>黄浦江黄浦江黄浦江</li>
            </ul>
        </figure>

        <div>
            <input list="cars" value="asd" />
            <datalist id="cars">
                <option value="BMW">
                    <option value="Ford">
                        <option value="Volvo">
            </datalist>
        </div>

        <form>
            <fieldset>
                身高:
                <input type="text" />
            </fieldset>
            <fieldset>
                体重:
                <input type="text" />
            </fieldset>
            <fieldset>
                姓名:
                <input type="text" />
            </fieldset>
            <fieldset>
                住址:
                <input type="text" />
            </fieldset>
        </form>
        <details>
            <summary>Copyright 2011.</summary>
            <p>All pages and graphics on this web site are the property of W3School.</p>
        </details>

你可以复制上面的html来查看页面效果.

下面我来介绍下在移动端上该注意的去取浏览器默认样式---style.css

@charset "utf-8";
html{font-size: 62.5%;}
body {
    /*禁止选择*/
    -webkit-user-select:none;
    /*去掉a,img,input的遮罩层*/
    -webkit-tap-highlight-color:rgba(0, 0, 0, 0);
    /*允许独立的滚动区域和触摸回弹*/
    -webkit-overflow-scrolling:touch;
    /*跟上面的一样..写法是兼容问题的话.*/
    -webkit-tap-highlight-color:transparent;
    -webkit-user-select:none;
    /*禁止系统默认菜单*/
    -webkit-touch-callout:none;
    -webkit-box-sizing:border-box;
}
*{-ms-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;vertical-align:baseline}
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,form,fieldset,input,textarea,p,blockquote,th,td,button,article,aside,details,figcaption,figure,footer,header,nav,section{margin:0;padding:0}
body,button,input,select,textarea,p,article,span{line-height:2rem}
h1,h2,h3,h4,h5,h6{font-weight:normal;line-height:3rem}
/*1rem=10px */
/*字体自适应*/
/*比如说你在320px分辨率时,设置字体大小为1.2rem时,现在在不同宽度都可以看上去一样大小实现自适应.*/
/*设计师是以iphone6为设计标准时,16px=100%,每个断点以2px递增页面最小的字体大小*/
h1{font-size:2.8rem;}
h2{font-size:2.6rem;}
h3{font-size:2.2rem;}
@media only screen and (min-width:360px) and (max-width:374px){
    /*三星大屏幕机最低宽度:note2-note3,S2-S4:14px*/
    html{font-size:87.5% !important;}
}
@media only screen and (min-width:375px) and (max-width:430px) {
    /*Iphone6,Iphone6plus最低宽度:16px*/
    html{font-size:100% !important;}
}
/*手机横屏:最低宽度480px:18px*/
@media only screen and (min-width:480px) and (max-width:740px){
    html{font-size:112.5% !important;}
}
/*平板电脑:最低宽度768px:20px*/
@media only screen and (min-width:768px) {
    html{font-size:125% !important;}
}
html, body, form, fieldset, p, div, h1, h2, h3, h4, h5, h6 {-webkit-text-size-adjust:none;}/*阻止旋转屏幕时自动调整字体大小*/
textarea{resize:none;-webkit-appearance:none;outline:none}
a,img{-webkit-touch-callout:none;}
/* 链接选中以及鼠标悬浮样式*/
a:active,
a:hover {
    outline: 0;
    text-decoration: none;
}

/*取消标签的特殊字体样式*/
strong {
    font-weight: normal;
}
em , i{
    font-style: normal;
}
/*取消按钮在inphone上的默认样式*/
button, html input[type="button"], input[type="reset"], input[type="submit"] {
    -webkit-appearance:button;
    cursor:pointer
}
input[type="checkbox"], input[type="radio"] {
    box-sizing:border-box;
    padding:0;
    -webkit-appearance:none;
}
input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button {
    height:auto
}
input[type="search"] {
    -webkit-box-sizing:content-box;
    box-sizing:content-box;
    -webkit-appearance:textfield
}
input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration {
    -webkit-appearance:none
}
input[type=button] {
    outline:0;
    -webkit-appearance:none
}
table {
    border-collapse:collapse;
    border-spacing:0
}
audio, canvas, progress, video {
    display:inline-block;
    vertical-align:baseline
}
audio:not([controls]) {
    display:none;
    height:0
}
input::-webkit-input-placeholder{color:#F0F0F0;}
textarea::-webkit-input-placeholder{color:#F0F0F0;}
input::-webkit-input-speech-button {display:none}
/*android上input:focus时input不随软键盘升起而抬高的情况和点击时高亮*/
a:focus,input:focus{
-webkit-tap-highlight-color:rgba(0,0,0,0);/*这个是兼容2.3以下的系统*/
-webkit-user-modify:read-write-plaintext-only;/*这个兼容到4.0以上的系统*/
}
table {border-collapse:collapse;border-spacing:0;}
th {text-align:inherit;}
fieldset,img {border:none;}
abbr,acronym {border:none;font-variant:normal;}
del{text-decoration:line-through;}
ol,ul {list-style:none;}
caption,th {text-align:left;}
sub,sup {font-size:75%;line-height:0;position:relative;vertical-align:baseline;}
sup {top:-0.5em;}
sub {bottom:-0.25em;}
ins,a,a:hover {text-decoration:none;}
a:focus,*:focus {outline:none;}
.clearfix:before,.clearfix:after {content:"";display:table;clear:both;overflow:hidden;}
.clearfix {zoom:1;}
.clear {clear:both;display:block;font-size:0;height:0;line-height:0;overflow:hidden;}
.hide {display:none;}
.block {display:block;}
/*单行文本控制溢出和换行*/
.outL{white-space:normal;word-break:break-all;width:100px;}
.outH{overflow:hidden;text-overflow:ellipsis;white-space:nowrap; width:100px;}
/*多行文本溢出显示省略号(...)的方法------webkit-line-clamp:2;这里的数字代表多少行*/
.ellipsis{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
/*布局*/
.fl{float:left;display:inline;}
.fr{float:right;display:inline;}
.cb{clear:both;}
.cl{clear:left;}
.cr{clear:rigth;}
.rel{position:relative;}
.abs{position:absolute;}
.tac{text-align:center;}
.tal{text-align:left;}
.tar{text-align:right;}
.dib{display:inline-block;}
.vab{vertical-align:bottom;}
.vam{vertical-align:middle;}
.vat{vertical-align:top;}
/*网格*/
.box{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;height:100%;text-align:center;padding:5px 0;}
.grid,.wrap,.grid:after,.wrap:after,.grid:before,.wrap:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}
.grid{*zoom:1}
.grid:before,.grid:after{display:table;content:"";line-height:0}
.grid:after{clear:both}
.grid{list-style-type:none;padding:0;margin:0}
.grid>.grid{clear:none;float:left;margin:0 !important}
.wrap{float:left;width:100%}
/*网格*/
/*flex*/
.flex{display:-webkit-flex;display:flex;display:-webkit-box;-webkit-flex:1;flex:1;-webkit-box-flex:1;}
.flexcontent{margin:5px 1px;-webkit-flex:1;flex:1;-webkit-box-flex:1;background:hotpink;}
/*垂直方向*/
.col{display:-webkit-box;display:flex;display:-webkit-flex;height:100%;-webkit-box-orient:vertical;flex-direction:column}
/*水平方向*/
.row{display:-webkit-flex;display:flex;display:-webkit-box;margin:auto;width:100%;height:auto;-webkit-flex-wrap:wrap;flex-wrap:wrap;flex-direction:wrap;-webkit-box-orient:horizontal;-webkit-box-lines:multiple}
.flex1{-webkit-box-flex:1;-webkit-flex:1;flex:1}
.flex2{-webkit-box-flex:2;-webkit-flex:2;flex:2}
.flex3{-webkit-box-flex:3;-webkit-flex:3;flex:3}

/*flex*/
/*容器*/
.wrapper{position:absolute;top:0;right:0;bottom:0;left:0;padding-bottom:60px;overflow:auto;-webkit-overflow-scrolling:touch;}
/*头尾*/
header,footer{position:fixed;right:0;left:0;z-index:1;text-align:center;background:#CCCCCC;}
header{top:0;height:44px;}
footer{bottom:0;}
/*ios上使用transform的时候的闪屏问题可以尝试使用
.transform{-webkit-transform-style:preserve-3d;-webkit-backface-visibility:hidden;}
*/
/*宽度*/
.w100p{width:100%}
.w20p{width:20%;}

/*边距*/
.m5{margin:5px;}
.p5{padding:5px;}
.box{height:100%;text-align:center;}
/* 页面背景图,需要注意问题:
1,该图片看设计师做的图片大小,不然做手机的怎么可能会在PC上浏览清晰呢?
2,利用好background-size:100% 100%;就可以让整个背景图都正确的展示到页面上.
*/
body{background:url(‘../img/back.jpg‘) no-repeat;background-size:100% 100%;}
/*如果底部出现留白,不能占满屏幕时的解决方法:
添加 html,body{height:100%}
 */
/* 页面背景图 */

/* 手机断点 */
/*min-device-width或max-device-width指的是设备整个渲染区宽度(设备的实际最大或最小宽度),
用了它可能在某些安卓机无法调用到下面的样式,因为某部分安卓机的屏幕大小不一致.*/
/*iphone4等屏幕高度480px的解决方案*/
@media only screen and (max-device-height:480px) {

}
/*iphone5以上的屏幕高度解决方案*/
@media only screen and (min-device-height:481px) {

}

@media only screen and (min-width:360px) and (max-width:374px){
    /*三星大屏幕机最低宽度:note2-note3,S2-S4*/

}
@media only screen and (min-width:375px) and (max-width:430px) {
    /*Iphone6 plus,红米等大屏幕手机*/

}

/*手机横屏:orientation:landscape*/
@media only screen and (min-width:480px) and (max-width:569px) and (orientation:landscape) {
/*小米1,1s,iphone4,4s,5,5s等屏幕横屏宽度断点*/
}
@media only screen and (min-width:570px) and (max-width:640px) and (orientation:landscape){
/*三星,红米等手机屏幕横屏宽度断点*/
}
@media only screen and (min-width:641px) and (max-width:667px) and (orientation:landscape) {
/*Iphone6横屏宽度断点*/
}
@media only screen and (min-width:736px) and (max-width:767px) and (orientation:landscape){
/*Iphone6 plus横屏宽度断点*/
}

@media all and (orientation:landscape) {
 /*这里是指所有屏幕横屏时*/
}  

/*平板和电脑:最小宽度768px*/
@media only screen and (min-width:768px) and (max-width: 959px) {

}
@media only screen and (min-width:960px) and (max-width:1024px) {

}
@media only screen and (min-width:1025px)and (max-width:1536px) {

}

上面有足够的注释说明,做移动端页面就是这么烦,要考虑不同屏幕的布局,字体大小等情况.

现在该轮到最痛苦的一个知识点:JavaScript

1,先讲解使用次数最多的点击事件开始吧:

一般来说,我们新手写点击事件会类似于下面这样的情况:获取ID值,添加点击事件函数.

    var show=document.getElementById("show");
        show.onclick=function(){
            show.className="hide";
        };
        var mask=document.getElementById("mask");
        mask.onclick=function(){
            var show=document.getElementById("show").className="show";
        };
        var back=document.getElementById("back");
        back.onclick=function(){
            var show=document.getElementById("show").className="hide";
        };

教大家一个简单易懂的封装:

    //这个是最基本的封装,简单易懂,有兴趣写出更高效的,我们可以联系沟通
        function $(obj){return document.getElementById(obj)};//返回dom对象
        //上面为封装,下面为调用
        //$是函数名.
        show.onclick=function(){
            show.className="hide";
        };
        mask.onclick=function(){
            var show=document.getElementById("show").className="show";
        };
        back.onclick=function(){
            var show=document.getElementById("show").className="hide";
        };

如果不是用id而是打算用标签名,类名等,记住要添加[]这个来做标记索引.

document.getElementsByClassName()[索引:0开始]

document.getElementsByName()[索引:0开始]

document.getElementsByTagName()[索引:0开始]

下面是DOM简单基础:

      .chat{
            color:#00cc66;
            font-size:28px;
            background:#999999;
            }

改变元素样式3种方法:

     <p id="con">Hello World!</p>
        <p id="p2">Hello Wind!</p>
        <p id="p3">welcome!</p>
document.getElementById("p2").className="chat"

改变样式在DOM里面最好的方法还是写className,会比你写style好!

单击改变事件:

<h1 onclick="change(this)">OK</h1>
function change(id) {
                    id.innerHTML="Hello";
                    id.className="chat"
                }

toogle:点击改变,再点击返回.

     <input type="button" value="显示" />

        <div style="height:100px;background:#FF69B4;"></div>

有2种方式来实现toogle()这个方法:

var toggle = false;//记得在input上添加 onclick="toggles()",div上添加id="toggle"
            function toggles() {
                if (toggle == false) {
                    document.getElementById("toggle").style.display = "none";
                    toggle = true;
                } else {
                    document.getElementById("toggle").style.display = "block";
                    toggle = false;
                }
            }

第二种:

          var onInput = document.getElementsByTagName("input")[0];
                var oDiv = document.getElementsByTagName("div")[0];
                onInput.onclick = function() {
                    var style = oDiv.style;
                    style.display = style.display == "none" ? "block" : "none";
                    onInput.className = style.display == "none" ? "open" : ""
                }

创建和追加节点元素:

.anthor{color:#26C6D9}

这个是专门处理DOM比较好的一个优化方案:

          //在文档之外创建并更新一个文档片断,然后将它附加在原始列表上
                //文档片断是一个轻量级的document对象,它被设计专用于更新、移动节点之类的任务
                //使用容器存放临时变更,最后再一次性更新DOM
                var fragment = document.createDocumentFragment();
                for (var i = 0; i < 10; i++) {
                    var p = document.createElement("p");
                    var oTxt = document.createTextNode("段落" + i);
                    p.appendChild(oTxt);
                    fragment.appendChild(p);
                }
                var anthor = document.getElementById("anthor");
                anthor.appendChild(fragment);
<div id="anthor">6789</div>

有时间我会找30个不一样的页面来给大家当作练习,这些页面主要是包括列表页面,纯数据页面,表单.

以基于angularjs框架和JS模板引擎来开发.

时间: 2024-10-13 17:19:14

移动端基础知识总结--从0开始的相关文章

移动端基础知识技巧总结

上个周周末,接手了一个移动端的(外包)小项目,一直着手于PC端,对移动端还是一知半解,所以这也是我的一个挑战,因此,今天心血来潮,总结一些移动端的基础知识和技巧供自己以后方便查阅,欢迎大家补充或转载: 一.单位(px,em,rem) 1.px:屏幕设备物理上能显示出的最小的一个点,不同设备上点的长宽,比例不一定相同: 2.em/rem:相同点:都是一个相对大小的值:不同点:em是相对父级元素,rem是相对html(默认值视浏览器而定,Chrome的默认为16px): rem单位在移动端前端开发很

【干货】移动端基础知识技巧总结

上个周周末,接手了一个移动端的(外包)小项目,一直着手于PC端,对移动端还是一知半解,所以这也是我的一个挑战,因此,今天心血来潮,总结一些移动端的基础知识和技巧供自己以后方便查阅,欢迎大家补充或转载: 一.单位(px,em,rem) 1.px:屏幕设备物理上能显示出的最小的一个点,不同设备上点的长宽,比例不一定相同: 2.em/rem:相同点:都是一个相对大小的值:不同点:em是相对父级元素,rem是相对html(默认值视浏览器而定,Chrome的默认为16px): rem单位在移动端前端开发很

移动端基础知识

常用meta标签 H5页面窗口自动调整到设备宽度,并禁止用户缩放页面: <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" /> 忽略将页面中的数字识别为电话号码: <meta name="format-detection" content

移动端尺寸基础知识

转:http://www.cnblogs.com/chris-oil/p/5367106.html 移动端尺寸基础知识 初涉移动端设计和开发的同学们,基本都会在尺寸问题上纠结好一阵子才能摸到头绪.我也花了很长时间才弄明白,感觉有必要写一篇足够通俗易懂的教程来帮助大家.从原理说起,理清关于尺寸的所有细节.由于是写给初学者的,所以不要嫌我啰嗦. 现象 首先说现象,大家都知道移动端设备屏幕尺寸非常多,碎片化严重.尤其是Android,你会听到很多种分辨率:480x800, 480x854, 540x9

移动端的一些基础知识

meta的基础知识 H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" /> 忽略将页面中的数字识别为电话号码 <meta name="format-detection" content=

硬件工程师从0到1之《基础知识框架》

笔者自2011年从本科毕业至今已经近8年,目前从事与硬件产品经理相关工作,主要面向于B端产品(B端:企业用户).整个岗位职责经历了硬件工程师.FPGA逻辑工程师.项目经理.产品经理,从业企业类型有中型企业.创业公司.上市企业.回首这8年来的经历,从一个刚出校门对硬件非常懵懂的职场小白,到现在对硬件设计过程游刃有余并且在组织优化有自己的一些思考,这个过程值得回味总结.人生职业生涯刚刚过五分之一,我的职业生涯也在路上,将继续探索不断开拓新篇章.闲话休提,为何要写下此篇关于硬件工程师的从0到1?8年前

Python黑帽编程3.0 第三章 网络接口层攻击基础知识

3.0 第三章 网络接口层攻击基础知识 首先还是要提醒各位同学,在学习本章之前,请认真的学习TCP/IP体系结构的相关知识,本系列教程在这方面只会浅尝辄止. 本节简单概述下OSI七层模型和TCP/IP四层模型之间的对应关系,最后是本章教程需要的几个核心Python模块. 3.0.1 TCP/IP分层模型 国际标准化组织(ISO)在1978年提出了"开放系统互联参考模型",即著名的OSI/RM模型(Open System Interconnection/Reference Model).

零基础入门 实战mpvue2.0多端小程序框架

第1章 课程快速预览(必看!!!)在这一章节中,老师讲带领你快速预览课程整体.其中,涉及到为什么要做这么一门实战课程.制作一个小程序的完整流程是怎么样的,以及如何做项目的技术选型. 第2章 30 分钟快速入门微信小程序(已掌握,可略过)在这一章节中,老师讲带领你从如何注册微信小程序开发者账号.工具的下载开始,到完成第一个小程序,再到组件与 API 的使用整个过程,最后来总结微信原生小程序的缺点. 第3章 30 分钟快速入门 Vue.js 框架(已掌握,可略过)在这一章节中,老师将带领你从第一个

第二章 TCP/IP 基础知识

? TCP/IP ?transmission control protocol and ip internet protocol 是互联网众多通信协议中最为著名的. ? 2.2 TCP/IP 的标准化 2.2.2 TCP/IP 标准化精髓 TCP/IP 协议始终具有很强的实用性. 相比于TCP/IP ,OSI 之所以未能达到普及,主要原因在于未能尽早的制定可行性较强的协议.未能提出应对技术快速更新的协议以及没有能及时进行后期的改良的方案. 2.2.3 TCP/IP 规范 --RFC 那些需要标准