[2] CSS&javascript(基本語法及使用)
一、 CSS概述
1、CSS是什麼?
* CSS (CascadingStyle Sheets)指層疊樣式表
2、CSS有什麼作用?
*CSS就是用來修飾HTML
3、CSS程式碼規範
*CSS程式碼一般寫在<style>標籤
*<style>一般放在<head>標籤
*<styletype=”text/css”>CSS程式碼<style>
選擇器名稱 { 屬性名:屬性值;屬性名:屬性值;…….}
屬性與屬性之間用 分號 隔開
屬性與屬性值直接按用 冒號 連線
如果一個屬性有多個值的話,那麼多個值用 空格 隔開。例如: border:5px solidred;
註釋:/* 註釋內容*/
快捷鍵:
Alt+ / 提示
Crtl+shift+/ 新增多行註釋
二、CSS選擇器(重點)
*CSS選擇器:指定了CSS樣式作用於哪個HTML標籤上
1、基本選擇器
HTML標籤選擇器(優先順序最低)
*就是把HTML標籤名作為選擇器名稱
*格式: 標籤名 {}
類選擇器(使用最多)
*樣式格式: .class名{}
*標籤格式: <p class=”class名”></p>
*能設定不同標籤的相同樣式
Id選擇器(優先順序最高)
*樣式格式: #id名{}
*標籤格式:<p id=”id名”></p>
*有針對性地設定樣式
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>demo1.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> <style type="text/css"> /* 註釋內容*/ font { /* HTML標籤選擇器 */ font-size:20px; color:red; } p { font-size:20px; color:red; } .haha{ /* 類選擇器 適用於 不同標籤的相同樣式的設定*/ color:blue; } #hehe{ /*Id選擇器*/ color:pink; } </style> </head> <body> <p class="haha">今天天氣好晴朗,</p><font>就是風大</font> <font class="haha">就是風大</font> <font>就是風大</font> <font>就是風大</font> <font>就是風大</font> <font id="hehe">就是風大</font> </body> </html>
2、擴充套件選擇器
關係選擇器(基本選擇器的組合方式)
*兩個或者多個選擇器間存在關係
*格式:選擇器1 選擇器2 {}
*適用於標籤巢狀
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>demo1.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
<style type="text/css">
/* 註釋內容*/
/*關係選擇器*/
p .haha{
color:blue;
}
</style>
</head>
<body>
<p>今天天氣<font class="haha">好晴朗,</font></p>
<font class="haha">你好</font>
</body>
</html>
組合選擇器(基本選擇器的組合方式)
*格式:選擇器1,選擇器2{}
*適用於多個不同標籤設定相同樣式
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>demo1.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
<style type="text/css">
/* 註釋內容*/
/*
組合選擇器
選擇器1,選擇器2{
}
*/
font,p{
color:red;
}
</style>
</head>
<body>
<p>好晴朗</p>
<font>風真大</font>
</body>
</html>
偽元素選擇器
*HTML預定義的選擇器
*格式:標籤名:選擇器{}
*選擇器名稱為 HTML標籤的狀態。例如:a:link{}表示連結標籤在未訪問過 時的樣式。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>demo1.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
<style type="text/css">
a:LINK {
color:yellow;
}
a:VISITED {
color:pink;
}
a:FOCUS {
color:black;
}
input:FOCUS{
background-color: black;
}
</style>
</head>
<body>
<a href="#">當前頁</a>
<input type="text"/>
</body>
</html>
三、HTML與CSS的結合方式(瞭解)
*CSS必須結合HTML來用。
*4種使用方式:
A、style屬性方式(內聯樣式)
*適合區域性修改
*<fontstyle="font-size:150px;color: red;">今天天氣好晴朗</font>
B、style標籤方式:(內嵌樣式)
*<style></style> 存在於head標籤之中的
*例如:<styletype="text/css">
font {
font-size:150px;color:red;
}
</style>
*頁面的多個標籤統一設定。
C、匯入方式(外部樣式中使用較少)
*格式:@import url("CSS檔案路徑");
*存在於<style>標籤中
*樣式可以進行合併
D、連結方式(外部樣式最常用的方式)
*格式:<link rel="stylesheet"type="text/css" href="CSS檔案路徑"/>
*存在於<head>標籤中
外部樣式好處:
提升了程式碼的複用性,更加易於維護,從而極大提高工作效率
樣式優先順序:
內聯樣式》》內嵌樣式》》外部樣式(就近原則)
連結方式和匯入方式區別:
1、連結方式引用的CSS會被同時載入。而匯入方式引入的CSS在頁面全部載入完以後才會載入,在網速較慢時會出現網頁沒有樣式的情況。(匯入方式硬傷)
2、連結方式支援JavaScript修改樣式,而匯入方式不支援(匯入方式硬傷)
3、連結方式可以引入樣式也可以做其他事情。而匯入方式只能引CSS
4、連結方式匯入的CSS任何瀏覽器都OK,而匯入方式要求瀏覽器版本必須在IE5以上
建議使用連結方式
四、CSS佈局(瞭解)
盒子模型(瞭解會用)
在進行佈局前需要把資料封裝到一塊一塊的區域內,這個區域的專業術語叫盒子。
邊框(border)分為上 下 左 右。用於設定盒子邊框
內邊距(padding)分為上 下 左 右。用於設定元素在盒子內的位置。
外邊距(margin)分為上 下 左 右。用於設定盒子的位置
漂浮屬性(簡單瞭解)
float
定位屬性(簡單瞭解)
position
----------------
一、 JavaScript概述
1、 JavaScript是什麼,有什麼作用?(瞭解)
*JavaScript是因特網上最流行的指令碼語言。
*指令碼語言不能單獨使用,必須嵌入到其他語言中組合使用
*JavaScript不能單獨使用,必須和其他語言(HTML)結合使用
*瀏覽器解釋執行
*作用是:可以控制前端頁面的邏輯操作
例如:JS可以控制CSS的樣式;(一般)
JS可以對錶單項進行校驗(重點)
JS可以對HTML元素進行動態控制(使用較多)
*特點:
安全性(沒有訪問系統檔案許可權,無法用來做木馬病毒)
跨平臺性(瀏覽器有JS的解析器,只要有瀏覽器就能執行JS程式碼,和平臺無關)
2、 JavaScript和Java的關係(瞭解)
ECMAScript
*JavaScript和Java一點關係都沒有(雷鋒和雷峰塔)
*JavaScript和Java的區別:
>JavaScript程式碼可以直接在瀏覽器執行,而Java必須先經過編譯才能執行
>JavaScript是弱型別語言,Java是強型別語言
強型別語言:要求變數的使用嚴格符合定義。(例如:變數聲明後都有一個固定的區域,int區域大小是32位)。程式設計時痛苦,調BUG時舒服
弱型別語言:不要求變數的使用嚴格符合定義。(例如:變數聲明後沒有一個固定的區域,任何型別的值都能放在該區域)。程式設計時舒服,調BUG時痛苦
<html> <head> <script> var sum = 0; for(var i = 1; i <= 100; i++) { sum += i; } alert(sum); </script> </head> <body> </body> </html> |
二、JavaScript語法及使用(重點)
註釋
*單行註釋
//
Myeclipse快捷鍵 ctrl+shift+c
*多行註釋
/**/
Myeclipse快捷鍵 ctrl+shift+/
變數
*標示記憶體中的一塊空間,用於儲存資料,資料是可變的
*格式:
var 變數名 = 變數值;
JavaScript中的變數宣告都用var關鍵字
變數值的資料型別(原始資料型別和引用資料型別)
>原始資料型別:
string 字串型別
“”和’’都表示字串
boolean 布林型別
true,false
number 數字型別
整數和小數
null 空,表示引用型別的物件不存在
undefined 未定義
變數宣告未賦值時使用/物件的屬性未賦值時使用
注:變數就像一個盤子,什麼都能盛裝。
變數的型別可以用typeof()來判斷。例如:var str=”aa”;alert(typeof(str));//string
變數的大小寫是敏感的,yy和YY不是一個變數。
為什麼 typeof 運算子對於 null值會返回 "Object"。這實際上是 JavaScript最初實現中的一個錯誤,然後被ECMAScript 沿用了。現在,null 被認為是物件的佔位符,從而解釋了這一矛盾,但從技術上來說,它仍然是原始值。
>引用資料型別(瞭解)
即物件
例如:var obj = new Object();
常用物件:
String,Array,Date,Math,RegExp
注:instanceof可以用來判斷物件是否屬於某型別。返回true和false .例如:
Varstr = new String();
Alert(strinstanceof String);//true
*兩種變數:
>全域性變數
就是在<script>標籤中定義的變數,在整個頁面都有效
>區域性變數
就是在函式體內定義的變數
練習:如下程式碼顯示X值是多少? var x = 4; function show(x){ x = 8; } show(x); alert("x = "+x); |
A.8 B.4 C.undefined |
函式(方法)
*用於程式碼封裝,提高複用性
*格式 function 函式名(引數列表){
函式體;
return;
}
*函式定義,關鍵字 function
*定義引數列表時,不必使用var關鍵字,否則報錯
*如果沒有需要返回的引數,return可以不寫
*函式需要呼叫才能執行,和Java一樣。
*JavaScript不存在過載形式:
>每個JavaScript中,都存在一個數組arguments,用於儲存引數列表
思考:如下呼叫方法會列印輸出什麼效果? function getSum(){ return 100; } var sum = getSum; alert(sum); |
A. 100 B. undefined C. function getSum(){return 100;} |
*如果呼叫方法時忘記加(),那麼會把函式物件的引用傳給變數
*兩種擴充套件函式:
>動態函式(瞭解會用)
通過JS的內建物件Function來動態建立
格式: new Function(引數一,引數二);
引數一是函式形參列表
引數二是函式體
>匿名函式(較常用)
沒有名稱的函式,函式的簡化形式
格式:var str = function(引數列表){
函式體;
return;
};
運算子
算術運算子(常用)
+號除了運算外,可以作為連線符
-號除了運算外,可以作為轉換符
alert(true+ 1); // 2
比較運算子(常用)
== 比較值
=== 又比較值和型別語句(流程控制語句)
流程控制語句
對程式執行流程控制的表示式
n 判斷語句
IF
if(8== num){
賦值的問題,需要注意。
}else{
}
0、-0、null、""、false、undefined或 NaN,為false
否則為true
和Java中一樣。
switch(n)
{
case 1:
執行程式碼塊 1
break
case 2:
執行程式碼塊 2
break
default:
如果n即不是1也不是2,則執行此程式碼
}
練習:以下程式碼輸出結果為: var a=15; if(a=15){ alert(15); }else{ alert(“else”); } |
A. 15 B. Else |
n 迴圈語句
For迴圈(較常用)
for(vari=0;i<=8;i++){
//迴圈體
}
增強FOR迴圈(不靈活,使用少,但開發中會有使用)(瞭解會用,工作中自己進行嘗試即可)
for(變數 in 物件){
//迴圈體
}
*裡面的變數代表下標
*使用 in關鍵字
*遍歷陣列(或物件),裡面要用陣列[下標]
*例如:
Vars= new Array();
s[0]=1;
s[1]=2;
for(xin s){
alert(s[x]);
}
while(表示式){
//迴圈體
}
物件
String物件(瞭解會用)
*var str = "abc";
*var str = new String("abc");
*屬性:length 字串的長度
*方法
*和java中String物件類似的方法(基本相同,需要練習)
*charAt(index) 返回指定位置的字元(常用)
*indexOf(searchvalue,fromindex) 檢索字串
*lastIndexOf() 從後向前的
*replace() 替換字串(較常用)
*substring(start,stop) 從哪開始,到哪結合(包含開始不包含結束)
*substr(start,length) 從哪開始,擷取長度
Array物件(重要)
*js的陣列
*var arr = [1,2,3];
*vararr = new Array();陣列長度預設為0
*var arr = new Array(4); 陣列長度是4
*var arr = new Array(1,2); 陣列元素是1,2
*陣列的長度
*length
*陣列的長度是可變的
*陣列元素可以是任意型別(注意)
*方法
*concat() 連結陣列或者元素都可以(較少)
*join(separator) 轉化成字串
*push() 向末尾新增一個元素,返回新的長度
Date物件(比較常用)
*var date = new Date(); 當前的時間
PS:開發工作中,時間日期的取得不是從前端JS取得,而是從伺服器端取得
*toLocaleString() 根據本地的日期格式轉化成字串(瞭解)
*getDate() 返回一個月中的某一天(瞭解)
*getMonth() 獲取月份(0-11)(瞭解)
*getFullYear() 獲取年(瞭解)
*getTime() 獲取毫秒數(比較重要)
*setTime() 通過毫秒數設定日期(比較重要)
同時也可以通過構造器設定 new Date(毫秒數);
*Date.parse(datestring) 解析字串,返回毫秒數(重要的)
*2015-4-29 解析不了
*2015/4/29 是可以解析的
Math物件(瞭解)
round(x) 四捨五入
random()隨機生成0~1數字
RegExp物件(重要)
*正則物件 正確的規則
*var reg = new RegExp("表示式"); (開發中基本不用)
*var reg = /^表示式$/ 直接量(開發中常用)
直接量中存在邊界,即^代表開始,$代表結束
*test(string) (經常使用)符合規則返回true,不符合返回false
例如:
if(reg.test("12345")){
//
}else{
//
}
練習:判斷字串是否為空 var msg=””; var reg = /^\s*$/; alert(reg.test(msg)); |
全域性函式
Global
瀏覽器記憶體中游離的函式,直接拿過來用。
eval() 可以解析字串,執行裡面的javascript的程式碼(學習JSON)(最常用)
isNaN() 是否 不是 數字 (常用)
encodeURI() 編碼
decodeURI() 解碼
(不用看)escape不編碼字元有69個:*,+,-,.,/,@,_,0-9,a-z,A-Z
(瞭解)encodeURI不編碼字元有82個:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
(瞭解)encodeURIComponent不編碼字元有71個:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z
三、JavaScript和HTML的結合方式(瞭解)
l 兩種使用方式
>內部使用
*<scripttype=”text/javascript”>JavaScript的程式碼</script>
>外部引用
*<scripttype=”text/javascript” src=”javascript檔案路徑”></script>
*外部引用時script標籤內不能有script程式碼,即使寫了也不會執行
注意:<script>標籤寫在任意地方都可以,但是要注意HTML和JAVASCRIPT的載入順序
<bodyonload=””> 在網頁載入完畢後 做什麼事
四、JavaScript的組成(瞭解)
JavaScript的組成
*ECMAScript (核心)
*DOM 文件物件型別
*BOM 瀏覽器物件型別