html,css,js用法汇总

1.HTML

基本结构:

<html>                                 
​
         <head>                  
         </head>
​
         <body>                
​
               hello html!
​
         </body>
​
</html>     

head标签里可写:

<head>
     <meta charset="utf-8" /> 
     <title>mypage</title> 
 </head>

body标签:

<body>
        你好!!!! <br />
        <b>林富豪 </b>   a&lt;b&nbsp;&nbsp;&nbsp;c&gt;d
    </body>
</html>

<!--  <br />用于换行     <b> </b> 加粗
a<b  c>d    &lt;小于   &gt;大于   1.&nbsp;  2.&ensp;比&nbsp;空格数多一点  3.&emsp;空格更多一点  -->

页内布局常用标签:

<body>
        <h1>我的标题</h1>      <!--标题标签,比普通文本字更大,默认占满一行(块状效果),四个效果:改变字号,加粗,占满一行,加了上下间距 -->
        <h2>我的标题</h2>      
        <h3>我的标题</h3>
        <h4>我的标题</h4>
        <h5>我的标题</h5>
        <h6>我的标题</h6>
        
        <p>我的段落</p>       <!--段落标签。效果:加了上下间距和占满一行 -->
        
        <div>我的div<div>     <!--块标签。效果:块状效果 -->
        
        普通文本
        
    </body>

行内结构排布常用标签:

<body>
        
        
        普通文本<span>新文本</span>    <!--行内标签,从左到右排列,单纯的把文本包裹起来(行内/内联效果)   该标签加上div标签常配合css或者js确定该文本位置。-->
        
        普通文本<b>新文本</b>   <!--加粗标签  -->
        普通文本<em>新文本</em>   <!--斜体标签  -->
        普通文本<u>新文本</u>   <!--下划线标签  -->
        普通文本<u><b>新文本</b></u>   <!--可嵌套使用  -->
        
        普通文本<strong>新文本   <!--加粗标签,是一个单标签  -->
    </body>

自定义列表:

<body>
        
         <hr />     <!--分割线 -->
         <dl>       <!--列表标签由三个标签组合起来使用,这三个标签都是块状标签 -->
             <dt>列表标题</dt>
             <dd>列表内容</dd>     
        </dl>    
         
    </body>

有序列表:

<body>
        
       <ol type="A">    <!--默认数字排序,可用type修改  A大写字母排,a小写字母排,I大写罗马数字排,i小写罗马数字排 -->
           <li>新闻1</li>
           <li>新闻2</li>
           <li>新闻3</li>
       </ol>       
            
    </body>

无序列表:

<body>
        
        <ul type="square">    <!--可设置属性,改变标题的类型,不改默认点。square方块  ddisc默认的点  circle圆圈 -->
            <li>新闻1</li>
            <li>新闻2</li>
            <li>新闻3</li>
        </ul>   
            
    </body>

a标签:

<body>
        
      我的文本<a href="html基本结构.html">我的超链接</a>     <!--也是行内标签,想让其有跳转效果,用href。-->
      
      我的文本<a href="./html基本结构.html">我的超链接</a>   <!--相对路径-->
       
      我的文本<a href="/day1_html/html基本结构.html">我的超链接</a>   <!-- 相对根路
-->
       
      我的文本<a href="https://www.baidu.com">我的超链接</a>     <!--绝对路径,一般用于访问外部资源 -->
      
      我的文本<a href="http://127.0.0.1:8848/day1_html/html基本结构.html">我的超链接</a>     <!--http路径-->
        
      我的文本<a href="file:///G:/my-two/code/day1_html/html基本结构.html">我的超链接</a>   <!--文件协议路径-->

相对路径./与../区别_imyujh的博客-CSDN博客_相对路径

a标签做锚点:

 <body>
         <!--a标签也可做锚点,即当前页面跳转-->
        
        我的文本<a href="https://www.baidu.com/s?wd=马保国&sa=fyb_n_homepage&rsv_dl=fyb_n_homepage&from=super&cl=3&tn=baidutop10&fr=top1000&rsv_idx=2&hisfilter=1">我的超链接</a>
        <h1 id="myhl">我的标题</h1>
        <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
        <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
        <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
        <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
        <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
        <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
        <a href="#">回到顶部</a>          <!--页内跳转,回到顶部-->
        <a href="###">回到顶部</a>        <!--有页内跳转的超链接,但点了没效果,就为了看看-->
        <a href="#myhl">指定跳转</a>      <!--页内跳转,指定位置跳转。格式:#元素id-->
         
        
    </body>

a标签其它属性:

<body>
        
         <!--a标签另一个属性,target,常用的属性值_blank和_self。默认_self表示当前页面(将当前页面换成要访问的页面),_blank表示新标签页(重新开个新页面作为访问的页面),标签页也叫tab页-->
         
         
        我的文本<a target="_blank" href="https://www.baidu.com/s?wd=马保国&sa=fyb_n_homepage&rsv_dl=fyb_n_homepage&from=super&cl=3&tn=baidutop10&fr=top1000&rsv_idx=2&hisfilter=1">我的超链接</a>
        
        
    </body>

img标签:

<body>
        
    <img alt="图片"  width="100"  height="100" />     <!--图片无法展示时,用文字说明一下。以及设置宽高(有专门的UI设计师设计)-->
    
</body>

一些常用的网站:w3school w3cschool 这些网站里有一些完整的html标签。

表格标签:

<body>
        
        <table bgcolor="aqua" border="1">    <!--border属性,加一个边框-->  <!--bgcolor属性,设置背景颜色-->
             <caption>用户信息表</caption>    <!--caption标签,加一个表名-->
             
            <thead>            <!--thead标签,用来划分区域,头部部分-->
            <tr>               <!--行标签-->
                <th>姓名</th>   <!--th标签,列头,相比td标签,有加粗和居中的效果-->
                <th>性别</th>
                <th>年龄</th>
            </tr>   
            </thead>
            
            <tbody>           <!--tbody标签,用来划分区域,主体部分-->
            <tr>                 
                <td rowspan="2">小明</td>   <!--td标签,单元格,以行为单位-->    <!--rowspan跨列属性 -->
                <td align="center">男</td>  <!--td默认左对齐,align属性可设置为居中-->
                <td>15</td>
            </tr>   
            <tr>                
                <td colspan="2">小白</td>    <!--colspan跨行属性 -->
                <td>女</td>
                <td>18</td>
            </tr>
            </tbody>
            
            <!--tfoot 脚-->
        </table>    
    </body>

表单标签:

<body>
    
     <form action="/myserve" method="get">  <!--表单标签form,属性action提交地址, 属性method,数据提交的方式,有get和post两种。 -->
     <input type="text" name="username" />     <!--文本框-->   
     <input type="submit" />                   <!--提交按钮-->
           
     </form>
              
</body>

表单元素标签:

<body>
     
     <form action="/test" method="get">
         <label for="mytext">用户名</label><input id="mytext" type="text" name="uname" maxlength="5" value=""  placeholder="请输入用户名"/> <br />
         <!-- label标签,提示信息标签,要加上for属性,和input标签的id属性配套使用。可让指定元素获取焦点 -->
         <!--name="uname"表单提交数据时必须的属性,maxlength="5" 允许输入的最大长度 ,value="默认值"表示文本框内容的默认值 ,placeholder="请输入用户名"文本框内的提示信息-->

         <input type="password" name="password" /> <br />      <!--密码框-->

         <input type="hidden" name="myval" value="abc" /> <br />
