zoukankan      html  css  js  c++  java
  • 前端

    html

    一.html标签特征:

      1.空白折叠现象

      2.对空格和换行不敏感

      3.标签要严格封闭

    二. p标签的嵌套多注意!

        p中只能存放字体,图片,表单控件,不能放盒子标签

    三.html中标签的分类:

      1.行内标签

        (1)在一行内显示:span,strong,em,i,del,a

        (2)不能设置宽高,默认的宽和高,是内容填充

        1.1 行内块标签

          (1) 在一行内显示

          (2) 可以设置宽高

      2.块级标签 div,p,h1-h6(页面中只有一个h1)

        (1) 独占一行

        (2) 可以设置宽高,如果不设置宽和高,默认的宽是父亲的100%,高是内容的高度.

      3.div + span 网页布局

      a:

        (1)超链接

        href 超链接的地址

        target: _self 默认 在当前中打开链接地址

           _blank 在空白的页面打开链接地址

        (2)标签内部跳转

        锚点:默认有点击行为.我们可以Javascript:void(0);阻止a标签的默认点击行为.

      p标签

        只能放文本,图片,表单元素,不能放其他的元素.

      img

        src;:链接的图片资源

        alt:图片资源加载失败.显示的文本

      ul: unordered list 无序列表,ul下的子元素只能是li.

        li

        type= 'circle' 圆形

        type= 'square'方块

      ol:ordered list

       只能是li

      dl:定义列表

        dt:定义标题

        dd:定义描述

      sublime软件的使用:

        ctrl + shift + p  搜package control

      table   border= '1'  style= 'border-collapse:coll:'

          tr  表格行

          td 表格列

      form 

         HTTP协议

         action:提交的服务器网址

         method:get(默认)|post(应用:登录注册,上传文件),enctype='',想要提交文件到服务器,一定是post请求.

         页面中的a,img,link,默认是get请求

         input

            type:

              text:文本输入框,普通的文本

              password:密码输入框,密码本

              file:文件按钮,提交文件的时候一定要用post,一定要给form标签添加 Enctype='multipart/form-data'

              submit:提交按钮

              button:普通按钮

              radio:单选框

              checkbox:多选框

            name:提交到服务器端的key   **当发送post请求时,那么会与input输入内容组成键值对,发送到请求体中

            value:显示的文本内容,与服务器端的value

            placeholder: 文本代替

          lable

            for:是下面的某个表单控件的id属性进行关联

      BS 交互

          1.form表单默认与服务器进行交互

          2.ajax 技术

     css

    (1) css 层叠样式表

          作用:修饰网页结构

    (2)css的三种引入方式

        --行内样式

          注意:行内样式的是优先级是最高的

        --内接样式

        --外接样式  @import url()/link1,link2

    (3)基本选择器

        id选择器:选择的是特性 唯一的,不能重复

        标签选择器:选中的是页面中共性的标签,不管标签嵌套多少层

        类选择器:选中的也是页面中共性的标签,类名也有多个

        通配符选择器:通常是对页面进行重置样式表

    (4)高级选择器

        --后代选择器

            子孙

        div ul li p{

            color:red}

        --子代选择器

            只能是亲儿子

          div>p{     }

        --组合选择器

            多个选择器组合到一起共同设置样式

            div,p,a,li,span{

                  font-size: 14px;

                  }

         --交集选择器

            div.active{    }

         --属性选择器

          input[type='text']

         --伪类选择器:LoVe HAte

            a:link{}  没有被访问的

            a:visited{}  访问过的

            a:hover{}  鼠标悬停的时候

            a:active{}  摁住的时候

         --伪元素选择器

              p:before  在...前面添加内容,一定要结合content

              p:after  在...的后面添加内容,与后面的布局有很大关系

    (5)css的继承性和层叠性

      继承性:color,text-xxx,font-xxx,line-xxx的属性是可以继承下来,盒模型的属性是不可以继承下来的.

      a标签有特殊情况,设置a标签的字体颜色,一定要选中a,不要使用继承性.

      层叠性:覆盖

      (1)行内>id>class>标签***

      (2)数数  数id  class  标签

      (3)先选中标签,权重一样,以后面的设置为主

      (4)继承来的属性,它的权重为0,与选中的标签没有可比性

      (5)如果都是继承来的属性,保证就近原则

      (6)都是继承来的属性,选择的标签一样近,再去数权重.

    (6)盒模型

      属性:

        内容的高度

        height:内容的高度

        padding:内边距,内容到边框的距离

          padding:  10px;     上下左右

          padding: 20px  30px;    上下,左右

          padding:  20px  30px  40px; 上  左右   下

          padding:     20px  30px  40px  50px  ;顺时针  上右下左

        border:边框

          三要素:线的宽度,线性的样式,颜色

            border:1px solid red;

            border-left:1px soild red;

        margin:外边距,另一边到另一边的距离

            前提必须是标准文档流下

                margin的水平不会出现任何问题

                垂直方向上  margin会出现'塌陷问题'

      盒模型的计算:

        总结:如果保证盒模型的大小不变,加padding,就一定要减width或height;

        前提是:在标准文档流.

        padding:父子之间调整位置.

        margin:兄弟之间调整位置.

    (7)布局的方式,浮动

      float:none

          left:左浮动

          right:右浮动

      浮动能实现元素并排

      盒子一浮动,就脱离了标准文档流,不占位置.

        作用好处:使元素实现并排(布局)

            就在页面上占位置

        浮动的特性

             1.浮动的元素脱标

             2.浮动的元素互相贴靠

             3.浮动的元素由'字围'效果

             4.收缩的效果

             前提是标准文档流,margin的垂直方向会出现塌陷问题.

             如果盒子居中:margin:0 auto;如果盒子浮动了,margin:0 auto;就不起任何作用

             需求:让浮动的盒子居中

                  给浮动盒子,加一个父盒子,设置宽度跟浮动盒子一样大小,并且overflow:hidden;设置该盒子magin: 0 auto;

            .box{
                width: 400px;
                height: 300px;
                background-color: red;
            }
            .main{
                width: 100px;
                overflow: hidden;
                margin: 0 auto;
            }
            .child{
                width: 100px;
                height: 100px;
                background-color: green;
                margin: 0 auto;
                float: left;
            }

          文本水平居中:text-align:center;

          文本垂直居中:行高=盒子的高度

          盒子如果浮动了,那么垂直方向上不会出现塌陷问题.

          css中三种方式让盒子'脱标':

            1.浮动fioat

            2.绝对定位

            3.固定定位

        浮动带来的问题:

            子盒子浮动,不在页面占位置,如果父盒子不设置高度,那么撑不起父盒子的高度,页面出现紊乱.

        清除浮动:

            1.给父盒子设置固定高度(后期不好维护)

            2.clear:both;

                给浮动元素的最后面,加一个空的块级标签(标准文档流的块级标签)

                给当前这个标签设置一个clearfix类名,设置该标签属性clear:both

                  存在问题:代码冗余

            3.伪元素清除法

                 .clearfix:after{

                   content:' ';

                   display:block;

                   height: 0;

                   visibility: hidden;

                   clear: both;

                  }

            4.overflow:hidden

          要浮动一起浮动,有浮动清楚浮动

    (8)display 显示

      前提必须是标准文档流下

      属性:

        block 块级标签

              --独占一行

              --可以设置宽高,如果不设置宽,默认是父盒子宽度的100%

        inline 行内标签

              --在一行内显示

              --不可以设置宽高,根据内容来显示宽高

        inline-block 行内快

              --在一行内显示

              --可以设置宽高

        none 不显示 隐藏 不在文档上占位置

        visibility: hidden; 隐藏  在文档上占位置

    (9)常用css的属性

      中心对齐--text-align:center

      两端对齐--text-align:justify

      首行缩进--text-indent:2em

      字体大小--font-size:14px

      修饰文本--text-decoration:none;没有线        underline;有下划线

      line-height:

          单行文本垂直居中:line-height = height

          多行文本居中:

              行高的高度不能小于字体的大小,不然上下字之间会紧挨在一起.

          第一步,一个宽300*300的盒子,看盒子中一共显示了几行文字,假如是5行,再看一下行高,如果行高是line-height:30px;那么就知道行高*5=150px

          第二布,让(盒子的高度-150px)/2 = 75;那么设置盒子的padding-top:75px.

    (10)backgrou-image    精灵图技术

    (11)定位:

        默认:position:static;静态定位

          position:relative;相对定位

              absolute;绝对定位

              fixed;固定定位

      --relative

         如果仅仅设置标准文档流的盒子为相对定位,那么跟普通盒子没有什么区别,不脱标.

         参考点:相对原来的位置.形影分离

         作用:1.层级提高,做压盖(不建议)

             2.布局方案'子绝父相'

      --absolute

         1.脱标:不占位置

         2.层级提高

          参考点:单个盒子

       如果以top描述,是以页面的左上角为参考点(跟浏览器的左上角区分)

       如果以bottom描述,是以浏览器的左下角为参考点

       父子盒子之间:如果父辈盒子设置相对定位,子盒子设置绝对定位,以父辈盒子的0,0为参考点

          如何让一个绝对定位的盒子居中

            left:50%

            margin-left: -宽度的一半

      --posotion: fixed;固定定位

      (1) 脱标

        参考点:浏览器的左上角

        作用:固定导航栏,返回顶部,小广告

    (12)z-index的使用

      1.z-index值表示谁压着谁,数值大的压盖住数值小的

      2.只有定位了的元素,才能有z-index,也就是说,不管相对定位,绝对定位,固定定位,都可以使用z-index,而浮动元素不能使用z-index

      3.z-index值没有单位,就是一个正整数,默认的z-index值为0,如果大家都没有z-index值,或者z-index值都一样,那么谁写在HTML后面,谁在上面压着别人,定位了元素,永远压住没有定位的元素.

      4.从父现象:父亲怂了,儿子再牛逼也没用

     Javascript

    (1)ECAScript5基础语法

      --声明变量 var

      --流程控制

          if elee if else, while, for, do-while, switch

      --运算符

          +=, -=, ++, --, =

          ==: 比较的是值

          ===: 比较的是值和数据类型

          !=, !==, >, <

      --数据类型

          基本数据类型

            string, number, boolean, null, undefined

          复杂的数据类型

            (1)字面量方式创建

                var arr = [ ];

            (2)new Array()

             Array

            (3)Object

              json

              字面量方式创建

        var person = {
                name:'liu',
                age:18,
                        fav:function(){
                            alert(this.name)
                        }
                };
                person.name;
                person.fav();

          (4) Function

                普通函数

    function add(x,y){
                return x+y;
    }
    add(1,2)

                函数对象

    var add = function(x,y){
                 return x+y;
    }
    add(3,4)

                arguments

                     实参  它是一个伪数组,它里面有索引:length,目的

    (2)DOM      Document(文档)  Object(对象)   Model(模型)

         对象:

            属性和方法

            属性:获取值和赋值

            方法:赋值方法和调用方法

    --DOM树        

            document

             html

        head         body

    title meta link...   div.header   div.content  div.footer

    --DOM的获取

      1.获取document对象

        console.log(document);

      2.获取html对象

        document.documentElement

      3.获取body对象

        document.body

      提供三种方法来获取body中的DOM

      div#box.box

      通过id获取

      document.getElementById('box');

      通过类获取

    var olis = document.getElementsByClassName('box');
    for(var i= 0;i<olis.length;i++){
                olis[i].onclick = function(){
                        alert(this.innerText);
                }
    }

      通过标签获取

      var oDivs = document.getElementsByTagName('div')

    --DOM三步走

       1.获取事件源

       2.事件绑定 onclick onmouseover | onmouseout:穿过父元素或子元素,就会调用

                onmouseenter | onmouseleave :只穿过父元素

          3.事件驱动(业务逻辑)

       

       --对标签样式属性的操作

    oDiv.onclick = function(){
    //点语法  set方法 get方法 readonly只读
            console.log(this.style);
            this.style = null;
            this.style.width = '200px';
            this.style.marginLeft = '40px';
    }

       --对标签属性的操作

        getAttribute, setAttribute, id, class, src, alt, href, title, type, name

       --对值的操作

          <div></div>单闭合标签

            innerText 只设置文本

            innerHTML 设置文本和渲染标签

          input

            value   事件

       --对DOM对象的操作(增删改查)

       --控制元素显示隐藏

          应用:网页中频繁性的切换建议使用这个

          1.控制style.display属性显示隐藏

          2.控制className对元素显示隐藏

          问题:初始化的时候有渲染

          

          应用:网页中少量的切换建议使用

          3.对元素的创建和销毁(生命周期:出生,入死)动态创建

            (1)创建document.creatElement

            (2)父.appendChild(子)  父.insertBefore(''要插入的节点'',''参考的子节点'')

            (3)销毁  父.removeChild(子)

     --选项卡 

        (1)

    var olis = document.getElementsByTagName('li');
    var oPs = document.getElementsByTagName('p');
    var i;
    for(i = 0; i< olis.length; i++){
                olis[i].index = i;
                olis[i].onclick = function(){
                        for(var j = 0; j< olis.length; j++){
                                    olis[j].className = '';
                                    oPs[j].className = ''
                        }
                        this.className = 'active';
                        oPs[this.index].className = 'active';
                }
    }

        (2)

    let olis = document.getElementsByTagName('li');
    let oPs = document.getElementsByTagName('p');
    for(let i = 0; i<olis.length; i++){
        olis[i].onclick = function () {
            for(let j=0; j<olis.length; j++){
                olis[j].className = '';
                oPs[j].className = '';
            }
            this.className = 'active';
            oPs[i].className = 'active'
        }
    }

    --定时器

      (1)一次性定时器   可以做异步  var timer= setTimeout(fn,1000);  clearTimeout()

      (2)循环周期定时器  setInterval(fn,1000);  clearInterval()

        可以做动画,js跟python一样,都有垃圾回收机制,但是定时器对象,垃圾回收收不回.

    --js面向对象 

    var person = new Object();
    person.name = 'liu';
    person.age = 18;
    person.fav = function(){
                alert(this.name);
    }
    person.fav();

      (1)字面量方式创建对象

      (2)工厂模式创建

      (3)自定义构造函数

      (4)原型对象创建对象

    (3) BOM对象

        本地信息对象

        window.location    href,hash,reload(),search...

     jquery

    jquery的概念:js query:封装了大量的js,封装js的入口函数,兼容性问题,DOM操作,事件,ajax

      一.jQuery和js的转换

        js→jQuery:$(js对象)

        jQuery→js:jQuery对象[0]

      二.选择器

        作用:获取事件源

        筛选的方法:siblings() 除它之外,其他的兄弟元素

              parent()  亲爹元素

              children() 子代元素

              find() 后代元素

              eq() 放索引,选择  $('li:eq(0)')

      三.动画

         1.普通的动画

            show(200,fn)

            hide(200,fn)

            toggle()

         2.淡入淡出

            fadeIn()/fadeOut()/fadeToggle()

            3.滑入滑出

            slideDown()/slideUp()/slideToggle()

         4.自定义动画

            animate(队列的json,1000,fn)

         5.延迟动画

            delay(时间)

          使用动画的规则:先stop() 再开动画

            $('a').mouseenter(function(){

                $(div).delay(1000).show(2000);

            })

      四.事件对象

        每一个事件的 回调函数,都会默认有一个事件对象.

        event.target  触发目标的对象

        event.type  事件类型

        event.keyCode  键码

      五.事件冒泡   event.stopPropagation()

        阻止默认的事件 event.preventDefault();

                return false;

      六.事件代理  自己完成不了的事情,交给别人去做

        原理:运行冒泡的机制

        现有的p以及未来添加的p都能做事件操作

        $('div').on('click','p',fn)

      七.事件

        click 单机事件 / dblclick 双击事件 / mouseenter / mouseleave / mouseout / mouseover / mousedown / mouseup /

        change()失焦 / select()选中

        form表单的 submit

        addEventListener('click',fn)

      八.合成事件

        mouseenter / mouseleave → hover(fn1,fn2)

      九.位置信息

        width() / height()  innerWidth() 不包含border / outerWidth() 包含border

        offset().top  对象 {top:xxx,left:ooo}

        top: 获取的是盒子到页面顶部的距离

        scrollTop() / scrollLeft() 滚动

  • 相关阅读:
    第二周例行报告
    洛谷 P3384 【模板】轻重链剖分
    洛谷 P3380 【模板】二逼平衡树(树套树)
    洛谷 P4568 [JLOI2011]飞行路线
    2018 ICPC Asia Nanjing Regional Preliminary L. Magical Girl Haze
    牛客 2020 牛客国庆集训派对 day8 G. Shuffle Cards
    洛谷 P3224 [HNOI2012]永无乡
    洛谷 P1486 [NOI2004]郁闷的出纳员
    洛谷 P3391 【模板】文艺平衡树
    洛谷 P3369 【模板】普通平衡树
  • 原文地址:https://www.cnblogs.com/liuqingyang/p/9416371.html
Copyright © 2011-2022 走看看