第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);

web-day2的更多相关文章

  1. 《从零开始学Swift》学习笔记(Day2)——使用Web网站编写Swift代码

    Swift 2.0学习笔记——使用Web网站编写Swift代码 原创文章,欢迎转载.转载请注明:关东升的博客 Swift程序不能在Windows其他平台编译和运行,有人提供了一个网站swiftstub ...

  2. [红日安全]Web安全Day2 - XSS跨站实战攻防

    本文由红日安全成员: Aixic 编写,如有不当,还望斧正. 大家好,我们是红日安全-Web安全攻防小组.此项目是关于Web安全的系列文章分享,还包含一个HTB靶场供大家练习,我们给这个项目起了一个名 ...

  3. Web大前端面试题-Day2

    1.伪类与伪元素的区别? 1) 定义区别 伪类 伪类用于选择DOM树之外的信息,或是不能用简单选择器进行表示的信息. 前者包含那些匹配指定状态的元素,比如:visited,:active:后者包含那些 ...

  4. 撩课-Web大前端每天5道面试题-Day2

    1.伪类与伪元素的区别? 1) 定义区别 伪类 伪类用于选择DOM树之外的信息,或是不能用简单选择器进行表示的信息. 前者包含那些匹配指定状态的元素,比如:visited,:active:后者包含那些 ...

  5. [译]36 Days of Web Testing(一)

    [前言]最近负责的一次迭代发布中,一个小需求涉及前端JS改动,在测试这个需求的过程中忽略了浏览器兼容性测试,导致了一个线上bug.恶补下web测试,<36Days of web testing& ...

  6. 黑盒测试实践--Day2 11.26

    黑盒测试实践--Day2 今天完成任务情况: 大家自主安装和学习Selenium软件 小尹给大家介绍学生信息管理系统的基本情况,有余力者搭建了相关环境 周末,休息 附录 小组基本情况介绍 人数:五人 ...

  7. web之HTTP协议

    1.web引用程序 web(world wide web)也叫万维网,是一种基于超文本和HTTP的.全球性的.动态交互的.跨平台的分布式图形信息系统.是建立在Internet上的一种网络服务,为浏览者 ...

  8. Day2 HTML基本标签元素

    Day2   HTML基本标签元素 HTML:  超文本标记语言(HyperText   Mark-up  Language ) 1.作用:写网页结构  2.HTML不区分大小写,建议小写   3.文 ...

  9. hibernate Day2

    Day21 实体类编写规则(1 ) 实体类中的属性是私有属性(2) 私有属性要生成get与set方法(3) 实体类中有属性作为唯一值(一般使用id值)(4) 实体类属性建议不要使用基本数据类型, 应当 ...

  10. Django文档阅读-Day2

    Django文档阅读 - Day2 Writing your first Django app, part 1 You can tell Django is installed and which v ...

随机推荐

  1. Linux内核哈希表分析与应用

        目录(?)[+]   Linux内核哈希表分析与应用 Author:tiger-johnTime:2012-12-20mail:jibo.tiger@gmail.comBlog:http:// ...

  2. 爬取掌阅app免费电子书数据

    主要介绍如何抓取app数据及抓包工具的使用,能看到这相信你已经有爬虫基础了 编不下去了,主要是我懒,直接开干吧! 一.使用环境和工具 windows + python3 + Jsonpath + Ch ...

  3. Scrapy-Redis分布式策略

    Scrapy-Redis分布式策略 原理图: 假设有四台电脑:Windows 10.Mac OS X.Ubuntu 16.04.CentOS 7.2,任意一台电脑都可以作为 Master端 或 Sla ...

  4. 使用hMailServer搭建邮件服务器

    本文没有什么高深的技术内容,只是使用hMailServer,介绍搭建邮件服务器的全过程,供参考. 一.安装邮件服务器组件 打开软件,点下一步 选择存储数据的数据库,这里有两种选择, 一种是使用嵌入型数 ...

  5. Web Api 2 认证与授权 2

    HTTP Message Handler 在 Web Api 2 认证与授权 中讲解了几种实现机制,本篇就详细讲解 Message Handler 的实现方式 关于 Message Handler 在 ...

  6. 2017/2/10springMVC中文乱码问题

    springMVC中文乱码问题 一:从jsp传到后台控制出现的乱码有以下两个方面: 1.当提交方式为get的时候(因为字符拦截器无法拦截get): 修改方法为: 再改工程里的tomcat的配置文件se ...

  7. redis2

    一.安装redis 1)     下载redis安装包 可去官网http://redis.io ,也可通过wget命令, wget http://download.redis.io/redis-sta ...

  8. Navicat for MySQL连接出错:1251

    平台:window10 x64+mysql-8.0.15-winx64+navicat_trial_11.1.20.0(PatchNavicat破解) 错误提示:1251-Client does no ...

  9. Hadoop3集群搭建之——hive添加自定义函数UDF

    上篇: Hadoop3集群搭建之——虚拟机安装 Hadoop3集群搭建之——安装hadoop,配置环境 Hadoop3集群搭建之——配置ntp服务 Hadoop3集群搭建之——hive安装 Hadoo ...

  10. ios label的一些设置

    一.根据文本长度设置label的宽高和字体大小 NSString *str = @"天将降大任于斯人也,必先苦其心志.天将降大任于斯人也,必先苦其心志.";      CGRect ...