<!--隐藏框-->


         <!--type="radio"单选框,且对于name属性,多个框选用一个值(使用name属性进行分组)。    checked="checked默认某个值被选中-->   
         性别:<input id="gender1" name="gender" type="radio" value="1" /><label for="gender1">男</label>
         <input name="gender" type="radio" value="2" checked="checked" />女
         <input name="gender" type="radio" value="3" />女装大佬<br />
            
     
         <!--type="checkbox"多选框,还是用name进行分组,多个选项用同一个name。同样配上value区分不同选项的值.  -->
         兴趣:<input name="hobby" type="checkbox" value="1" checked="checked" />爬山
         <input name="hobby" type="checkbox" value="2" />蹦极
         <input name="hobby" type="checkbox" value="3" />游泳
         <input name="hobby" type="checkbox" value="4" />喝水<br />
            

         <!--type="color"颜色选择框   type="datetime-local"年月日时分选择框
 type="file"文件选择框,配合文件上传   type="email"一个有邮箱格式的输入框 -->
         <input type="color" />
         <input type="datetime-local" />
         <input type="file" />
         <input type="email" /><br />
            

         <!-- input的其它几种按钮:type="submit"提交当前表单按钮,通过value属性可以修改提交按钮的文本,type="reset"重置当前表单按钮,会将表单重置成最初加载时的样子.     type="button"自定义按钮,常用属性:disabled="disabled",禁用效果 -->
         <input type="submit" value="我的文本" />
         <input type="reset" value="我的重置" />
         <input type="button" value="自定义按钮" disabled="disabled" />
            
         <!-- <select>下拉列表select,配合option标签使用。name属性在select里.且一般传输是传码,不传文本,故在option里加value属性。下拉列表框默认选中第一个值,即下面的北京,可用selected="selected"调整.multiple="multiple"可将单选变为多选 -->
         <select name="myarea" multiple="multiple">
             <option value="010">北京</option>
             <option selected="selected" value="010">上海</option>
             <option  value="010">深圳</option>
         </select>
            
         <!--textarea标签,多行文本。 -->
         <textarea name="textarea" rows="10" cols="50">1233</textarea>
            
      </form> 
                
 </body>

页面嵌套标签(已过时)(这是不用body标签):

<frameset rows="20%,*">            <!--将整个页面分成上下两部分,上面占20%-->
        <frame src="top.html" />
        <frameset cols="20%,*">         <!--将下面的部分再分成左右两部分,左面占20%-->   
          <frame src="left.html" />
          <frame src="right.html" />
      </frameset>
</frameset>

iframe标签(还在用):

<body>
        新页面<iframe src="mypage.html"></iframe>   <!--可将其它页面引入-->
</body>


2.Css

引入Css代码方式(最常用的):

<head>
        <meta charset="utf-8">
        <title></title>
        <style>
            div{
                color: red;     <!--将我的文本颜色变为红色-->
            }
        </style>
</head>
<body>
        <div>我的文本</div>
</body>

元素标签选择器:

<head>
    <meta charset="utf-8">
    <title></title>
    <style>
            
            div{
                color: blue;
            }
            
            p{
                color:red;
            }
        
    </style>
    </head>
    <body>
        <div>测试文本</div>
        <p>测试文本</p>
        <div>测试文本二</div>
    </body>

class选择器(style里推荐):

<head>
    <meta charset="utf-8">
    <title></title>
    <style>
            
            .mycls{           
                color: red;
            }
            .mycls2{
                color:green;
            }
    </style>
    </head>
    <body>
        <h1>咏鹅--骆宾王</h1>
        <p class="mycls">鹅鹅鹅</p>
        <p class="mycls2">曲项向天歌</p>
        <p class="mycls">白毛浮绿水</p>
        <p class="mycls2">红掌拨清波</p>
    </body>

id选择器(css里不建议使用):

<head>
   <meta charset="utf-8">
   <title></title>
   <style>
            #mytitle{
                color:brown;
            }
   </style>
</head>
<body>
        <h1 id="mytitle">咏鹅--骆宾王</h1>
        <p >鹅鹅鹅</p>
        <p >曲项向天歌</p>
        <p >白毛浮绿水</p>
        <p >红掌拨清波</p>
</body>

class允许多值:

<head>
     <meta charset="utf-8">
     <title></title>
     <style>
          .mycls{
              color:red;
          }
          
          .cls2{
              background-color:lightcoral;   <!--加背景颜色-->
          }
          
          .cls3{
              border:1px solid black;        <!--加边框,设置边框粗细和颜色-->
          }
     </style>
</head>
<body>
        <h1 >咏鹅--骆宾王</h1>
        <p class="mycls cls2 cls3">鹅鹅鹅</p>
        <p >曲项向天歌</p>
        <p  class="mycls cls3">白毛浮绿水</p>
        <p >红掌拨清波</p>
</body>

并集选择器(同时选多个元素和其它选择器,逗号隔开):

<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        
        .mycls,h1{
            color:red;
        }
        
        p,h1{
            color:red;
        }
        
    </style>
</head>
<body>
        <h1 >咏鹅--骆宾王</h1>
        <p class="mycls cls2 cls3">鹅鹅鹅</p>
        <p >曲项向天歌</p>
        <p  class="mycls cls3">白毛浮绿水</p>
        <p >红掌拨清波</p>
</body>

交集选择器(之间无任何标点 ):

<head>
   <meta charset="utf-8">
   <title></title>
   <style>
    
            p.mycls{
                color:green;
            }
   </style>
</head>
<body>
        <h1 class="mycls>咏鹅--骆宾王</h1>
        <p class="mycls cls2 cls3">鹅鹅鹅</p>
        <p >曲项向天歌</p>
        <p  class="mycls cls3">白毛浮绿水</p>
        <p >红掌拨清波</p>
</body>

后代选择器(父元素+空格+子元素,指所有满足条件的后代,子,孙,...):

 <head>
     <meta charset="utf-8">
     <title></title>
     <style>
     
           div p{           
               color:red;
           }
           
           .mytest p{
               color:red;
           }
     </style>
 </head>
 <body>
        <h1 >咏鹅--骆宾王</h1>
        <p >鹅鹅鹅</p>
        <p >曲项向天歌</p>
        <!--div是两个p的父元素,可用标签组合,也可用样式组合-->
        <div class="mytest">
           <p >白毛浮绿水</p>
           <p >红掌拨清波</p>
        </div>
 </body>

子代选择器:

<head>
     <meta charset="utf-8">
     <title></title>
     <style>
           .mytest>p{
               color:red;
           }
           .mytest>div>p{
               color:green;
           }
     </style>
</head>
<body>
        <!--子代选择器更精准一些,可修饰子代元素,也可修饰孙元素-->
        <h1 >咏鹅--骆宾王</h1>
        <div class="mytest">
          <p >鹅鹅鹅</p>
          <p >曲项向天歌</p>
             <div>
               <p >白毛浮绿水</p>
               <p >红掌拨清波</p>
             </div>
        </div>
</body>

属性选择器([属性=属性值]):

<head>
   <meta charset="utf-8">
   <title></title>
   <style>
          
          input[type="button"]{    <!--和交集选择器搭配使用-->
              color:red;
          }
   </style>
</head>
<body>
        
        <input type="button" value="按钮" />
        <input type="text" value="文本框" />
        <input type="button" value="按钮" />
</body>

通用选择器(可被其它选择器轻易覆盖):

<head>
    <meta charset="utf-8">
    <title></title>
    <style>
          
         *{
             color:red;
         }
    </style>
</head>
<body>
        <h1 >咏鹅--骆宾王</h1>
        <p >鹅鹅鹅</p>
        <p >曲项向天歌</p>
        <p >白毛浮绿水</p>
        <p >红掌拨清波</p>
</body>

css常用样式属性:

