美文网首页
HTML5初学者笔记

HTML5初学者笔记

作者: 大码猴 | 来源:发表于2021-11-04 09:17 被阅读0次

    HTML5记录
    一、VS code引入插件后运行,终端执行

    command+L+O
    

    二、引入外部js文件:
    1、js的exports.a = a;方式暂时不知道怎么做
    2、直接引入,script之后可以直接使用。参照html-vue项目

    3、数据类型
    String、Number、Boolean、Null、undefined、symbol、Object、Array、Function

    三、 JS显示数据方式:

    window.alert()
    document.write()
    innerHTML=‘’
    console.log()

    四、 let、const、var
    https://www.runoob.com/js/js-let-const.html

    1. let 声明的变量只在 let 命令所在的代码块{}内有效。用 let 关键字声明的全局作用域变量不属于 window 对象。不能先使用再声明。
    2. var 关键字声明的变量不具备块级作用域的特性,它在 {} 外依然能被访问到,在{}内var与外部同名的属性,外面的会被覆盖。声明的全局对象属于window,可以使用window.对象名访问到。可以先使用再声明。
    3. const 声明一个只读的常量,一旦声明,常量的值就不能改变(并非不可变,而是不可全局替换,参照声明对象和数组)。

    五、全局变量、局部变量注意点
    如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量。

    function xxx(){
      name = ‘hello’
    }
    

    六、事件:
    https://www.runoob.com/jsref/dom-obj-event.html
    onchange、onclick、onmouseover、onmouseout、onkeydown、onload…
    html dom onclick之类的直接使用,vue是@click,小程序是bindTap

    <button onclick="getElementById('demo').innerHTML=Date()">现在的时间是?</button>
    

    七、 this关键字:
    1、在对象方法中, this 指向调用它所在方法的对象。
    2、单独使用 this,它指向全局(Global)对象。
    3、函数使用中,this 指向函数的所属者。
    4、严格模式下函数是没有绑定到 this 上,这时候 this 是 undefined。
    5、在 HTML 事件句柄中,this 指向了接收事件的 HTML 元素。
    6、apply 和 call 允许切换函数执行的上下文环境(context),即 this 绑定的对象,可以将 this 引用到任何对象。

    var person1 = {
       fullName: function() {
           return this.firstName + " " + this.lastName;
       }
    }
    
    var person2 = {
        firstName:"John",
        lastName: "Doe",
    }
    
    person1.fullName.call(person2); // 返回 "John Doe"
    

    八、 箭头函数:
    1、有的箭头函数都没有自己的 this。 不适合定义一个 对象的方法。
    2、当我们使用箭头函数的时候,箭头函数会默认帮我们绑定外层 this 的值,所以在箭头函数中 this 的值和外层 的 this 是一样的。
    3、箭头函数是不能提升的,所以需要在使用之前定义。
    4、使用 const 比使用 var 更安全,因为函数表达式始终是一个常量。

    九、闭包:
    闭包是一种保护私有变量的机制,在函数执行时形成私有的作用域,保护里面的私有变量不受外界干扰。
    直观的说就是形成一个不销毁的栈环境。
    闭包会持有父方法的局部变量和参数并且不会随父方法销毁而销毁
    不必要的闭包只会增加内存消耗

    var add = (function () {
       var counter = 0;
       return function () {return counter += 1;}
    })();
    add();
    add();
    add(); // counter = 3
    

    十、 事件
    body事件:onload、onunload
    元素事件:onclick、onmouseover、onmouseout、onmousedown、onmouseup、onfocus

    事件捕获
    document.getElementById(‘demo’).addEventListener(‘事件名’, 方法名, 是否捕获传递)
    方法名:如果是相应事件,则只可写方法名methodName,写成methodName()则会自动执行
    如果方法需要传递参数,则只可以使用匿名函数,function( { methodName(p1, p2) } );
    是否捕获传递:默认false,即冒泡传递
    IE8和更早版本:x.attachEvent("onclick", myFunction);

    /*
    * 参数:
    * obj:要绑定事件的对象
    * eventStr:事件(注意:这里不要on)
     * callback:回调函数
    */
    function bind(obj , eventStr , callback){
          if(obj.addEventListener){
              //大部分浏览器
              obj.addEventListener(eventStr , callback , false);
          }else{
              //IE8及以下
             obj.attachEvent("on"+eventStr , function(){
                    //在匿名函数中调用回调函数
                    callback.call(obj);
              });
          }
    }       
    

    十一、Window加载,页面声明周期入口

    window.onload = function () { }

    十二、数据存储
    localStorage不会被自动删除,

    setItem(key)、
    getItem(key)、
    removeItem(key)、
    clear()、
    key(index)
    

    sessionStorage 网页关闭会自动删除
    cookie
    sql
    manifest文件

    区别:
    localStorage只要在相同的协议、相同的主机名、相同的端口下,就能读取/修改到同一份localStorage数据。
    sessionStorage比localStorage更严苛一点,除了协议、主机名、端口外,还要求在同一窗口(也就是浏览器的标签页)下。

    十三、 CSS声明权重(选择器)
    内联>ID>伪类>属性>类>元素/类型>通用
    !important会改变优先级

    十四、 元素隐藏/显示
    1、dispatch:none 隐藏 不占用空间
    2、visibility:hidden 隐藏,仍然占用空间
    3、v-if 存在/不存在
    4、v-show 只生成一次,占用内存

    十五、 Position
    static 默认方式,没有定位
    fixed 相对于浏览器窗口固定定位,不占用文档流,其他元素会相对位移
    absolute 相对于最近的已定位父元素定位,不占用文档流,其他元素会相对位移
    relative 相对于自身的定位
    sticky 粘滞定位,基于用户的滚动位置定位

    十六、 float
    1、只能左右浮动
    2、左右浮动,直到外边缘碰到另一个浮动元素
    3、浮动之后的元素将围绕它
    4、浮动之前的元素不受影响
    5、如果是图像浮动,下面的文本流将环绕它
    6、clear声明的元素, 属性指定元素两侧不能出现浮动元素。

    推荐使用flex布局

    十七、 文字显示…
    单行

    {
      text-overflow: ellipsis;
      white-space: nowrap; 
      overflow: hidden; 
      width: 100px; 
    }
    

    任意行

    {
      display: -webkit-box;
      /* -webkit-box-orient: vertical; */
      /*! autoprefixer: off */
      -webkit-box-orient: vertical;
      /* autoprefixer: on */
      //超出多少行显示省略号
      -webkit-line-clamp: 2;
      line-clamp: 2;
      overflow: hidden;
    }
    

    十八、 box-shadow顺序

    h-shadow  v-shadow  blur  spread  color  insect
    水平阴影 垂直阴影  模糊 阴影尺寸 颜色  外阴影转到内阴影 
    

    十九、 flex布局 http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html

    容器属性:
    属性/说明可选值
    f方向: lex-direction

    row | row-reverse | column | column-reverse;
    

    换行:flex-wrap

    nowrap | wrap | wrap-reverse;
    

    简写:flex-flow

    <flex-direction> || <flex-wrap>;
    

    主轴上的对齐方式:justify-content

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

    交叉轴上如何对齐:align-items

    flex-start | flex-end | center | baseline | stretch;
    

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

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

    项目item属性:
    order:排列顺序,越小越靠前

    <integer>
    

    flex-grow:放大比例,2比1占用的空间大一倍

    <number>; /* default 0 */
    

    flex-shrink:缩小比例,默认1,当空间不足时等比例缩小。如果一个项目的属性为0,其他项目都为1,则空间 不足时,前者不缩小

    <number>; /* default 1 */
    

    flex-basis:定义了在分配多余空间之前,项目占据的主轴空间

    <length> | auto; /* default auto */
    

    flex :简写

    none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ] /* default 0 1 auto*/
    

    align-self:允许单个项目与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch

    auto | flex-start | flex-end | center | baseline | stretch;
    

    相关文章

      网友评论

          本文标题:HTML5初学者笔记

          本文链接:https://www.haomeiwen.com/subject/wbdczltx.html