今日目標 使用CSS完成網站首頁的優化 使用CSS完成網站註冊頁面的優化 使用JS完成簡單的數據校驗 使用JS完成圖片輪播效果 教學目標: - 瞭解CSS的概念 - 瞭解CSS的引入方式 - 瞭解CSS的基本用法和常用的選擇器 - 瞭解CSS的盒子模型,懸浮和定位 - 瞭解JS的概念 - 掌握JS的 ...
今日目標
使用CSS完成網站首頁的優化
使用CSS完成網站註冊頁面的優化
使用JS完成簡單的數據校驗
使用JS完成圖片輪播效果
教學目標:
- 瞭解CSS的概念
- 瞭解CSS的引入方式
- 瞭解CSS的基本用法和常用的選擇器
- 瞭解CSS的盒子模型,懸浮和定位
- 瞭解JS的概念
- 掌握JS的基本語法,數據類型,能夠使用JS完成簡單的頁面交互
去年的內容簡單回顧
什麼HTML : 超文本標記語言
p標簽: 段落標簽
br標簽: 簡單換行
h1-h6: 標題標簽
hr標簽: 水平分割線, 華麗的分割線
font標簽: color屬性改變顏色 , size
b標簽: 加粗
i標簽: 斜體
strong標簽: 帶語義的加粗
em標簽: 斜體標簽,帶語義
img標簽: 圖片標簽 顯示圖片
src: 指定圖片路徑(相對路徑)
width: 寬度
height: 高度
alt: 圖片載入失敗時的提示
相對路徑:
./ 代表當前路徑
../ 代表的是上一級路徑
../../ 代表的是上上一級路徑
ul標簽: 無序列表
ol標簽: 有序列表
li標簽: 列表項
a標簽: 超鏈接標簽:
target: 打開方式
href: 指定要跳轉的鏈接地址
table標簽: table > tr > td
tr標簽: 行
td標簽: 列
合併行: rowspan
合併列: colspan
網站註冊案例:
form 標簽: 表單標簽,主要是用來向伺服器提交數據
method: 提交方式 get post
action : 提交的路徑
input 標簽:
type:
password: 密碼框
text : 文本
submit: 提交
button: 普通的按鈕
reset: 重置按鈕
radio: 單選按鈕 設置name屬性讓它們是一組
checkbox: 覆選按鈕
email:
date:
tel:
frameset : 框架標簽
rows:
cols:
frame:
使用CSS完成網站首頁的優化
需求分析:
由於我們昨天使用表格佈局存在缺陷,那麼我們要來考慮使用DIV+CSS來對頁面進行優化
表格佈局的缺陷:
1. 嵌套層級太多, 一旦出現嵌套順序錯亂, 整個頁面達不到預期效果
2. 採用表格佈局,頁面不夠靈活, 動其中某一塊,整個表格佈局的結構全都要變
技術分析
HTML的塊標簽:
div標簽: 預設占一行,自動換行
span標簽: 內容顯示在同一行
CSS概述:
Cascading Style Sheets : 層疊樣式表
紅磚, 抹了一層水泥, 白灰
主要用作用:
用來美化我們的HTML頁面的
HTML 決定網頁的骨架 ,CSS 化妝
將頁面的HTML和美化進行分離
CSS的簡單語法:
在一個style標簽中,去編寫CSS內容,最好將style標簽寫在這個head標簽中
```html
<style>
選擇器{
屬性名稱:屬性的值;
屬性名稱2: 屬性的值2;
}
</style>
```
CSS選擇器: 幫助我們找到我們要修飾的標簽或者元素
元素選擇:
```html
元素的名稱{
屬性名稱:屬性的值;
屬性名稱:屬性的值;
}
```
ID選擇器:
```html
以#號開頭 ID在整個頁面中必須是唯一的s
#ID的名稱{
屬性名稱:屬性的值;
屬性名稱:屬性的值;
}
```
類選擇器:
```html
以 . 開頭
.類的名稱{
屬性名稱:屬性的值;
屬性名稱:屬性的值;
}
```
CSS的引入方式:
外部樣式: 通過link標簽引入一個外部的css文件
內部樣式: 直接在style標簽內編寫CSS代碼
行內樣式: 直接在標簽中添加一個style屬性, 編寫CSS樣式
CSS浮動 : 浮動的元素會脫離正常的文檔流,在正常的文檔流中不占空間
float屬性:
left
right
clear屬性: 清除浮動
both : 兩邊都不允許浮動
left: 左邊不允許浮動
right : 右邊不允許浮動
流式佈局
步驟分析:
1. 創一個最外層div
2. 第一部份: LOGO部分: 嵌套三個div
3. 第二部分: 導航欄部分 : 放置5個超鏈接
4. 第三部分: 輪播圖
5. 第四部分:
6. 第五部分: 直接放一張圖片
7. 第六部分: 抄第四部分的
8. 第七部分: 放置一張圖片
9. 第八部分: 放一堆超鏈接
代碼實現:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
.logo{
float: left;
width: 33%;
/*border-width: 1px;
border-style: solid;
border-color: red;*/
height: 60px;
line-height: 60px;
/* border: 1px solid red;*/
}
.amenu{
color: white;
text-decoration: none;
height: 50px;
line-height: 50px;
}
.product{
float: left; text-align: center; width: 16%; height: 240px;
}
</style>
</head>
<body>
<!--
1. 創一個最外層div
2. 第一部份: LOGO部分: 嵌套三個div
3. 第二部分: 導航欄部分 : 放置5個超鏈接
4. 第三部分: 輪播圖
5. 第四部分:
6. 第五部分: 直接放一張圖片
7. 第六部分: 抄第四部分的
8. 第七部分: 放置一張圖片
9. 第八部分: 放一堆超鏈接
-->
<div>
<!--2. 第一部份: LOGO部分: 嵌套三個div-->
<div>
<div class="logo">
<img src="../img/logo2.png"/>
</div>
<div class="logo">
<img src="../img/header.png"/>
</div>
<div class="logo">
<a href="#">登錄</a>
<a href="#">註冊</a>
<a href="#">購物車</a>
</div>
</div>
<!--清除浮動-->
<div style="clear: both;"></div>
<!--3. 第二部分: 導航欄部分 : 放置5個超鏈接-->
<div style=" height: 50px;">
<a href="#" class="amenu">首頁</a>
<a href="#" class="amenu">手機數位</a>
<a href="#" class="amenu">電腦辦公</a>
<a href="#" class="amenu">鞋靴箱包</a>
<a href="#" class="amenu">香煙酒水</a>
</div>
<!--4. 第三部分: 輪播圖-->
<div>
<img src="../img/1.jpg" width="100%"/>
</div>
<!--5. 第四部分:-->
<div>
<div><h2>最新商品<img src="../img/title2.jpg"/></h2></div>
<!--左側廣告圖-->
<div style="width: 15%; height: 480px; float: left;">
<img src="../products/hao/big01.jpg" width="100%" height="100%"/>
</div>
<!--
右側商品
-->
<div style="width: 84%; height: 480px;float: left;">
<div style="height: 240px; width: 50%; float: left;">
<img src="../products/hao/middle01.jpg" height="100%" width="100%" />
</div>
<div class="product">
<img src="../products/hao/small08.jpg" />
<p>高壓鍋</p>
<p style="color: red;">$998</p>
</div>
<div class="product">
<img src="../products/hao/small08.jpg" />
<p>高壓鍋</p>
<p style="color: red;">$998</p>
</div>
<div class="product">
<img src="../products/hao/small08.jpg" />
<p>高壓鍋</p>
<p style="color: red;">$998</p>
</div>
<div class="product">
<img src="../products/hao/small08.jpg" />
<p>高壓鍋</p>
<p style="color: red;">$998</p>
</div>
<div class="product">
<img src="../products/hao/small08.jpg" />
<p>高壓鍋</p>
<p style="color: red;">$998</p>
</div>
<div class="product">
<img src="../products/hao/small08.jpg" />
<p>高壓鍋</p>
<p style="color: red;">$998</p>
</div>
<div class="product">
<img src="../products/hao/small08.jpg" />
<p>高壓鍋</p>
<p style="color: red;">$998</p>
</div>
<div class="product">
<img src="../products/hao/small08.jpg" />
<p>高壓鍋</p>
<p style="color: red;">$998</p>
</div>
<div class="product">
<img src="../products/hao/small08.jpg" />
<p>高壓鍋</p>
<p style="color: red;">$998</p>
</div>
</div>
</div>
<!--6. 第五部分: 直接放一張圖片-->
<div>
<img src="../products/hao/ad.jpg" width="100%"/>
</div>
<!--7. 第六部分: 抄第四部分的-->
<div>
<div><h2>最新商品<img src="../img/title2.jpg"/></h2></div>
<!--左側廣告圖-->
<div style="width: 15%; height: 480px; float: left;">
<img src="../products/hao/big01.jpg" width="100%" height="100%"/>
</div>
<!--
右側商品
-->
<div style="width: 84%; height: 480px;float: left;">
<div style="height: 240px; width: 50%; float: left;">
<img src="../products/hao/middle01.jpg" height="100%" width="100%" />
</div>
<div class="product">
<img src="../products/hao/small08.jpg" />
<p>高壓鍋</p>
<p style="color: red;">$998</p>
</div>
<div class="product">
<img src="../products/hao/small08.jpg" />
<p>高壓鍋</p>
<p style="color: red;">$998</p>
</div>
<div class="product">
<img src="../products/hao/small08.jpg" />
<p>高壓鍋</p>
<p style="color: red;">$998</p>
</div>
<div class="product">
<img src="../products/hao/small08.jpg" />
<p>高壓鍋</p>
<p style="color: red;">$998</p>
</div>
<div class="product">
<img src="../products/hao/small08.jpg" />
<p>高壓鍋</p>
<p style="color: red;">$998</p>
</div>
<div class="product">
<img src="../products/hao/small08.jpg" />
<p>高壓鍋</p>
<p style="color: red;">$998</p>
</div>
<div class="product">
<img src="../products/hao/small08.jpg" />
<p>高壓鍋</p>
<p style="color: red;">$998</p>
</div>
<div class="product">
<img src="../products/hao/small08.jpg" />
<p>高壓鍋</p>
<p style="color: red;">$998</p>
</div>
<div class="product">
<img src="../products/hao/small08.jpg" />
<p>高壓鍋</p>
<p style="color: red;">$998</p>
</div>
</div>
</div>
<!--8. 第七部分: 放置一張圖片-->
<div>
<img src="../img/footer.jpg" width="100%"/>
</div>
<!--9. 第八部分: 放一堆超鏈接-->
<div style="text-align: center;">
<a href="#">關於我們</a>
<a href="#">聯繫我們</a>
<a href="#">招賢納士</a>
<a href="#">法律聲明</a>
<a href="#">友情鏈接</a>
<a href="#">支付方式</a>
<a href="#">配送方式</a>
<a href="#">服務聲明</a>
<a href="#">廣告聲明</a>
<br />
Copyright © 2005-2016 傳智商城 版權所有
</div>
</div>
</body>
</html>
```
擴展:
- CSS的優先順序
按照選擇器搜索精確度來編寫: 行內樣式 > ID選擇器 > 類選擇器 > 元素選擇器
就近原則: 哪個離得近,就選用哪個的樣式
CSS: 層疊樣式表
主要作用:
1. 美化頁面
2. 將頁面美化和HTML代碼進行分離,提高代碼的服用型
- 選擇器:
- 元素選擇器: 標簽的名稱{}
- 類選擇器: 以. 開頭 .類的名稱
- ID選擇器: 以#開頭 , #ID的名稱 (ID必須是頁面上面唯一)
- CSS浮動:
- float : left, right 不再占有正常文檔流中的空間 , 流式佈局
- clear : both left right
- CSS中的其它選擇器
- 選擇器分組: 選擇器1,選擇器2{ 屬性的名稱:屬性的值}
- 屬性選擇器:
```html
a[title]
a[titile='aaa']
a[href][title]
a[href][title='aaa']
```
- 後代選擇器: 爺爺選擇器 孫子選擇器 找出所有的後代
- 子元素選擇器: 父選擇器 > 兒子選擇器
- 偽類選擇器: 通常都是用在A標簽上
使用DIV+CSS完成註冊頁面的優化
需求分析
由於我們的註冊頁面也是用table佈局的,存在與首頁同樣的問題,所以我們需要使用div+css對我們的註冊頁面進行美化
總共是5部分內容
技術分析
CSS的盒子模型: 萬物皆盒子
內邊距:
padding-top:
padding-right:
padding-bottom:
padding-left:
```html
padding:10px; 上下左右都是10px
padding:10px 20px; 上下是10px 左右是20px
padding: 10px 20px 30px; 上 10px 右20px 下30px 左20px
padding: 10px 20px 30px 40px; 上右下左, 順時針的方向
```
外邊距:
margin-top:
margin-right:
margin-bottom:
margin-left:
CSS絕對定位:
position: absolute
top: 控制距離頂部的位置
left: 控制距離左邊的位置
步驟分析:
1. 總共是5部分
2. 第一部分是LOGO部分
3. 第二部分是導航菜單
4. 第三部分是註冊部分
5. 第四部分是FOOTER圖片
6. 第五部分是一堆超鏈接
代碼實現:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" type="text/css" href="../css/main.css"/>
</head>
<body>
<!--
1. 總共是5部分
2. 第一部分是LOGO部分
3. 第二部分是導航菜單
4. 第三部分是註冊部分
5. 第四部分是FOOTER圖片
6. 第五部分是一堆超鏈接
-->
<div>
<!--2. 第一部分是LOGO部分-->
<div>
<div class="logo">
<img src="../img/logo2.png" />
</div>
<div class="logo">
<img src="../img/header.png" />
</div>
<div class="logo">
<a href="#">登錄</a>
<a href="#">註冊</a>
<a href="#">購物車</a>
</div>
</div>
<!--清除浮動-->
<div style="clear: both;"></div>
<!--3. 第二部分是導航菜單-->
<div style=" height: 50px;">
<a href="#" class="amenu">首頁</a>
<a href="#" class="amenu">手機數位</a>
<a href="#" class="amenu">電腦辦公</a>
<a href="#" class="amenu">鞋靴箱包</a>
<a href="#" class="amenu">香煙酒水</a>
</div>
<!--4. 第三部分是註冊部分-->
<div style="background: url(../image/regist_bg.jpg);height: 500px;">
<div style="position:absolute;top:200px;left:350px;border: 5px solid darkgray;width: 50%;height: 50%;">
<table width="60%" align="center">
<tr>
<td colspan="2"><font color="blue" size="6">會員註冊</font>USER REGISTER</td>
</tr>
<tr>
<td>用戶名:</td>
<td><input type="text"/></td>
</tr>
<tr>
<td>密碼:</td>
<td><input type="password"/></td>
</tr>
<tr>
<td>確認密碼:</td>
<td><input type="password"/></td>
</tr>
<tr>
<td>email:</td>
<td><input type="email"/></td>
</tr>
<tr>
<td>姓名:</td>
<td><input type="text"/></td>
</tr>
<tr>
<td>性別:</td>
<td><input type="radio" name="sex"/> 男
<input type="radio" name="sex"/> 女
<input type="radio" name="sex"/> 妖
</td>
</tr>
<tr>
<td>出生日期:</td>
<td><input type="date"/></td>
</tr>
<tr>
<td>驗證碼:</td>
<td><input type="text"/></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="註冊"/></td>
</tr>
</table>
</div>
</div>
<!--5. 第四部分是FOOTER圖片-->
<div>
<img src="../img/footer.jpg" width="100%"/>
</div>
<!--9. 第四部分: 放一堆超鏈接-->
<div style="text-align: center;">
<a href="#">關於我們</a>
<a href="#">聯繫我們</a>
<a href="#">招賢納士</a>
<a href="#">法律聲明</a>
<a href="#">友情鏈接</a>
<a href="#">支付方式</a>
<a href="#">配送方式</a>
<a href="#">服務聲明</a>
<a href="#">廣告聲明</a>
<br />
Copyright © 2005-2016 傳智商城 版權所有
</div>
</div>
</body>
</html>
```
CSS部分的回顧:
CSS: 層疊樣式表.
CSS作用: 美化頁面,提高代碼的復用性
選擇器:
需要掌握的:
元素選擇器: 標簽的名稱
類選擇器: 以 . 開頭
ID選擇器: 以#開頭, #ID的名稱 ID必須是唯一的
優先順序: 按照選擇精確度: 行內樣式 > ID選擇器 > 類選擇器 > 元素選擇器
就近原則
擴展選擇器:
選擇器分組: 選擇器1,選擇器2 以逗號隔開
後代選擇器: 爺爺 孫子 中間以空格隔開
子元素選擇器: 爸爸 > 兒子
屬性選擇器: 選擇器[屬性的名稱='']
偽類選擇器: 超鏈接標簽上使用
浮動: float屬性 left right
清除浮動: clear: both left right
盒子模型: 順時針 : 上右下左
padding : 內邊距 ,控制的是盒子內容的距離
margin : 外邊距 控制盒子與盒子之間的距離
絕對定位:
position: absolute
top:
left:
使用JS完成簡單的數據校驗
需求分析
使用JS完成對註冊頁面的簡單數據校驗,不允許出現用戶名或密碼為空的情況
技術分析
JavaScript概述
什麼是javascript: JavaScript一種直譯式腳本語言,
什麼是腳本語言?
java源代碼 ----> 編譯成.class文件 -----> java虛擬機中才能執行
腳本語言: 源碼 -------- > 解釋執行
js由我們的瀏覽器來解釋執行
HTML: 決定了頁面的框架
CSS: 用來美化我們的頁面
JS: 提供用戶的交互的
JS的組成:
ECMAScript : 核心部分 ,定義js的語法規範
DOM: document Object Model 文檔對象模型 , 主要是用來管理頁面的
BOM : Browser Object Model 瀏覽器對象模型, 前進,後退,頁面刷新, 地址欄, 歷史記錄, 屏幕寬高
JS的語法:
變數弱類型: var i = true
區分大小寫
語句結束之後的分號 ,可以有,也可以沒有
寫在script標簽
JS的數據類型:
- 基本類型
- string
- number
- boolean
- undefine
- null
- 引用類型
- 對象, 內置對象
- 類型轉換
- js內部自動轉換
JS的運算