<head>
        <meta charset="utf-8">
        <title></title>
        <style> 
        /*
        1.color,文字颜色。属性值可用英文字母,#0000FF形式

        2.font-size字体大小。属性值可用xx-large超大号,可用像素50px,可用3.125rem。(rem相对默认字体的大小,3.125rem即相对原始字号的3.125倍) 

        3.font-family字体类型。常用黑体

        4.text-align,文字对齐方式(默认左对齐).left,center,right.左中右

        5.vertical-align:middle,图片和文字排在一行(默认底部对齐)。middle居中对齐,top顶部对齐,bottom底部对齐。

        6.div块状效果。让其左右居中text-align:center。让其上下居中:让行高和块高相同。可设置块状的大小,可加边框,可让块内文字居中。
     
        7.border边框,值是复合值,允许填多个值,中间用空格隔开。通常设置边框粗细(1px),线条(实线solid 虚线dashed),边框颜色(black)。也可不用复合使用,一个个分开写,border-1px这样分开写。  边框圆角border-radius:10px;可让边框变得更柔和,也可用%,border-radius:10%;比例最多到50%,此时为圆圈

        8.text-decoration,文字修饰,underline下划线,line-through删除线,最常用的是none(给A标签用的,超链接一般带下划线,可让下划线消失。)
        
        9.background-color:背景色

        10.background背景图片,背景图片和背景颜色有冲突,一般用了背景图片,背景颜色看不着了。背景图片如果很小,会默认横纵,纵轴自己循环。background-repeat可设置重复方式,repeat-x只重复x轴,repeat-y只重复y轴no-repeat不重复
        
        11.list-style可修改无序列表的样式,默认黑点。正方形点square,也可用图片做样式。
        
        */
        p{
            color:#0000FF;           文字颜色
            text-align:center;       文字居中对齐
        }
        
        .mycls{
            /* font-size:xx-large; */    字体大小,超大号
            font-size:50px;              
            font-family:"楷体";          字体类型
        }
        
        .myimg{
            /* vertical-align:middle; */   图片和文字居中对齐
             vertical-align:top;
            /* vertical-align:bottom; */
        }
        
        .mydiv{
            width:200px;
            height:200px;
            border:1px solid black;    边框粗细,实线,边框颜色
            border-radius:50%;         边框圆角
            text-align:center;
            line-height:200px;                   行高
            /* text-decoration:underline; */     文字修饰,下划线
            background-color:#FFB6C1;            背景色
            background:url(img/jdk1.7.jpeg) ;    图片路径
            background-repeat:repeat-y;          重复方式,只重复y轴
        }
        
        .mydiv>a{
            text-decoration:none;     文字修饰,让下划线消失
        }
        
        ul{
            list-style:square;        无序列表的样式,正方形点
        }
        </style>
    </head>
    <body>
        
        <h1>悯农--李绅</h1>
        <p>锄禾日当午</p>
        <p>汗滴禾下土</p>
        <p class="mycls">谁知盘中餐</p>
        <p>粒粒皆辛苦</p>
        <div class="mydiv">
             <a href="xxx">超链接</a>我的文本</div>
        <!-- 测试文字<img class="myimg" src="img/jdk1.7.jpeg"> -->
        
        <ul>
            <li>项目1</li>
            <li>项目2</li>
            <li>项目3</li>
        </ul>   
    </body>

display属性:

<head>
        <meta charset="utf-8">
        <title></title>
        <style>
            /* 
            display显示方式,常用的值:inline行内   block块   inline-block行内块(还是从左到右排列,但可设置宽高)
            none看不见(元素还是存在的),效果等同于opacity:0;(透明度为0)(透明度的取值在0到1之间)
            
            显示颜色一般用rgb,对于rgba就是把透明度也加进去
            */
        
            /* div,span{
                border:1px solid black;
                width:100px;
                height:100px;
            }
            /* 设置宽高对行内元素无效*/ 
            
             div{
                border:1px solid black;
                width:100px;
                height:100px;
                display:inline;      /*将块元素改成行内元素*/
                opacity:0.2;
                }  
            
            span{
                border:1px solid black;
                width:100px;
                height:100px;
                display:none;      
                }
                
        </style>
    </head>
    <body>
        <div>mydiv</div>    
        <div>mydiv</div>
        <div>mydiv</div>    
        <span>myspan</span>
        <span>myspan</span>
        <span>myspan</span>
    </body>

盒子模型相关属性:

<head>
        <meta charset="utf-8">
        <title></title>
        <style> 
        /*
          盒子模型相关的属性: 1.content 内容,一般通过宽高设置  
                             2.border  边框  1px solid black;
                             3.padding,内部填充,边框与内容之间的距离
                             4. margin外边距,用法同padding,两个值时多了auto属性值
          以上四个元素都占单独的大小。有一个值发生改变,整体布局就会改变。                  
         */
             .main{
                 width:400px;
                 height:400px;
                 border:1px solid black;
                 margin:0px auto;
             }
        
             .innerdiv{     
                width:100px;
                height:100px;
                border:10px solid black;
                /* padding:10px;         边框与框内内容上下左右的距离*/
                /* padding-left:50px;    边框与左边内容的距离*/
                /* padding:10px 20px;    边框与上下10px,与左右20px */
                /* padding:10px 20px 30px;       上,左右,下 */
                padding:10px 20px 30px 40px;   /*上,右,下,左(按表走的方向)*/ 
             }
             
             .mydiv{
                /* margin:10px; */
                /* margin-top:20px;                上边距 */
                /* margin-left:20px;               左边距*/
                /* margin:10px 20px 30px 40px;     上右下左 */
                margin:10px 20px;                  /*上下和左右*/
                margin:10px auto;        /*auto可以让元素在父元素里左右居中*/
             }
        
        </style>
    </head>
    <body>
        <div class="main">
            <div class="innerdiv">div1</div>
            <div class="innerdiv mydiv">div2</div>
            <div class="innerdiv">div3</div>
        </div>
    </body>

块嵌套:

<head>
        <meta charset="utf-8">
        <title></title>
        <style>
        
        /*overflow,溢出。大块里套小块,小块太多会超过外边界,超过的部分让其不显示,用hidden。     超过部分用滚动轴显示,
        用scroll 
        
        另一种情况:父元素里面的每一个块会把其所在行占满,故虽然块右边是空白,但不会再放内容。(块元素是从上到下排列的)
        若让块元素水平排列,用float,属性值有left,right
        float也可让某个元素分成左右各一个
        注:漂浮时要让所有的块都漂浮起来,若加入不漂浮的块,边界就会按不漂浮的块重新来算,且与不漂浮的块一起排列时效果也不好
        
        若大块里套小块,小块里再套小块,就一层一层去排列,解决完一层再解决一层。 
        */
             .main{
                 width:400px;
                 height:400px;
                 border:1px solid black;
                 margin:0px auto;
                 overflow:scroll;
             }
        
             .innerdiv{     
                width:100px;
                height:100px;
                border:1px solid black;
                float:left;
             }
             
             .toRight{
                 float:right;
             }
        
        </style>
    </head>
    <body>
         <div class="main">
            <div class="innerdiv">div1</div>
            <div class="innerdiv">div2</div>
            <div class="innerdiv">div3</div>
            <div class="innerdiv">div4</div>
            <div class="innerdiv">div5</div>
         </div>
         <div>
             xxx系统    <span class="toRight">欢迎你xxx
             
         </div>
    </body>

案例:打地鼠

案例:div+css替代frameset或farme做页面嵌套

伪类选择器:

<style> 
        /*伪类选择器,用于选取元素的状态,比较常见的两个状态:hover鼠标悬停,active鼠标点击(点击但没松开),只要是页面里能看到的元素都有状态,都可以修改*/
        
            a:hover{        /* 悬浮状态 */
                color:lightcoral;        /* 修改文字颜色 */
                font-size:x-large;       /* 修改文字大小 */
            }

            a:active{       /* 点击效果 */
                color:purple;
            }

            .mydiv{
                width:100px;
                height:100px;
                border:1px solid black;
                background-color:lightgreen;
            }

            .mydiv:hover{
                background-color:lightblue;
                cursor:pointer;       /* 鼠标变成手也是样式效果 */
            }

            .mydiv:active{
                background-color:olive;
            }
            
        </style>
    </head>
    <body>
        <a href="xxx">超链接</a>    
        
        <div class="mydiv"></div>      <!--对于div鼠标点击没什么效果,也可以添加效果 -->
    </body>

定位属性-position:

<head>
        <meta charset="utf-8">
        <title></title>
        <style> 
        /*position属性默认static。其它属性值:
          1.relative相对定位,以原来所在位置为原点,进行偏移。使用了属性值后,
        通常还要使用另外两个属性,top(向下偏移)和left(向右偏移)来进行偏移。偏移量也可使用负值(故没有right和bottom)。元素未脱离文档流(其它元素不动,且位置改变的元素也是以原来位置为参照)。

        2.absolute绝对定位,元素脱离文档流(其它元素视位置改变的元素不存在,按照默认文档流排列。位置改变的元素以整个窗口的页面位置为基准进行偏移。实际上,不在同一个图层了)

        3.固定定位,元素脱离文档流,也是以窗口位置进行偏移,并固定在此处(拉滚动条也不动,不随页面移动而移动)
        
        加了定位属性的块悬浮于其他块之上.实际上,样式表有分图层,z-index可改变图层顺序。默认图层为0,加了定位属性后,改变位置的元素所在图层变为1,故可覆盖原先元素。可给z-index一个-1的值,使改变位置的元素在原来元素的下面。
        注:z-index只能用在有定位属性的元素上。

        */
           .div1{
               width:100px;
               height:100px;
               border:1px solid black;
               background-color:lightblue;
           }

          /* .div2{
                       width:100px;
                       height:100px;
                       border:1px solid black;
                       background-color:lightcoral;
                       position:relative;  
                       top:50px;
                       left:-50px;                   
           } */

           /* .div2{
                       width:100px;
                       height:100px;
                       border:1px solid black;
                       background-color:lightcoral;
                       position:absolute;  
                       top:50px;
                       left:50px;                    
           } */

           .div2{
                       width:100px;
                       height:100px;
                       border:1px solid black;
                       background-color:lightcoral;
                       position:fixed;  
                       top:50px;
                       left:50px;   
                       z-index:-1;                  
           }

           .div3{
                       width:100px;
                       height:100px;
                       border:1px solid black;
                       background-color:lightgreen;
           }
        
        </style>
    </head>
    <body>
        <div class="div1">div1</div>
        <div class="div2">div2</div>
        <div class="div3">div3</div>
    </body>

导航条制作(行业内用ul和li去做):

<head>
        <meta charset="utf-8">
        <title></title>
        <style> 

           /* ul和li都是块元素,想水平排列,可用:1.悬浮 */
          /* .mynav>li{
               float:left;
               border:1px solid black;
               margin-left:20px;      加外边距 
               width:80px;
               height:50px;
               text-align:center;
               line-height:50px;
           }

           .mynav{
               list-style:none;     去无序列表标题 
           }

           .mynav>li>a{
               text-decoration:none;    去a标签下划线 
               color:lightcoral;
           }

           .mynav>li:hover{
               background-color:lightgreen;
           } */
           
           /* 水平排列方法二:将块元素变成行元素,用display */
           .mynav>li{
               display:inline-block;    /* 改成行内块 */
               border:1px solid black;
               margin-left:20px;       
               width:80px;
               height:50px;
           }
        
        </style>
    </head>
    <body>
        <ul class="mynav">
            <li><a href="xxx"> 首页 </a></li>
            <li><a href="xxx"> 关于惠达 </a></li>
            <li><a href="xxx"> 卫浴产品 </a></li>
            <li><a href="xxx"> 工程案例 </a></li>
        </ul>
    </body>


3.javascript

javascript引入(最常用):

 
  <script>           页面中使用script标签,编写js代码
     console.log("hello world!!!!") 
  </script> 
        
 

js基本语法:

<head>
        <meta charset="utf-8">
        <title></title>
        <script> 
        
            var myNum1 = 10;       /* 变量类型会根据值的类型确定 */

            console.log(myNum1);     /*10 控制台会将不同类型的变量用不同颜色表示。数字用蓝色;字符串用黑色表示;*/

            console.log(typeof myNum1);    /* 检测变量的类型,结果为number */
            
            var myStr1 = "abc";   /* 双引号引出是字符串,单引号引出也是字符串,点(键盘左上角,esc下面的点)引出也是字符串。 */
            //var myStr2 = 'abc';
            //var myStr3 = `abc`;
            //var myStr4 = '"abc"';       /* 引号嵌套,单引号里套双引号,或者双引号里套单引号 */


            //var myStr5 = "'abc'";
            console.log(myStr1); 
            console.log(typeof myStr1);
            
            var mybol1 = true;
            //var mybol1 = false;      布尔值也是蓝色标记
            console.log(mybol1);  
            console.log(typeof mybol1);
            
            var myVar;
            console.log(myVar);             // 结果为undefined,未初始化类型。颜色为灰色
            console.log(typeof myVar);      //类型为undefined
            

            /* console.log(myVar2);             //未定义类型,控制台会报错。下面的语句不走了 (js从上到下,从左到右,逐行解析,解析出错,后面不再运行)
            console.log(typeof myVar2);    */

            
            /* console.log(typeof myVar2);    //undefined,可检测出该类型
            console.log(myVar2);           //报错 */
            
            var myDate = new Date();
            console.log(myDate);
            console.log(typeof myDate);    //object
            
            var myFun = function(){
                console.log("abc");
            }
            console.log(typeof myFun)      //function
            
        </script>
    </head>

类型转换函数:

<head>
        <meta charset="utf-8">
        <title></title>
        <script> 
        
             var myNumStr1 = "10";
             console.log(parseInt(myNumStr1));    //字符串转整数
             
             var myNumStr2 = "10a";
             console.log(parseInt(myNumStr2));   //也能转成10
             
              var myNumStr3 = "1a0";
              console.log(parseInt(myNumStr3));  //1   规则,从左到右解析,能读出来的给出,碰到解析不了的,停止解析。
             
              var myNumStr4 = "a10";
              console.log(parseInt(myNumStr4));  //NaN   not a number
              console.log(parseInt(typeof myNumStr4));   //number     (设计者应付了事)
              
             var myNumStr5 = "10.01";
             console.log(parseInt(myNumStr5));   //10    (将小数点当成一个特殊字符,停止解析)  故parseInt也可用来截取整数部分
             
             var myNumStr6 = "10.01";
             console.log(parseFloat(myNumStr6));   //10.01    (将小数点给加进来)
             
            var myNumStr7 = "1a0.01";
            console.log(parseFloat(myNumStr7));   //1
            
            var myNumStr8 = "10.0a1";
            console.log(parseFloat(myNumStr8));   //10
            
            var myNumStr9 = "a10.01";
            console.log(parseFloat(myNumStr9));  //NaN
            
            var myNum1 = 10;
            console.log(myNum1.toString());    //10
            
        </script>
    </head>

比较运算符:

 var myNum1 = 10;
             var myStr1 = "10";
             console.log(myNum1==myStr1);     //true    js里有一些内置转换,会先将字符型数字和数字做一次转换,若转换成功,
             //就直接当做数字用
             
              console.log(myNum1===myStr1);   //false    希望直接比较,不用内置转换,就用===
              
              //其它内置转换的情况
              var mybol1 = true;
              var myNum2 = 1;
              console.log(mybol1==myNum2);   //true
              console.log(mybol1===myNum2);  //false

逻辑运算符:

console.log(!0);    //true   !的一个特殊用法:将数值类型转成布尔类型

小数相加问题:

var myNumber1 = 0.1;
var myNumber2 = 0.2;
//console.log(myNumber1 + myNumber2 );   //0.30000000000000004    精度丢失  
//用toFixed保留指定位数的小数,转成的是字符串类型。想要数字再转一下,用parseFloat()
console.log((myNumber1 + myNumber2).toFixed(1) );    //0.3    

条件语句:

<script>
        
        //if-else
            var mySource = 100;
            if(mySource>80){
                console.log("良好");
            }else if(mySource>60){
                console.log("及格");
            }else{
                console.log("差劲");
            }
            
        //switch-case
            var myGrade = 'g';
            switch(myGrade){
                case 'g':console.log("奖励一袋零食");break;
                case 'a':console.log("奖励一颗糖");break;
                case 'x':console.log("奖励一巴掌");break;
                default:console.log("啥都没有");break;
            }
          
</script>

循环语句:

//for
            var myarr = [1,4,5,2,4,5];   //js里定义数组,直接[]
            //遍历数组
            for(var i=0;i<myarr.length;i++){
                console.log(myarr[i]);
            }
            
        //for-in循环
            var myarr1 = [1,4,5,2,4,5]; 
            for(var x in myarr1){
                console.log(myarr1[x]);   //x是索引
            }
            
        //while
            var myflag = true;
            while(myflag){
                if(xxx){
                    myflag = false;
                }
            }
            
        //do-while  
            do{
                //循环体
            }while(myflag)

课堂练习:

1.将1549各个位都摘出来,再相加,并输出相加后的结果。

var myNum = 1549;
            var myGe = myNum%10;
            var myShi = parseInt(myNum/10)%10;
            var myBai = parseInt(myNum/100)%10;
            var myQian = parseInt(myNum/1000);
            var mySum = myGe + myShi + myBai + myQian;
            console.log(mySum);

2.0-6分别表示周日,周一到周六。在控制台输出工作日(一到五)和周末(六和日)

var myDay=0;
            switch(myDay){
                case 0:
                case 6:console.log("周末");break;
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:console.log("工作日");break;
                default:console.log("输入不合法");break;
            }

