第2章WEB02-CSS&JS篇

今日任务

  • 使用CSS完成网站首页的美化
  • 使用CSS完成网站注册页面的美化
  • 使用JS完成简单的数据校验
  • 使用JS完成图片轮播效果

教学导航

教学目标

了解CSS的概念

了解CSS的引入方式

了解CSS的基本语法和常用的选择器

了解CSS的盒子模型,悬浮和定位.

了解JS的概念

掌握JS的基本语法,数据类型,能够使用JS完成简单的页面交互.

教学方法

案例驱动法

1.1      上次课的内容回顾:

HTML:

* HTML的概述:

    * HTML:Hyper Text Markup Language.

    * HTML就是由一组标签所组成的.

* HTML的字体标签:

    * <font>标签:

        * 属性:color,size,face

* HTML的排版标签:

    * h标签:标题标签.

    * p标签:段落标签.

    * b标签:加粗标签.

    * i标签:斜体标签.

    * u标签:下划线标签.

    * br标签:换行.

    * hr标签:水平线.

* HTML的图片标签:

    * img标签:

        * 属性:

            * src属性:图片的路径.

            * 相对路径:  ./ 代表当前目录   ../上一级目录   

            * width,height,alt.

* HTML的超链接标签:

    * a标签:

       * 属性:

            * href:链接的路径.

            * target:链接打开的方式. _self,_blank,_parent

* HTML的列表标签:

    * 无序列表:<ul>

     * 有序列表:<ol>

* HTML的表格标签:

     * table标签:

         * tr标签:表格的行.

         * td标签:表格的列.

* HTML的表单标签:(*****)

     * form标签:

         * action属性:表单提交的路径

         * method属性:表单的提交的方式.

             * GET和POST:

                 * GET:地址栏上会显示提交的数据的信息,大小限制.

                 * POST:地址栏不会显示提交的数据的信息,没有大小限制.

    * <input>

        * type=”text”:文本框

        * type=”password”:密码框.

        * type=”radio”:单选按钮.

        * type=”checkbox”:复选框.

        * type=”file”:文件上传.

        * type=”hidden”:隐藏字段.

        * type=”submit”:提交按钮.

        * type=”reset”:重置按钮.

        * type=”button”:普通按钮.

        * type=”image”:图片按钮.

   * <select>:下拉列表.

   * <textarea>:文本区

* HTML的框架标签:

   * <frameset>

   * <frame>

1.2      案例一:使用DIV+CSS方式重新布局网站的首页.

1.2.1    需求:

网站首页的设计:采用DIV+CSS的方式完成.

 

之前使用的是表格的布局!!!表格的布局有缺陷!!!

1.2.2    分析:

1.2.2.1  技术分析:

【HTML的块标签】

<div></div>     :默认一个div独占一行.

<span></span>   :默认在同一行.

【CSS的概述】

  • 什么是CSS:

 

* HTML相当于网站的骨架!CSS对骨架进行美化!

  • CSS在那些地方使用:

任何网站都会使用CSS去美化页面!!!

  • 如何使用CSS

知道CSS的语法.

【CSS的基本语法】

CSS的基本语法通常包含两个部分:一个是选择器,一个声明.

* 选择器{属性:属性值;属性:属性值...}

 

【CSS的引入的方式】

  • 行内样式:直接在HTML的元素上使用style属性设置CSS.

<h1 style="color:red;font-size:200px ;">标题</h1>

 

  • 页面内样式:在HTML的<head>标签中使用<style>标签设置CSS.

        <style>

            h1{

                color:blue;

                font-size: 40px;

            }

        </style>

 

  • 外部样式:单独定一个.css的文件.在HTML中引入该CSS文件. 

<link href="../../css/demo1.css" rel="stylesheet" type="text/css" />

 

【CSS的选择器】

  • 元素选择器:

div{

    border:1px solid blue;

    width:40px;

    height:45px;

}

  • ID选择器:

#d1{

    border:2px solid red;

}

  • 类选择器:

.divClass{

    border:2px solid yellow;

}

【CSS的浮动】

  • 使用float属性可以完成DIV的浮动.

 

float属性的取值:

 

  • 清除浮动效果:使用clear属性进行清除:

 

 

  • 案例:

<!DOCTYPE html>

<html>

    <head>

        <meta charset="UTF-8">

        <title></title>

        <style>

            .divClass{

                border:1px solid blue;

                width:200px;

                height:220px;

            }

           

            #d1{

                float:left;

            }

            #d2{

                float:left;

            }

            #d3{

                float:left;

            }

            .clear{

                clear:both;

            }

        </style>

    </head>

    <body>

        <div id="d1" class="divClass">DIV1</div>

        <div id="d2" class="divClass">DIV2</div>

        <div id="d3" class="divClass">DIV3</div>

        <div class="clear"></div>

        <div id="d4" class="divClass">DIV4</div>

    </body>

