美文网首页
web笔记(html+css+js)

web笔记(html+css+js)

作者: AAnna珠 | 来源:发表于2019-03-26 11:19 被阅读0次

    HTMl,CSS,JAVASCRIPT(HTMl书写网页内容,CSS用来修饰网页效果,JS添加网页功能)

    HTML:超文本传输语言

      标签语言:

      标签: 每一个表都提前设置好了特殊的功能 ,xml

      单标签:独立功能,跟其他无关,也没有作用范围

      双标签:作用范围

      属性:

      属性 = 赋值

      4大属性:

      id,class,style,title

      DOM标签关系:

      嵌套标签 父子关系,兄弟关系,血缘关系

      标签:

      head:网页的配置信息,相关设置,其他文件的引入,跟具体的内容无关

      body:网页实际展示的内容

      h1~h6:标题标签,独占一行

      hr:居中横线

      <!--注释-->

      br:回车

      p:分段

      font:字体

      sub:下标

      sup:上标

      mark:强调

      超链接:标准用法:从一个网页链接到另一个网页

      <a href="http://www.baidu.com">点我</a>

      链接的地址  ,点击的内容

      锚点用法:从当前网页的一个位置链接到当前网页的另一个位置

      <a href="http://www.baidu.com"><img src="img/1.jpg"/></a>

      锚点:

    <a href="#top">网上飞</a>

    <a name="top">

      引入图片:

      <img src="img/1.jpg"/>

      src:本地资源,建议使用相对路径

      列表标签:

      ul:无序列表

      <ul>

      <li>列表项目1</li>

      <li>列表项目2</li>

      </ul>

      ol:有序列表

      dl:自定义列表

      <dl>

    <dt>自定义列表题目1</dt>

    <dd>自定义列表项目1.1</dd>

    <dd>自定义列表项目1.2</dd>

    <dt>自定义列表题目2</dt>

    <dd>自定义列表项目2.1</dd>

    <dd>自定义列表项目2.2</dd>

    </dl>

    块标签:一定范文 ,配合CSS 进行布局操作的标签

    div:块级标签:无论内容多少独占一行,一般可以指定高度

    span:行内标签:允许和其他内容共享一行,无法指定高度

    框架:

    <frameset rows="30,*">

    <frame src="top.html"/>

    <frame src="content.html"/>

    </frameset>

    背景:

    background="img/1.jpg"

    实体符号:

    空格&nbsp; < &lt;  >&gt  &copy  &reg;

    表格:

    table

    <table border="1px" width="100px" height="100px" cellspacing="0px" cellpadding="10px">

    <tr><th colspan="2">1</th><th rowspan="2">3</th></tr>

    <tr><td rowspan="2">4</td><td>5</td></tr>

    <tr><td colspan="2">8</td></tr>

    </table>

    表单:一块前后台数据交互的通道

    <form method="get" action="http://www.baidu.com">

    method:数据传递的方式

    get:不安全,效率高,快,地址栏传数据包,最大不能超过2k,不支持中文

    post:安全(相对),效率低,慢,不用地址栏传数据,最大不能超过2g,有可能支持中文

    控件:协助form采集数据和用户操作的标签

    input:输入控件

    type: 控件的类型

      text:文本类型 

      password:加密文本

      email:简单的@的检查

      date:日期格式的问题输入

      radio:单选按钮,想实现单选前提name必须相同;value建议把值进行修改,

    ( 辅助选中)

    label  for="id"

    checkbox:多选框:checked 默认选中

    number:数字

    url:网址

    hidden:隐藏

    file:文件

    非type:

    select:下拉列表

    option:下拉列表项

    textarea :文本框(rows,cols:大小)

    常用属性:

    size:输入框可见长度

    maxlength:最大输入长度

    selected:下拉列表默认项目

    multiple:下拉列表多选

    checked:按钮默认项目

    disable:置灰,不可以传输数据,不能改

    readonly:不能改,可以传递数据

    name:传递的数据的键

    id:唯一定位元素的值

    value:控件的数据

    autofocus:自动获取焦点

    placeholder:提示信息

    required:必填项

    list:提示列表id

    type(button):submit提交,reset重置,button

    HTML5中新的语义元素:分担div的语义标签,优化搜索引擎和语义引擎

    <header>

    <nav>

    <section>

    <article>

    <aside>

    <figcaption>

    <figure>

    <footer>

    CSS:层叠样式表 ,美化网页内容,布局网页

    div:独占一行有高度的区域标签

    span:可以和其他元素共处一行的没有高度的范围标签

    引入方式:

    内联:style属性:值等于css代码,(程序员临时测试用)

    内嵌:style标签:只能写在head标签范围内,当前网页独有的效果

    外联:link标签:引入css文件,整个网站通用的效果

    (引包,导入)不建议用性能差

    Css语法:

    选择器{

    属性:值

    }

    继承:部分属性默认允许继承

    层叠:后续效果覆盖之前的效果,同时发生。

    选择器:

    基础选择器:

    1.标签选择器:必须全选这个标签

    2.id选择器:#开头

    3.类选择器: .className

    复合选择器:

    *:所有元素都选择

                                            ,:组合选择器

                                            + :兄弟选择器(只选弟弟)

                                            ' ':后代选择器

                                            >:直接子 元素选择器

                                            []:属性选择器

                                          :not() :取反选择器

                                            [attribute="value"]:属性值选择器

                                伪类选择器:

                                lvha

                                :link ->  当a标签被链接之前

                                :hover ->  当元素被鼠标悬浮之时

                                :active -> 当元素被鼠标左键点击之时

                                :visitied ->  当a标签发生超链接之后

                                :focus ->  当元素被获取焦点之时

    优先级: 选择器: id>class>标签

    引入方式:内联>内嵌>外联

    就近原则

    !important

    属性:

    color:颜色 rgba(r,g,b,透明参数)

    font-family:字体 ,英文前 中文后

    font-size: 字体大小

    font-style: italic; 文字斜体

    font-weight : bold; 粗细

    letter-spacing:字母间距

    word-spacing:单词间距

    text-indent:字体两倍大小缩进

    行内元素的水平居中:

    text-align:center

    列表:

    list-style-type:none

    去掉列表的默认选项

    表格:

    表标题位置

    caption-side:bottom ;

    其他:

    鼠标的皮肤

    cursor: text  ;

    边框:

    border: 1px solid red;

    border-radius: 400px;

    圆角矩形

    范围(尺寸):

    height:高

    width:宽

    针对div有效,对于span无效

    背景:

    background-image: url( );

    background-color: yellow;

    background-repeat: no-repeat;

    background-position: 50% 50%;

    background-attachment:fixed;

    CSS精灵(应用)

    布局:

    一般的布局模式:

    最大的网页内容区准备一个大的父元素,margin: 0 auto

    position:relative

    默认文档流模式:所有元素默认出现在文档的左上位置

    1.table:不灵活

    2.盒子模型:格灵活

      任何元素(标签+文本)都自带一个矩形的包装盒(所在位置的格子),通过对盒的调整可以间接的调整元素的位置

      marging(外边距)+border(边框)+padding(内边距)+content(内容)

        默认指定的长宽是 content

        盒子中所有元素统一同页面对比换位置建议用marging

        box-sizeing : border-size; 整个盒子的大小

        缺点:本质上是很少的格子的表格,比表格灵活简单,但是盒子之间还是容易互相影响

      居中:margin: 0 auto;

    3.定位:不影响其他盒子,指哪放哪

    定位的计算量比较大成本高,坐标原点固定,适配性不强

    position:

    static:默认文档流

    absolute:绝对定位

    relative :相对定位

    fixed:固定定位

    绝对定位和相对定位的区别:

    1.对后元素或者父元素会造成影响,相对定位保留自己所在行的空间,绝对定位放弃自己原来所在行的空间

    2.相对定位的基础坐标系是自身左上角

      绝对定位的基础坐标系是(特殊(默认的特殊父元素是body))父元素的左上角

    4.浮动:不需要计算纵坐标

    缺点:浮动会导致后元素,或者父元素异常

    清除浮动:

    div id="clear"

    #clear{

    clear:both;

    }

    #main:after{

    content: ".";

    display: block;

    clear: both;

    visibility: hidden;

    }

    5.弹力..网格..:兼容性

    JavaScript:表单验证,各种网页特效,数据传输,

    代码使用方式:

    a:

    <a href="javascript:alert(1)">点我啊</a>

    onclick:

    <button type="button" onclick="alert('吓死你')">点我</button>

    内嵌:

    <script type="text/javascript">

    var a = 1;

    console.log("打出来个xxx");

    </script>

    外联:

    <script type="text/javascript" src="js/js1.js"></script>

    ECMAscript:5.0 :基于对象的语言

    变量:动态语言,弱类型

    var a; //变量的声明

    作用域:1全局变量

    2局部变量(函数内声明的叫局部变量)

    3没有块这个概念

    数据类型:

    基础数据类型:

      number:数字型

      NaN:不是一个数的数,属于number

      Infinity:无限大的数

      -Infinity:负无穷大

      支持16进制,8进制

      String:字符串  ""  ''

      boolean:布尔型

      undifiend:未定义类型:只定义不赋值的数

      null:空类型  typeof null 返回object 是一个bug

    复合(引用)数据类型:

      对象:

      函数(极其特殊):

      数组:

      包装类:

      NUMBER

      STRING

      BOOLEAN

    如何确定一个数据的类型:

    1.typeof 擅长于基本数据类型,但是对于null和所有的对象无法细分

    2.instanceOf 能帮我确认值是否属于某种复合数据类型

    3.obj.constructor.toString()  ,可以用来区分所有的非null,undefined的复合数据类型

    通过自定义函数:

    function TypeOf(a){

    var s = typeof a;

    if(s=="object"){

    if(a === null){

    console.log(null);

    }else{

    console.log(a.constructor.name);

    }

    }else{

    console.log(s);

    }

    }

    类型转换:

    显示:

    Boolean():

    数字,0,NaN为false

    字符串,空字符串转为false

    undefined false

    null false

    Number()

      true 1

      false 0

      null 0

      undefined  NaN

      "123"  123

      "123xp"  NaN  

    String(): 把一切转成字符串

    隐式:

    基本数据类型的隐式转换

    Boolean()

    Number()

    String()

    如果做比较优先Numnber()

    如果在+左右有字符串则使用String()进行拼接; - 字符串则使用Number();做逻辑运算会优先使用Boolean()

    复合数据类型隐式转换:

    obj.valueOf() ,再掉toString()

    []+{} ; {}+[]

    运算符:

    == 值 相等

    === 值和类型 同时相等(NaN != NaN,通过isNaN()判断是否是NaN)

    判断isFinite(是否有限)

    运算方法:

    0/0 = NaN

    1/0 = infinity

    运算方法:

    ||

        只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值。

        只要“||”前面为true,不管“||”后面是true还是false,都返回“||”前面的值。

    &&

        只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值;

        只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值;

    流程控制:

    增强for循环:

    for(var i in a){

    console.log(a[i]);

    }

    try{}catch(e){} finally{}

    函数:

    自定义函数:

    1.函数的定义:

    function  函数名字(形参...){

    }

    2.函数表达式(声明):

    var 函数名 = function(形参){}

    函数的调用:

    函数名字(实参...)

    定义:可以先调用后创建函数

    表达式:不可以提前调用

    函数的高级用法:

    自更新:

    var haha = function(){

    console.log("haha");

    haha = function(){

    console.log("hehe");

    }

    }

    回调函数:

    console.log(getReturn(function() {

    return 3 - 1;

    }, function() {

    return 1 - 2;

    }));

    arguments是实参的值的数组

    重载:

    function sum(){

    var sums = 0;

    for(var i in sum.arguments){

    sums = sums + sum.arguments[i];

    }

    console.log(sums);

    }

    sum(1,2,3,9,6,8,4);

    函数的闭包: function getA(){

    var  a = 1;

    a = a+1;

    return  function(){

    return a;

    }

    }

    系统api函数:

    encodeURI:转码

    decodeURI:解码

    eval:运行js源代码的字符串

    isNaN:判断是否NaN

    isFinite:判断是否有限

    Number(),String(),Boolean基本数据类型转换

    parseInt: 可以根据指定的进制把字符串转成数字,碰到第一个字符串就停止转换

    parseFloat:

    对象:

    自定义对象:

    var obj = {}  //空对象 ,对象字面量

    var obj2 = new Object(); //空对象

    添加属性:

    .属性 = 值

    删除属性:

    delete obj.属性

    增强for循环查看对象的所有属性:

    for(var i in o){

      console.log("属性名:"+i+"  ,属性值为:"+ o[i])

    }

    通过构造器来创建对象:

    function Student(name,age){

    // {}

    this.name = name;

    this.age = age ;

    this.learn = function (){console.log("学习让我进步")}

    //return

    }

    var chenhao = new  Student("陈浩",18);

    js面向对象:

    function Student(name,age){

    this.name = name;

    this.age = age ;

    }

    Student.prototype.learn = function (){

    console.log("学习让我进步")

    }

    var chenhao = new  Student("陈浩",18);

    var lichongyang = new  Student("李重阳",18);

    console.log(chenhao.name+"  "+lichongyang.name);

    chenhao.learn();

    lichongyang.learn();

    系统api对象:

    Number:

    parseInt()

    parseFloat()

    Object

    String

    :charAt()指定位置的字符串

      charCodeAt()获取unicode编码

      indexOf()指定字符串求位置

      lastindexof()

      replace:替换

      split:根据内容分数组

      substr: 起始到昌都截取

      substring: 坐标之间截取

      tolowerCase:转小写

      属性:length

    Date:1900年

    Math:

    Math.floor(Math.random()*10)+1;

    RegExp:正则表达式

    三种模式:i g m

    具体的语法:

    背:身份证!

        ip地址!

        邮箱!

        邮编!

        中文!

        test:判断是否匹配

        exec:返回具体的匹配值

    Array:

    var arr = [1,2,3,4,"56"];

    join( ) :指定分隔符号,把所有的数组元素组合成一个字符串

    concat():拼接数组,参数直接追加

    pop(): 返回数组的最后一个元素,并删除

    push(): 追加一个元素到数组的末尾

    shift(): 返回数组的第一个元素,并删除

    unshift(): 插入一个元素到当前数组的首位,其他元素顺移

    reverse():内容反转

    sort():排序

    a.sort(function(a,b){ if(a>b){return 1;}else if(a==b){return 0} else{return -1};})

        Events:

        代码执行:

        1.页面加载

        2.事件触发:

        1级事件  :onclick  点击

          onmousemove  移动  event.clientX/Y

          onmouseout 

          onmousedown

          onselect 选中文本

          onfocus  获取焦点

          onblur  失去焦点

          onload  网页加载完成

          onkeyDown  按下

          onkeyup  抬起

          onkeypress  按下或抬起

          event.keycode

      2级事件:     var buttons=  document:.getElementsByTagName("button"); 

      buttons[0] = function(){ alert(1)}

          3级事件:

          chrome:buttons[0].addEventListener('click',haha);

          IE:buttons[0].attachEvent('onclick',haha);

        选中一个操作对象(html元素)+选择一个事件+书写一个事件处理的函数网页的内容(DOM +Dom可以修改网页的内容和CSS)

    BOM:

    Window  当前窗口

    属性:

    name

    top:

    常用API:

    alert(""):通知

    confirm(""):请求  确定返回true ,取消返回false

    prompt("",""):提问  问题,默认回答 ; 更改的内容作为返回值

    close():关闭当前窗口

    open():打开指定的窗口 ,通过描述字符串可以指定打开窗口的样式和功能

    moveBy():移动多少坐标

    moveTo():移动到多少坐标

    计时器:

    setInterval(回调函数,毫秒数): 每隔多长时间执行一次功能

    setTimeOut: 多久之后执行功能

    --

    setTimeOut 实现 setInterval 的功能

    setInterval 实现 setTimeOut 的功能

    clearInterval: 清除interval

    clearTimeOut: 请成绩tomeOut

    location:地址栏

    属性:

    href:完整url

    reload:刷新页面,把当前的地址重新载入

    History:历史

    length:url数量

    go:+ foward  - back

    Screen :屏幕

    height

    width

    availheight

    availwidth

    Navigator :

    userAgent

    DOM:window对象的一个属性:当前网页的文档内容

    当浏览器加载某个网页之后,会把网页中所有内容根据dom树模型生产对应的对象关系

    js可以通过dom的api的操作来间接的改变文档内容

    三种节点:Node

      Element( Attribute)    Text   

    Document:

    getElementsByTagName("div"):或者相同标签的数组

    getElementById("asd") :通过ID获取对象

    getElementsByName("username"):或者相同name属性值的数组

    write():书写文本或者标签 ,容易覆盖之前的内容,不建议使用

    Element:

    属性:

    innerHTML:双标签之间的内容

    firsetChild:第一个子标签(手写代码中容易是文本标签)

    lastChild:最后一个子标签

    parentNode:父节点

    nextSilbiling:下一个节点

    previousSibiling:上一个同级节点

    childNodes():返回所有子节点的集合

    增加节点:

    var el1= document.createElement("div")

    //创造新元素节点

    var div1 = document.getElementById("div1");

    //寻找父元素

    div1.appenedChild(el1;)

    追加

    //指定位置

    var span1 = document.getElementById("span1");

    div1.insertBefore(el1,span1);

    删除子节点:

    div1.removeChild(span1);

    替换字节点:

    div.replaceChild(span1);

    style.css属性(组合属性的单词去掉- ,首字母大写)

    Form:

    文本框:  select():主动选择文本

      focus():获取焦点

      checked:当前是否被选中,true选中,false没有

      select.options:下拉列表的列表项目集合

      new Option("菠萝",2):生成一个新的下拉列表项

      select.options.length = 0;:清除所有的下拉列表项

      selectedIndex:当前选中的下拉列表项

    原型链:

    闭包:  突破作用域链

    找个网页:

    练习题:

    带背

    相关文章

      网友评论

          本文标题:web笔记(html+css+js)

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