3.输出乘法口诀表,但不输出到控制台,输出到页面。用document.write("<h1>abc<h1>"); //可带标签

for(var i=1;i<=9;i++){
                for(var j=1;j<=i;j++){
                    document.write(j+"x"+i+"="+j*i );
                    document.write("&ensp;");
                    if(j*i<10){                             //如果不是两位,补一个空格
                        document.write("&ensp;");
                    }
                }
                document.write("<br />");
            } 

系统函数:

console.log(isNaN("abc"));    //true    
console.log(!isNaN("10"));    //true


//eval
var mystr = "1+5*3";
console.log(mystr);           //1+5*3
//如果字符串是一个算式,eval可将结果运算出来(把字符串当脚本运行,返回结果)
console.log(eval(mystr));     //16

自定义函数:

function myfun(){                //不带形参的函数
                console.log("运行了自定义函数");
            }
            
            myfun();    //函数的调用
            
            function myfun1(a,b){         //带参数的函数,参数在js里是弱类型,不需要指明类型.多个参数用逗号隔开
                var mySum = a+b;
                console.log(mySum);     //可打印出运算结果
            }
            
            myfun1(1,3);   //调用要给实参
            
            function myfun2(a,b){        
                var mySum = a+b;
                return mySum;       //可返回数据,比java少了返回值类型的定义  没返回值则不用加return
            }
            
            var myNum = myFun2(1,3);    //接收返回值,可自己定义一个变量
            console.log(myNum);
             
//匿名函数的写法,不用加函数名
            var myFun2 = function(a,b){
                return a-b;
            }
            console.log(myFun2(3,1));   //2

鼠标点击 onclick事件:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script>
            function myTest(){
                console.log("按钮被点击了");
            }
        
        </script>
        <style>
             .mydiv{
                 width:100px;
                 height:100px;
                 border:1px solid black;
            }
        </style>
           
    </head>
    <body>
        <input type="button" value="点我" onclick="myTest()" />   <!-- 点击事件,鼠标点击时触发该函数,每点击一次,触发一次 -->
        <div class="mydiv" onclick="myTest()"></div>   <!-- 页面的元素都可加点击事件 -->
    </body>
</html>

鼠标悬浮onmouseover事件:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script>
            function changeColor(){
                console.log("鼠标经过");
                console.log(document.getElementById("mydiv"));   //通过id找元素
                //找元素对象,再确定对象属性,再从样式属性诸多属性里找到要修改的属性,再把值改变。
                document.getElementById("mydiv").style.backgroundColor = "lightcoral";   //修改元素背景颜色
            }
            
            function changeColor2(){
                document.getElementById("mydiv").style.backgroundColor = "white";
            }
        </script>
        
        <style>
             .mydiv{
                 width:100px;
                 height:100px;
                 border:1px solid black;
            }
        </style>
           
    </head>
    <body>
        <!-- onmousemove鼠标悬浮于元素事件      onmouseout鼠标离开元素事件 -->
        <div id="mydiv" class="mydiv" onmousemove="changeColor()" onmouseout="changeColor2()"></div>  
    </body>
</html> 

参数内容相同可简化:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script>
        //这两个函数只有参数不同,怎么简化
            /* function changeColor(){
                document.getElementById("mydiv").style.backgroundColor = "lightcoral";  
            }
            
            function changeColor2(){
                document.getElementById("mydiv").style.backgroundColor = "white";
            } */
            
             function changeColor(mycolor){
                document.getElementById("mydiv").style.backgroundColor = mycolor;  
            }
            
            function changeColor2(mycolor){
                document.getElementById("mydiv").style.backgroundColor = mycolor;
            }
            
            
        </script>
        
        <style>
             .mydiv{
                 width:100px;
                 height:100px;
                 border:1px solid black;
            }
        </style>
           
    </head>
    <body>
        <!-- 谁调函数,谁传实参,传的字符串,在下面要加单引号(外面是双引号)。但传数字或者布尔,不需要加引号 -->
        <div id="mydiv" class="mydiv" onmousemove="changeColor('red')" onmouseout="changeColor2('white')"></div>  
    </body>
</html> 

当效果变化的元素和触发事件的元素是同一个元素,可简化代码:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script>
             function myTest(){
                 console.log("被点了");
             }
    
             function changeColor(mycolor,myobj){
                myobj.style.backgroundColor = mycolor; 
            }
            
            function changeColor2(mycolor,myobj){
                myobj.style.backgroundColor = mycolor;
            }
            
            
        </script>
        
        <style>
             .mydiv{
                 width:100px;
                 height:100px;
                 border:1px solid black;
            }
        </style>
           
    </head>
    <body>
        <!-- this表示当前的元素 -->
        <div id="mydiv" class="mydiv" onclick="myTest()" onmousemove="changeColor('red',this)" onmouseout="changeColor2('white',this)"></div>  
    </body>
</html>  
​

点击一个元素,使另一个元素触发效果,还是用id去写:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script>
             function myTest(){
                 console.log("被点了");     
                 document.getElementById("mydiv").style.backgroundColor="green";   //点击按钮使块元素变绿
             }
    
             function changeColor(mycolor,myobj){
                myobj.style.backgroundColor = mycolor; 
            }
            
            function changeColor2(mycolor,myobj){
                myobj.style.backgroundColor = mycolor;
            }
            
            
        </script>
        
        <style>
             .mydiv{
                 width:100px;
                 height:100px;
                 border:1px solid black;
            }
        </style>
           
    </head>
    <body>
        <!-- 没有关系的元素还是用id去写 -->
        <input type="button" value="点我" onclick="myTest()" />
        <div id="mydiv" class="mydiv" onclick="myTest()" onmousemove="changeColor('red',this)" onmouseout="changeColor2('white',this)"></div>  
    </body>
</html>  

onfocus获取焦点事件:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script>
             function changeTextColor(){
                 document.getElementById("mytext").style.color = "blue";   //获取焦点时,文本框内字体颜色变蓝
             }
             
             function changeTextColor2(){
                 document.getElementById("mytext").style.color = "black";   //失去焦点时,文本框内字体颜色变黑
             }
             
             function changeTextValue(){  
                 //document.getElementById("mytext2").value = "abc123";   获取焦点时,文本框内默认值改变
                 var nowVal = document.getElementById("mytext2").value;   //读取默认值
                 console.log(nowVal);
             }
             
             //对元素的通用操作,读和写
             //写操作:元素.属性="xxx"
             //读操作:var xxx = 元素.属性
            
        </script>
        
        <style>
            
        </style>
           
    </head>
    <body>
        <!-- 一个时间只能有一个元素获取焦点   onfocus获取焦点事件   onblur失去焦点事件 -->
       <input id="mytext" type="text" value="默认值" onfocus="changeTextColor()" onblur="changeTextColor2()" />
       <input id="mytext2" type="text" value="默认值" onfocus="changeTextValue()" />
    </body>
</html>  

onchange内容改变事件:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script>
             
             function getNowValue(myobj){   //文本框里的内容改变,会将改变后的内容打印输出到控制台
                console.log(myobj.value);  
                 
             }
             
             function getSelectVal(){
                 //select标签虽然没有value,但内部已经做到转换,找到的是被选中的option的value
                 console.log(document.getElementById("mysel").value);  //当选项改变时,会将对应的value值输出到控制台
             }
        </script>
    </head>
    <body>
     
        <input id="mytext2" type="text" value="默认值" onchange="getNowValue(this)" />  
        
        
        <select id="mysel" onchange="getSelectVal()" >
            <option value="010">北京</option>
            <option value="020">上海</option>
            <option value="030">深圳</option>
        </select>
    </body>
</html>  

也可以改变下拉列表的选项使div块发生改变:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script>
              
              function changeDivBGC(){
                 var selColor = document.getElementById("clsel").value;  
                 document.getElementById("mydiv").style.backgroundColor = selColor;
             }
        </script>
        
        <style>
            .mydiv{
             width:100px;
             height:100px;
            border:1px solid black;
            }
        </style>
        
    </head>
    <body>
        <div id="mydiv" class="mydiv" ></div> 
        
        <!-- 当下拉列表选项改变,div块对应改变颜色。 -->
        <select id="clsel" onchange="changeDivBGC()" >
            <option value="blue">蓝色</option>
            <option value="red">红色</option>
            <option value="green">绿色</option>
        </select>
    </body>