</html>

1.2.2.2  步骤分析:

【步骤一】创建一个首页的HTML文件

【步骤二】创建一个整体的DIV元素.

【步骤三】创建每个部分的DIV元素.

【步骤四】为每个部分填充属于自己的那块内容.

1.2.3    代码实现:

<!DOCTYPE html>

<html>

    <head>

        <meta charset="UTF-8">

        <title>首页</title>

        <style>

            #bodyDiv{

                border:1px solid blue;

                width:90%;

            }

           

            .logoDiv{

                border:1px solid blue;

                width:33%;

                float:left;

                height:50px;

            }

           

            .clear{

                clear:both;

            }

           

            #menuDiv{

                width:100%;

                height:50px;

                border:1px solid blue;

                background-color: black;

            }

           

            #imgDiv{

                width:100%;

                border:1px solid blue;

            }

           

            #menuDiv a{

                font-size: 20px;

                color: white;

            }

            .productClass{

                width:100%;

                border:1px solid blue;

            }

            .contentClass{

                width:100%;

                border:1px solid blue;

            }

            .contentClass font{

                font-size: 30px;

                color: black;

               

            }

        </style>

    </head>

    <body>

        <!-- 整体的DIV -->

        <div id="bodyDiv">

            <!-- logo的DIV -->

            <div>

                <div class="logoDiv">

                    <img src="../img/logo2.png" height="48">

                </div>

                <div class="logoDiv">

                    <img src="../img/header.png" height="48">

                </div>

                <div class="logoDiv">

                    <a href="">登录</a>

                    <a href="">注册</a>

                    <a href="">购物车</a>

                </div>

                <div class="clear"></div>

               

            </div> 

            <!-- Menu的DIV -->

            <div id="menuDiv">

                <a href="">首页</a>&nbsp;&nbsp;

                <a href="">电脑办公</a>&nbsp;&nbsp;

                <a href="">手机数码</a>&nbsp;&nbsp;

                <a href="">烟酒糖茶</a>&nbsp;&nbsp;

            </div> 

            <!-- 图片滚动的DIV -->

            <div id="imgDiv">

                <img src="../img/1.jpg" width="100%">

            </div> 

            <!-- 热门商品的DIV -->

            <div class="productClass">

                <!-- 文字部分的DIV -->

                <div class="contentClass">

                    <font>热门商品</font><img src="../img/title2.jpg">

                </div>

                <!-- 商品部分的DIV -->

                <div style="width:100%;border:1px solid blue;">

                    <div style="width:15%;height: 460px;border:1px solid blue;float:left;">

                        <img src="../img/big01.jpg" width="100%" height="100%">

                    </div>

                   

                    <div style="width:84%;height: 460px;border:1px solid blue;float:left;">

                        <div>

                            <div style="border:1px solid blue;width:48%;float:left;height:228px;">

                                <img src="../img/middle01.jpg" width="100%" height="100%">

                            </div>

                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">

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

                            </div>

                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">

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

                            </div>

                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">

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

                            </div>

                        </div>

                        <div>

                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">

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

                            </div>

                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">

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

                            </div>

                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">

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

                            </div>

                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">

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

                            </div>

                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">

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

                            </div>

                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">

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

                            </div>

                        </div>

                    </div>

                </div>

            </div> 

            <!-- 广告的DIV -->

            <div style="width:100%;border:1px solid blue;">

                 <img src="../img/ad.jpg" width="100%" height="80">

            </div> 

            <!-- 最新商品的DIV -->

            <div class="productClass">

                <!-- 文字部分的DIV -->

                <div class="contentClass">

                    <font>最新商品</font><img src="../img/title2.jpg">

                </div>

                <!-- 商品部分的DIV -->

                <div style="width:100%;border:1px solid blue;">

                    <div style="width:15%;height: 460px;border:1px solid blue;float:left;">

                        <img src="../img/big01.jpg" width="100%" height="100%">

                    </div>

                   

                    <div style="width:84%;height: 460px;border:1px solid blue;float:left;">

                        <div>

                            <div style="border:1px solid blue;width:48%;float:left;height:228px;">

                                <img src="../img/middle01.jpg" width="100%" height="100%">

                            </div>

                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">

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

                            </div>

                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">

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

                            </div>

                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">

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

                            </div>

                        </div>

                        <div>

                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">

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

                            </div>

                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">

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

                            </div>

                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">

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

                            </div>

                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">

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

                            </div>

                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">

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

                            </div>

                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">

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

                            </div>

                        </div>

                    </div>

                </div>

            </div> 

            <!-- 页脚的DIV -->

            <div  style="width:100%;border:1px solid blue;">

                <img src="../img/footer.jpg" width="100%">

            </div> 

            <!-- 友情链接及版权的DIV -->

            <div style="width:100%;border:1px solid blue;">

                <center>

                   

 

    关于我们 联系我们 招贤纳士 法律声明 友情链接 支付方式 配送方式 服务声明 广告声明 <br/>

 