</html>  

页面载入onload事件(此事件可用script标签放到最下面替换):

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script>
           // document.getElementById("mytext").value = "abc123";  会报错,不是函数,函数调用才执行。这里从上到下加载,
           //加载到此处,元素还没生成,也就找不到元素,也就不能给默认值。
           //解决方案一:生成元素后再执行这句话
           //解决方案二:使用onload事件,页面加载结束,直接写在body里,此时script写在哪都行,但要配函数。
           
          /* 解决方案二:对应函数
          function myInit(){
               document.getElementById("mytext").value = "abc123";
           } */
​
        </script>
    </head>
    <body>
        <input id="mytext" type="text" />
    </body>
    
    <!--  解决方案二:
    <body onload="myInit()">    整个body加载结束后会触发onload事件 
        <input id="mytext" type="text" />
    </body> -->
    
    
    <!-- 解决方案一:(推荐用此方案,更简单)
    <script>
      document.getElementById("mytext").value = "abc123"; 
    </script> -->
</html>

onload也可用元素绑定事件去写:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script>
          
          //onload的另一种写法,叫元素绑定事件。这种写法也可以先找到元素,用document.getElementById("mytext").onload,后面一样
          //元素绑定事件只能用匿名函数
          window.onload = function(){
               document.getElementById("mytext").value = "abc123"; 
          }
         
        
        </script>
    </head>
    <body>
        <input id="mytext" type="text" />
    </body>
    
</html>

innerHTML属性:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <h1 id="mytitle">我的标题</h1>
    </body>
    <script>
         //操作元素的通用方法:找到元素,再点元素的属性。比如改文本框,按钮的值
         //对双标签里的内容,用什么属性合适?   用innerHTML,代表双标签里的内容
         document.getElementById("mytitle").innerHTML = "new title";
    </script>
</html> 

键盘按键 onkeyup事件:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <!-- onkeydown键盘按下事件    onkeyup键盘弹起事件      onkeypress键盘按下弹起复合事件-->

        <input id="mytext" type="text" onkeyup="getTextVal()"  />
        
        <input id="mytext" type="text" onkeyup="getTextVal(event)"  />
    </body>
    <script>
        //看一下按键盘结束后文本框的值
        function getTextVal(){
            console.log(document.getElementById("mytext").value);  
        }
        
        //keyCode键盘(识别)码
        //该函数效果:每次按键会在控制台输出该按键对应的键盘码
        function getTextVal(event){
            console.log(event.keyCode);  
        }
    </script>
</html> 

案例:手机号输入效验:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <input id="mytext" type="text" onkeyup="checkText()" /><span id="checkspan"></span>
    </body>
    <script>

        //js里,正则必须写在两个斜杠中间
        var myreg = /^1(3|4|5|7|8)\d{9}$/;
        
        function checkText(){
            var num1 =  document.getElementById("mytext").value;     //每次按键盘都会获得当前值

            console.log(myreg.test(num1));   //用正则表达式效验输入是否正确,true则正确,false则错误
            
            //想要给用户看,而不是在控制台看.显示的位置应该在文本框后面.正确提示信息为绿色,错误为红色。
            if(myreg.test(num1)){
                document.getElementById("checkspan").innerHTML = "格式正确";
                document.getElementById("checkspan").style.color = "green";
            }else{
                document.getElementById("checkspan").innerHTML = "格式错误";
                document.getElementById("checkspan").style.color = "red";
            }
        }
        
    </script>
</html>

网上的效果,正确给个对勾图片,错误给个叉叉图片:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
        /* 调一个图片对齐方式 */
            img{
                vertical-align:middle;   /* 和文本框居中对齐 */
                display:none;            /* 不操作不显示图片 */
            }
        </style>
    </head>
    <body>

        <!-- 正确显示图片一,错误显示图片二 -->
        <input id="mytext" type="text" onkeyup="checkText()" /><img id="myimg" src="./false.png" /> 
    </body>
    <script>

        var myreg = /^1(3|4|5|7|8)\d{9}$/;
        
        function checkText(){
        
            if(myreg.test(document.getElementById("mytext").value)){
                document.getElementById("myimg").style.display = "inline";   /* 操作显示图片 */
                document.getElementById("myimg").src = "./对勾.png";
            }else{
                document.getElementById("myimg").style.display = "inline";
                document.getElementById("myimg").src = "./false.png";
            }
        }
        
    </script>
</html>

表单提交 onsubmit事件:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            img{
                vertical-align:middle;  
                display:none;   
            }
        </style>
    </head>
    <body>
        <!-- onsubmit限制表单提交    onsubmit="return false"无法提交 onsubmit="return true"可以正常提交-->
        <form action="/server" method="get" onsubmit="return checkText()" >
            <input id="mytext" type="text" onkeyup="checkText()" /><img id="myimg" src="./false.png" /> 
            <input type="text" onkeyup="checkMail()" /><img id="myimg" src="./false.png" /> 
            
            <br />
            <input type="submit"  />
        </form>
    </body>
    <script>
        var myreg = /^1(3|4|5|7|8)\d{9}$/;  
        function checkText(){
            var flag = false;
            if(myreg.test(document.getElementById("mytext").value)){
                document.getElementById("myimg").style.display = "inline";  
                document.getElementById("myimg").src = "./对勾.png";
                flag = true;
            }else{
                document.getElementById("myimg").style.display = "inline";
                document.getElementById("myimg").src = "./false.png";
                flag = false;
            }
            return flag;
        }
        
        function checkMail(){
            return true;
        }
        
        function mySubmit(){   //效验其它所有结果,所有结果都为true才返回true
            return checkText()&&checkMail();
        }
        
    </script>
</html>
​

BOM浏览器对象模型:

windows对象:

<script>
        console.log(window.document);      //用document可在控制台看到完整的代码   
        //document属于window对象,windows可省略不写
        
        //以下全部过时,了解:
        //alert("警告框");    
        //prompt("请输入");   
        //confirm("确定离开么 还有xx分钟就可以领取大奖")   
    
</script>

History对象:

<body>
        <input type="button" value="go" onclick="myBack()" />
    </body>
    <script>
    
    //浏览器历史记录的按钮实际上就是前进和后退按钮,
        function myBack(){
            //history.back();     加载上一个浏览的文档(浏览器里的后退)

            //history.forward();  加载下一个浏览过的文档(浏览器里的前进)

            history.go(0);        //刷新页面,相当于在第0个历史记录里跳转
        }
    
    </script>

Location对象:

<body>
        <input type="button" value="跳转" onclick="myHREF()" />
        <input type="button" value="刷新页面" onclick="myRefresh()" />
    </body>
    <script>
 
        function myHREF(){
            //页面跳转
            location.href = "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=123&fenlei=256&rsv_pq=b3903db40004d883&rsv_t=26dfCMNmJN8OLu8M%2F6R0rmWsUMQJPAWUKGi369qTEIZJP7hLs1UlUXlvnmI&rqlang=cn&rsv_enter=0&rsv_dl=tb&rsv_btype=i&inputT=1073&rsv_sug4=1297"
        }
        
    //浏览器的刷新按钮通过location对象调用reload属性
        function myRefresh(){
            location.reload();      //刷新当前页面
        }
    
    </script>

Document对象:

<body>
        <div class="mycls">div1</div>
        <div>div2</div>
        <span class="mycls">span1</span>
        <input id="mytext" type="text" />
        
        <hr />
        <input name="hobby"  type="checkbox" value="1" />
        <input name="hobby"  type="checkbox" value="2" />
        <input name="hobby"  type="checkbox" value="3" />
        
        <div class="mytest">
            <p>鹅鹅鹅</p>
            <p>曲项向天歌</p>
            <div id="mydiv">
                <p>拔毛浮绿水</p>
                <p>红掌拨清波</p> 
            </div>
            
        </div> 
        
        <!-- 让文本框1,2,3的颜色改变,先找到元素,故加特征,最简单的特征就是用div包起来,再给div加个id。 -->
        <div id="aimdiv">
            <input type="text" value="文本框1" />
            <input type="text" value="文本框2" /> 
            <input type="text" value="文本框3" />
            <input type="button" value="按钮" />
            <input type="checkbox" value="123" />
        </div>
        
        
    </body>
    <script>
    //document对象属于windows对象,代表当前文档

        document.title="mypage";     //操作title标签(页面左上角的标题)
        
        console.log(document.getElementById("mytext"));   //通过id找到唯一的一个元素

        console.log(document.getElementsByTagName("div"));  //通过标签名查找元素 
         
        console.log(document.getElementsByName("hobby"));  // 通过name属性查找元素
         
        console.log(document.getElementsByClassName("mycls")); //通过class的值查找元素
        
     
      console.log(document.getElementById("mydiv").getElementsByTagName("p"));  //在某个元素中查找元素
        
​
        //让文本框1,2,3的颜色改变    通过元素属性筛选元素
        var eles = document.getElementById("aimdiv").getElementsByTagName("input"); //找到5个input标签
        for(var i = 0;i<eles.length;i++){   
            if(eles[i].type=="text"){      //判断type是否为text,是则变为红色
                eles[i].style.color="red";
            }
        }
    </script>

Window对象常用方法:

<body>
        <input type="button" value="打开新窗口" onclick="myOpen()" />
        <input type="button" value="关闭窗口" onclick="myClose()" />
    </body>
    <script> 
        //打开新窗口open。传入参数:1.打开窗口的地址  2.窗口名字  
        //3.一些可选项,比如窗口大小,所在位置,是否要滚动条,工具栏等    后两个参数选填,第一个必填
        
        /* function myOpen(){
            window.open("2history对象.html","","");
        } */
        
        
        //关闭窗口,没有参数。谁调用,就关谁(windows对象调用的,windows对象代表当前窗口)
        /* function myClose(){
            window.close();
        } */
        
        
        //关闭新窗口,不是当前窗口,只要获得新窗口对象,就可关闭。
        //新窗口对象通过open的返回值获取
        //函数内定义的变量只能在自己函数中生效,应用全局变量
        //注:全局只针对当前页面生效

        var newWin;
        function myOpen(){
            newWin =  window.open("2history对象.html","","");   
        }
        
        
        function myClose(){
            newWin.close();     //此时关闭的是新窗口
        } 
    
    </script>

定时函数:

<body>
        <input type="button" value="开始定时触发" onclick="myStart()" />
        
</body>
<script>
        //两个定时函数: 1.setInterval(fun,time)定时重复不断地执行  clearInterval  停止
        //两个参数,1.要执行的函数对象  2.间隔多长时间去执行,是毫秒数