Copyright © 2005-2016 传智商城 版权所有

                </center>

            </div> 

        </div>

    </body>

</html>

1.2.4    总结:

【CSS的其他选择器】

  • 属性选择器:

        <style>

            input[type="text"]{

                background-color: red;

            }

        </style>

 

  • 后代选择器:

div span 查找的是所有div中的所有的span元素.

h1 strong{

   color:red;

}

        <h1>

            This is <strong>very</strong> <strong>very</strong> important.

        </h1>

       

        <h1>This is

            <strong>very</strong>

            <em>really

                <strong>very</strong>

            </em>

                important.

        </h1>

  • 子元素选择器:

div > span找这个div中的第一层级的span元素.

h1 > strong{

   color:red;

}

        <h1>

            This is <strong>very</strong> <strong>very</strong> important.

        </h1>

       

        <h1>This is

            <strong>very</strong>

            <em>really

                <strong>very</strong>

            </em>

                important.

        </h1>

  • 并列选择器:

选择器,选择器{

}

【CSS的样式】

  • 背景

 

  • 文本

 

  • 字体

 

  • 列表

 

1.3      案例二:使用DIV+CSS布局注册页面:

1.3.1    需求:

使用DIV+CSS的方式完成注册页面的布局:

 

1.3.2    分析:

1.3.2.1  技术分析:

【CSS中的盒子模型】

 

  • 内边距:padding.

 

 

  • 边框:border

 

  • 外边距:margin

 

【CSS中的定位】

position属性设置定位:

* relative:相对定位

* absolute:绝对定位

使用另外两个属性:left,top

 

1.3.2.2  步骤分析:

【步骤一】创建一个html页面

【步骤二】创建一个整体的DIV

【步骤三】在整体DIV中创建5个DIV.

【步骤四】为每个DIV添加所属的内容.

1.3.3    代码实现:

<!DOCTYPE html>

<html>

    <head>

        <meta charset="UTF-8">

        <title>注册页面</title>

        <style>

            div{

                border:1px solid blue;

            }

           

            .bodyDiv{

                width:90%;

            }

           

            .bodyDiv > div{

                width:100%;

            }

           

            .logoDiv{

                width:33%;

                height:50px;

                float:left;

            }

           

            .clear{

                clear:both;

            }

           

            ul li{

                display:inline;

            }

        </style>

    </head>

    <body>

        <!--整体DIV-->

        <div class="bodyDiv">

            <div>

                <div class="logoDiv">

                    <img src="../img/logo2.png" height="50"/>

                </div>

                <div class="logoDiv">

                    <img src="../img/header.png" height="50"/>

                </div>

                <div class="logoDiv" style="margin-top:0px;padding-top:10px;height:40px;">

                    <a href="">登录</a>

                    <a href="">注册</a>

                    <a href="">购物车</a>

                </div>

                <div class="clear"></div>

            </div>

            <div style="height:50px;background-color: black;color:white;font-size: 20px;">

                <ul >

                    <li>首页</li>

                    <li>首页</li>

                    <li>首页</li>

                    <li>首页</li>

                </ul>

            </div>

            <div style="height:500px;background-image: url(../img/regist_bg.jpg);">

                <div style="border:5px solid gray;background-color:white;position:absolute;left:350px;top:160px;width:600px;">

                    <form>

                    <table border="0" width="100%" cellspacing="15">

                        <tr>

                            <td>用户名</td>

                            <td><input type="text" name="username"></td>

                        </tr>

                        <tr>

                            <td>密码</td>

                            <td><input type="password" name="password"></td>

                        </tr>

                        <tr>

                            <td>确认密码</td>

                            <td><input type="password" name="repassword"></td>

                        </tr>

                        <tr>

                            <td>性别</td>

                            <td><input type="radio" name="sex" value="男">男<input type="radio" name="sex" value="女">女</td>

                        </tr>

                        <tr>

                            <td>籍贯</td>

                            <td>

                                <select name="province">

                                    <option>-请选择-</option>

                                </select>

                                <select name="city">

                                    <option>-请选择-</option>

                                </select>

                            </td>

                        </tr>

                        <tr>

                            <td>爱好</td>

                            <td>

                                <input type="checkbox" name="hobby" value="篮球" />篮球

                                <input type="checkbox" name="hobby" value="足球" />足球

                                <input type="checkbox" name="hobby" value="排球" />排球

                                <input type="checkbox" name="hobby" value="羽毛球" />羽毛球

                            </td>

                        </tr>

                        <tr>

                            <td>邮箱</td>

                            <td><input type="text" name="email"></td>

                        </tr>

                        <tr>

                            <td colspan="2"><input type="submit" value="注册"></td>

                        </tr>

                    </table>

                    </form>

                </div>

            </div>

            <div>

                <img src="../img/footer.jpg" width="100%"/>

            </div>

            <div>

                <center>

                   

 

    关于我们 联系我们 招贤纳士 法律声明 友情链接 支付方式 配送方式 服务声明 广告声明 <br/>

 