​
        //2.setTimeout(fun,time)定时执行一次   clearTimeout  停止
    
        function myLog(){
        console.log("1");      
        } 
        
        setInterval("myLog()",1000);   //页面加载结束后触发该定时函数,该定时函数每隔一秒执行一次myLog()函数。第一种写法,引号里加函数名加括号
        
        //setInterval(myLog,1000);   第二种写法,不推荐
        
        /* setInterval(function(){   第三种写法,用匿名函数
            console.log("1");
        }
        ,1000); */
        
        //通常定时函数通过按钮触发,故写法上会套在一起
        function myStart(){
            setInterval(function(){   
                console.log("1");
            },1000); 
            
        //但要注意,按钮点完之后马上禁用,不然定时重复不断地执行。
<body>
        <input type="button" value="开始定时触发" onclick="myStart(this)" />
        
</body>
<script>
       
        function myStart(myObj){
            myObj.disabled = true;    //按钮禁用
            setInterval(function(){   
                console.log("1");
            },1000); 
</script>
<body>
        <input type="button" value="开始定时触发" onclick="myStart(this)" />
        <input type="button" value="停止定时" onclick="myStop()" />
    </body>
    <script>
​
        //setTimeout用法和setInterval一样
            setTimeout(function(){
                console.log(3);
            },1000); 
        
        
            var taskid;
            function myStop(){
                clearInterval(taskid);   //参数是Interval的id,其id从开启的返回值获得。同样提升作用域

                //clearTimeout() 是停掉setTimeout定时,参数是Timeout的id
            }
            
            function myStart(myObj){
                myObj.disabled = true;
                taskid = setInterval(function(){
                    console.log("2");
                },1000); 
               }
        </script>

案例:页面定时跳转

案例:图片隐藏

案例:随机数

案例:生成界面

文档对象模型(dom树结构):

获取元素节点:

<body>
        <div id="aimdiv">
            <div class="mydiv">
                我的标签1
            </div>
            <div id="mydiv">
                我的标签2
            </div>
            <div class="mydiv">
                我的标签3
            </div>
        </div>
        <input id="mytext" type="text" value="abc"/>
    </body>
    <script>
        
        console.log(document.getElementById("mydiv"));        //通过id获取元素
        console.log(document.getElementsByTagName("div"));     //通过标签名获取元素 
        console.log(document.getElementsByClassName("mydiv"));  //通过class属性获取元素
    </script>   

根据节点层次关系获取节点(属性不加括号):

<body>
        <div id="aimdiv">
            <div class="mydiv">
                我的标签1
            </div>
            <div id="mydiv">
                我的标签2
            </div>
            <div class="mydiv">
                我的标签3
            </div>
        </div>
        <input id="mytext" type="text" value="abc"/>
    </body>
    <script>
        
        console.log(document.getElementsByClassName("mydiv")[0].parentNode);  //第一个class属性为mydiv的节点的父节点。
        
        console.log(document.getElementById("aimdiv").childNodes);   //返回子节点集合(注:div标签间会有一些空白,属于文本节点)
        
        console.log(document.getElementById("aimdiv").lastElementChild);     //获取最后一个元素子节点
        console.log(document.getElementById("aimdiv").lastChild);     //获取最后一个子节点
        console.log(document.getElementById("mydiv").previousElementSibling);   //获取上一个元素节点

节点属性操作:

<body>
        <input id="mytext" type="text" value="abc" />
    </body>
    <script>
       //之前的对元素属性的操作方法:
       //document.getElementById("mytext").value = "123";
       
       //使用方法的方式  getAttribute() 获取属性   setAttribute() 设置属性值
       document.getElementById("mytext").setAttribute("value","123456");  
       document.getElementById("mytext").getAttribute("value");   //取值只需传入属性名
       
    </script>

文本节点操作:

<body>
        <div id="aimdiv">
            <div class="mydiv">
                我的标签1
            </div>
            <div id="mydiv">
                我的标签2
            </div>
            <div class="mydiv">
                我的标签3
            </div>
        </div>
    </body>
    <script>
       //.innerHTML  可解析html标签
       //.innerText   不能解析html标签,纯文本
       
       //document.getElementById("mydiv").innerHTML = "<h1>test</h1>";  可带标签,将文本替换
       //(我的标签2被修改为test,并增加了标签h1的效果)
       
       document.getElementById("mydiv").innerText = "<h1>test</h1>";  //将"我的标签2"替换为" <h1>test</h1>"
       
    </script>

Dom动态操作相关方法:

<body>
        <input type="button" value="添加元素" onclick="addEle()" />  
        <input type="button" value="添加元素2" onclick="addEle2()" />
        <input type="button" value="删除元素" onclick="delEle()" />
        <ul id="myul">
            <li id="myli"><input type="button" value="女足夺冠"/> </li>
        </ul>
    </body>
    <script>
    
        function addEle(){    //功能:点击添加元素按钮,在无序列表中增加一条新闻
            //添加新元素流程:1.创建元素createElement  2.把元素填入页面中appendChild,参数是新创建的元素
            
            /* var newEle = document.createElement("li");   1.创建元素
            newEle.innerHTML="男足(没有)夺冠"; */    //3.写文本,用innerHTML属性
            //document.getElementById("myul").appendChild(newEle);   2.把元素填入页面中appendChild,参数是新创建的元素,但此时只多出一个点,没有文本
​


            //想把新添加的新闻放到女足新闻前面,用insertBefore  //document.getElementById("myul").insertBefore(newEle,document.getElementById("myli"));
            
            
            //将女足新闻做成按钮,新添加的新闻也做成按钮:(多了一层嵌套效果)
            var newEle = document.createElement("input");    //1.创建input标签
            newEle.setAttribute("type","button");            //6.input标签通过type属性决定各种类型(也可newEle.type = "button");
            newEle.value="男足(没有)夺冠";                    //2.写标签内容
            var newli = document.createElement("li");        //3.创建li元素
            newli.appendChild(newEle);                       //4.将input放在li里 
            document.getElementById("myul").appendChild(newli);   //5.将准备好的li整个放到ul里
        }

         
        function addEle2(){
            //cloneNode(bol) 克隆方法,参数为布尔值。bol决定子元素是否一起复制。若为false,则指复制了列表的图标。
            //不写布尔值,默认false
            var newEle = document.getElementById("myli").cloneNode(true);
            document.getElementById("myul").appendChild(newEle);
            
        }
        
        function delEle(){
            //removeChild删除节点
            //通过元素结构 找到需要删除的子节点
            //删除最后一个
            document.getElementById("myul").removeChild(document.getElementById("myul").lastElementChild);
        }
​
    </script>

dom动态操作简单的方法:

<body>
        <input type="button" value="添加元素" onclick="addEle()" />
        <input type="button" value="删除元素" onclick="delEle()" />
        <ul id="myul">
            <li id="myli"><input type="button" value="女足夺冠"/> </li>
        </ul>
    </body>
    <script>
    /* 
     添加或者替换时 把元素当文本操作
     删除时 使用动态dom的删除方式
     
     */

        function addEle(){
            document.getElementById("myul").innerHTML +=  '<li id="myli"><input type="button" value="女足夺冠2"/> </li>';
        }
        
        function delEle(){
            document.getElementById("myul").removeChild(document.getElementById("myul").lastElementChild);
        }
    
    </script>

Dom操作表格相关方法:

<body>
    <input type="button" value="添加一行数据" onclick="addNewRow()" />
    <table id="mytable" border="1">
        <caption>用户信息表</caption>
        <thead>
            <tr>
                <th>编号</th>
                <th>姓名</th>
                <th>年龄</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>1</td>
                <td>小明</td>
                <td>25</td>
            </tr>
            <tr>
                <td>2</td>
                <td>小白</td>
                <td>25</td>
            </tr>
            <tr>
                <td>3</td>
                <td>小光</td>
                <td>29</td>
            </tr>
        </tbody>
    </table>
    </body>
    <script>
        function addNewRow(){
            /* 
             把table描述成二维数组
             rows    行
             cells   单元格
             insertRow() insertCell() 参数都是索引
             */
            console.log(document.getElementById("mytable").rows[3].cells[1].innerHTML);   //4行2列----小光
            
            //var newTR = document.getElementById("mytable").insertRow(0);   第1行添加
            //var newTR = document.getElementById("mytable").insertRow(4);   最后一行添加
            //但再想在最后一行添加要改索引,不方便,可用document.getElementById("mytable").rows.length。
            var newTR = document.getElementById("mytable").insertRow(document.getElementById("mytable").rows.length);
            
            //列一般定死,不会再扩
            var newTd1 = newTR.insertCell(0);
            var newTd2 = newTR.insertCell(1);
            var newTd3 = newTR.insertCell(2);
            newTd1.innerHTML="test";
            newTd2.innerHTML="test";
            newTd3.innerHTML="test";
        }
    
    </script>

Dom操作表格简单方法:

<body>
        <input type="button" value="添加一行数据" onclick="addNewRow()" />
        <input type="button" value="删除最后一行" onclick="delRow()" />
        <hr />
        <input id="myCode" type="text" placeholder="编号" />
        <input id="myName" type="text" placeholder="姓名" />
        <input id="myAge" type="text" placeholder="年龄" />
        <table id="mytable" border="1">
            <caption>用户信息表</caption>
            <thead>
                <tr>
                    <th>编号</th>
                    <th>姓名</th>
                    <th>年龄</th>
                </tr>
            </thead>
            <tbody id="mytbody">
                <tr>
                    <td>1</td>
                    <td>小明</td>
                    <td>25</td>
                </tr>
                <tr>
                    <td>2</td>
                    <td>小白</td>
                    <td>25</td>
                </tr>
                <tr>
                    <td>3</td>
                    <td>小光</td>
                    <td>29</td>
                </tr>
            </tbody>
        </table>
    </body>
    <script>
            function addNewRow(){
​
                var myCode = document.getElementById("myCode").value;
                var myName = document.getElementById("myName").value;
                var myAge = document.getElementById("myAge").value;
                
                document.getElementById("mytbody").innerHTML+='<tr>'
                                                                +'<td>'+myCode+'</td>'
                                                                +'<td>'+myName+'</td>'
                                                                +'<td>'+myAge+'</td>'
                                                                +'</tr>'
            }
            
            function delRow(){
                //删除最后一行
                //document.getElementById("mytable").rows.length-1 数组长度-1 正好是最后一条数据的idx
                document.getElementById("mytable").deleteRow(document.getElementById("mytable").rows.length-1);
            }
            
        
        </script>

Js常用对象:

String:

<script>
        var myStr = "abc123efcg";
        
        //indexOf()  
        console.log(myStr.indexOf("c"));  //2
        
        //lastIndexOf()  若找不到返回-1
        console.log(myStr.lastIndexOf("ca"));   //-1
        
        //substring() 截取     两个参数:起,止的索引,包头不包尾
        console.log(myStr.substring(2,4));    //c1
        //substr()    两个参数:起,个数
        console.log(myStr.substr(2,4));   //c123
        
        //replace()     将第一个参数替换为第二个参数
        console.log(myStr.replace("ef","oo"));   //abc123oocg
        
        
        
        //split()分割   通常用在有格式的字符串
        var myStr2 = "id=5;name=jack;age=15";
        var kvs = myStr2.split(";");      
        console.log(kvs);            //Array(3)   0: "id=5"  1: "name=jack"   2: "age=15"
        
        //将name=jack的值取出
        for(var i = 0;i<kvs.length;i++){
            var kandv = kvs[i].split("=");
            //console.log(kandv[0]+'---'+kandv[1]);    id---5   name---jack   age---15  
            if(kandv[0]=="name"){
                console.log(kandv[1]);      
            }
        }
        
    </script>

Math:

<script>
        var myNum = 10.1;
        
​
        console.log(Math.ceil(myNum));    //11   ceil()向上取整 
        console.log(Math.floor(10.9));    //10   floor()向下取整
        
        console.log(Math.round(10.4));    //10   round() 四舍五入
        console.log(Math.abs(-10));       //10    绝对值
        
        // 产生1-10间的整数,含1和10
        console.log(Math.floor(Math.random()*10)+1); //Math.random() 0-1间的随机小数(包头不包尾)  
    </script>

Date:

<script>
    /* 
    日期对象,在js里较简单.没有格式化,没有日期转换
    传入常用日期格式字符串,主要有两种
    1.2022-12-12 12:12:12    2.2022/12/12 12:12:12

     */
     var nowTime = new Date();     //获取当前时间    
     console.log(nowTime);  

    var myDate = new Date("2022/12/12 12:12:12");   //需要获取年月日时分秒,传入常用日期格式字符串
    console.log(myDate);   
    
    </script>

Array对象:

<script>

          var myarr = new Array(5);   //获取数组对象,可传参,参数为长度
          var myarr2 = [1,"2",true,new Date(),[1,2,3]];    //也是定义数组,
          console.log(myarr2.length);     // 5   数组常用的属性,就这一个
          
          
          //数组常用的方法:
           //console.log(myarr2.join("_"));  将内容用‘-’拼成字符串

          //1_2_true_Thu Mar 31 2022 16:16:13 GMT+0800 (中国标准时间)_1,2,3
          
          //sort()排序
    /*     var myarr3 = [4,1,7,6,9];
           myarr3.sort(function(a,b){    //需要传入排序规则,降序排列
               return b-a;
           }) */
    
    /*   
           myarr3.push(2);      尾部添加元素
           myarr3.unshift(3)    头部添加元素
           
           myarr3.pop();        尾部删除元素
           myarr3.shift();      头部删除元素   */
           
           
          //替换元素  splice (索引 ,几个,...(替换成xxx)) 第三个参数为可变参数
          
          var myarr3 = [4,1,7,6,9];
          myarr3.splice(1,2,"a","b");   //第1个索引开始,替换两个,替换成ab
          console.log(myarr3);          //[4,a,b,6,9]
        </script>

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值