Copyright © 2005-2016 传智商城 版权所有

                </center>

            </div>

        </div>

    </body>

</html>

1.3.4    总结:

1.3.4.1  超链接的伪类

 

1.4      案例三:完成对注册页面的数据的简单校验.

1.4.1    需求:

对注册页面的数据进行非空的简单校验!!!如果有某个值没有输入,点击提交,弹出一个对话框进行提示!!

1.4.2    分析:

1.4.2.1  技术分析:

【JS的概述】

  • 什么是JavaScript:

运行在浏览器端的脚本语言!

 

JavaScript的历史:

  • JavaScript的组成:

 

ECMAScript:JavaScript的基本的语法

BOM:Browser Object Model   :

DOM:Document Object Model  :    文档工程模型

  • 其他的脚本语言:

JavaScript,ActionScript,Flex

  • JS的用途:

使页面更加丰富,使页面动起来!!!

【JS的基本语法】

  • 区分大小写:

 

  • 弱变量类型语言:(与Java不同)

* Java

   * int i = 3;

   * String s = “abc”;

* JavaScript:

   * var i = 3;

   * var s = “abc”;

  • 分号可有可无:

 

  • 变量命名:

 

【JS的数据类型】

JS将数据类型分成两类:

* 原始类型:

    * undefined:未定义类型

    * boolean:布尔类型

    * number:数字类型

    * string:字符或字符串.

    * null:空

 

* 引用类型:

    * 对象类型.对象类型默认值是null.

【JS的运算符】

JS中的运算符与Java中基本一致!

JS中有一个 === 全等于.全等于是类型和值都一致的情况下才为true.

【JS的语句】

JS中的语句与Java的语句一致!

【JS的通常开发的步骤】

JS通常都由一个事件触发.

触发一个函数,定义一个函数.

获得操作对象的控制权.

修改要操作的对象的属性或值.

 

定义函数:

* function 函数名称(){

// 函数体

}

 

* window.onload = function(){

 

}

常用事件:onclick,ondblclick,onmouseover,onmouseout,onload...

【JS的引入方式】

通常两种方式:

一种:页面内直接编写JS代码,JS代码需要使用<script></script>.

二种:将JS的代码编写到一个.js的文件中,在HTML中引入该JS代码即可.

 

1.4.3    代码实现:

        <script>

           

            // alert("Hello!");

           

            function checkForm(){

                // 获得文本框的值:

                var username = document.getElementById("username").value;

                // var val = username.value;

                // alert(username);

                if(username == ""){

                    alert("用户名不能为空!");

                    return false;

                }

               

                // 校验密码:

                var password = document.getElementById("password").value;

                if(password == ""){

                    alert("密码不能为空");

                    return false;

                }

               

                // 校验确认密码:

                var repassword = document.getElementById("repassword").value;

                if(repassword != password){

                    alert("两次密码输入不一致!");

                    return false;

                }

               

                // 校验邮箱:

                var email = document.getElementById("email").value;

                // JS校验正则表达式就有两个方法:String对象中的match方法,一个是正则对象中的test方法.

                // str.match("正则表达式");  正则.test("字符串");

                if(!/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/.test(email)){

                    alert("邮箱格式不正确!");

                    return false;

                }

            }

        </script>

1.4.4    总结:

将JS的代码定义成一个文件引入:

<script src="../js/check.js"></script>

 

获得页面中的元素:

* document.getElementById(“”);

 

正则的匹配:

JS中有两种匹配正则的方式:

* 使用String对象中的match方法.

* 使用正则对象中的test方法.

1.5      案例四:使用JS完成图片滚动的效果:

1.5.1    需求:

 

 

使用JS完成该效果:

1.5.2    分析:

1.5.2.1  技术分析:

【HTML的window对象】

* setInterval();    :每隔多少毫秒执行某个表达式.

    * setInterval(“change()”,5000);

 

* setTimeout();     :隔多少毫秒执行一个该表达式.

    * setTimeout(“change()”,5000);