陳擎文教學網:前端網頁程式:html5+CSS+javascrip

網頁三大元素:HTML、CSS、JavaScript


比較圖:各種程式語言最近10年的興衰趨勢:python,javascript,java,c#,php,c++

資源
  上課程式碼即時貼網站 線上黑板( Online blackboard) Goole 輸入法(Input:zip) 考試題目(Exam)  
  資源1:免費的線上網頁編輯軟體vscode 微軟的網頁版VSCode VS Code安裝版    
  資源2:英文打字練習 英打測試速度 趣味英文打字練習(國內) 國外的英打練習網站1 國外的英打練習網站2
  資源3:免費的線上網頁空間申請 Byethost網頁空間申請網址 登入Byethost的cpanel網址    
  資源4:免費的各種程式教學補習班 w3c_school(英文,建議) w3c_school(中文,範例少)    
  資源5:普通的網頁模板下載(web template) 網頁模板 網頁模板 網頁模板 網頁模板
  資源6:bootstrap網頁模板下載(bootstrap web template) bootstrap網頁模板 bootstrap網頁模板 bootstrap網頁模板 bootstrap網頁模板
  資源6:bootstrap網頁模板下載(bootstrap web template) bootstrap 7網頁模板
  資源7:RWD響應網頁模板下載(RWD web template) RWD網頁模板 w3cschool RWD網頁模板 RWD網頁模板 RWD網頁模板
  資源8:如何下載整個網站資料、圖片(砍站軟體) HTTrack官網HTTrack(雲端)) HTTrack教學(砍站軟體) 20個網頁抓取工具快速抓取網站 WinHTTrack
  Goole 輸入法(Input software) Goole輸入法(Input:exe) Goole 輸入法(Input:zip) online goole input(中文) online goole input(英文)
  javascript教學網站 w3c學校-javascript(中文版) w3c學校-javascript(英文版)    
  jQuery教學網站 w3c學校-jQuery(中文版) w3c學校-jQuery(英文版)    
  HTML 5 教學網站 w3c學校-HTML 5 (中文版) w3c學校-HTML 5 (英文版)    
  CSS教學網站 w3c學校-CSS 3(中文版) w3c學校-CSS(英文版)    
  html,CSS教學網站 w3c學校-html,xhtml,htm5,CSS,cSS3(中文版)      
  HTML DOM 教學網站 w3c學校-HTML DOM(中文版)    

作業(homework)
網站空間 登入byethost的Cpanel 註冊byethost
作業1 作業1題目 成果網站示範
範例1-1-html-超連結 範例1-2-html-顯示圖片 範例1-3-javascript顯示彈出訊息alert 範例1-4-複製俄羅斯方塊的javascript
範例1-5-javascript-alert
作業2 作業2題目 成果網站示範
範例2-1-html-表格 範例2-2-css-文字顏色color,字體font-size,文字對齊text-align 範例2-3-javascript顯示文字 範例2-4-javascript定點顯示文字
作業3 作業3題目 成果網站示範
範例3-2-css-style-class 範例3-3-滑鼠滑過變換圖片 範例3-4-javascript直接設定style css的padding, margin
作業4 作業4題目 成果網站示範
範例4-1-清單-ul-li 範例4-2-第3種css-link外部檔案 範例4-3-js-數字相加 範例4-3-js-比較大小
作業5 作業5題目 成果網站示範
範例5-1-if..else... + raidobutton:購物車 範例5-2-input-color設定背景顏色 範例5-3-帳號密碼,日期 範例5-4-下拉選單-select-option
作業6 作業6題目 成果網站示範
模板王 Bootstrap 3官網 Bootstrap 5官網 v5按鈕
v3文字對齊斜體粗體 v3響應圖片 v3表格 v3按鈕式下拉選單
作業7 作業7題目 成果網站示範
模板王網頁 Bootstrap 4官網 Bootstrap4如何設定空間排版 java_script:亂數函數
撲克牌發牌比大小遊戲(1) 撲克牌發牌比大小遊戲(2) Bootstrap 4如何調整行間距離:mt-1 Bootstrap 4折疊元件
作業8 作業8題目 成果網站示範
架站軟體1:xwampp官網下載 架站軟體2:wamp官網下載 免費的域名申請:freenom 到freenom官網
付費的域名申請:GoDaddy(全世界最大DS商) GoDaddy官網 discuz論壇3.4x版(老師主機下載) 下載響應式網頁模板網站(Bootstrap 4)
作業9 作業9題目 成果網站示範
Bootstrap 5官網:初學者範本 第1題的html網頁語法 第1題的php語法 第2題的html網頁語法
第2題的php網頁語法 第3題的php網頁語法 下載資料庫(ch09.sql) 複製程式碼:測試是否連線成功(w3schools)
遠端mySQL主機連線資料 複製程式碼:顯示全部資料表 複製程式碼:查詢書名 複製程式碼:關鍵字查詢書名

Chp1 : 套用已經寫好的javascript程式
  下載講義 下載講義      
  下載網頁模板 網頁模板 免費圖形下載icon for free    
  javascirpt特效網站 首頁製作百寶箱 javascirpt特效    
  成果範例網站 成果範例      
  js遊戲 俄羅斯方塊teris(javascirt+canvas) 俄羅斯方塊teris(js+canvas程式碼) 俄羅斯方塊teris(javascirt) 俄羅斯方塊teris(javascirt程式碼)
  下載物件 雪花飄落網頁 貓走路網頁    
  下載講義 chp1手機設計簡介      
  下載講義 chp1講義      
           
Chp 2: 基本輸出document.write,Alert (提示) 對話盒,Confirm 確認對話盒,Prompt 輸入對話盒
  編輯javascript的幾種方法:        
  方法1: 使用dreamweaver 但無法自動顯示待選程式碼     
  方法2: 使用Visual Studio .NET      
  方法3: 使用 PSPad開發工具 免費版的javascript開發工具     
  練習範例 documentWrite01 documentWrite02 documentWrite03 documentWrite04
    documentWrite05 alert01 prompt01 comfirm01
  關鍵程式碼 function()      
           
Chp 3: 表單常用工具項:textBox文字方塊,label文字標籤,按鈕
  練習範例 textBox01 textBox02    
  練習範例 label-css-style label-css-class label-class-link label-bootstrap-class
    documentWrite05      
  常用簡易CSS的設定語法 設定標籤CSS屬性的style參數      
  所有CSS屬性列表,設定語法 所有document.getElementById('標籤id名稱').style一覽表:HTML DOM Style Object      
  按鈕的超連結(1)

<input type="button" id="btn1" value="按鈕" onclick="javascript:location.href='https://tw.yahoo.com/'" />


  按鈕的超連結(2)

<input type="button" id="btn1" value="按鈕" onclick="gopage()" />

....................................................

<script type="text/javascript">
function gopage(){
location.href = "https://tw.yahoo.com";
}
</script>

           
Chp 4: 選擇結構,條件敘述: if-else 敘述,Switch 敘述,條件運算子 ()..?..:..,控制圖片<img>的屬性,計時器setTimeout(),倒數,貓走路動畫
  練習範例 if比較大小 if01    
    if02 iif01 switch01  
    滑鼠滑過變換圖片01 控制圖片移動02 控制圖片移動03  
    計時器setTimeout01 倒數setTimeout02
    計時器setInterval01 倒數setInterval02
    貓走路動畫01 貓走路動畫02
  下載圖片 貓圖片 icon圖片1    
  關鍵程式碼

如何將很多個表單元件緊密集結合在一起,而且自動排版
方法;加上2個div 標籤包圍者
<div data-role="fieldcontain">
<fieldset data-role="controlgroup">
...........
</div>
</div>
(如果在表單欄位的外面加入 <div data-role="fieldcontain"> </div>,表單會根據螢幕畫面做最適當的配置:寬螢幕的 label 會在 input 的左手邊,窄小的螢幕在 fieldcontain 之間會多一條分隔線)

  關鍵程式碼

如何將很多個表單元件緊密集結合在一起,而且自動排版
方法;加上1個div 標籤包圍者
<fieldset data-role="controlgroup">
...........
</div>

  關鍵程式碼

如何將很多個radio元件緊密集結合在一起,且水平排列
<fieldset data-role="controlgroup" data-type="horizontal">
...........radio選項按鈕
</div>

           
Chp 5: 重複結構迴圈
  練習範例 documentWrite20 documentWrite20Color documentWrite20Size  
    whileLoop01輸入密碼 whileLoop02輸入密碼 whileLoop03產生亂數  
           
Chp 6: 應用函數:日期時間,數學,字串
  日期時間函數 轉換成中文日期 距離聖誕節還有幾天 倒數計時器  
  數學函數 數學函數基本練習01 各種亂數函數練習02 撲克牌發牌比大小03 撲克牌發牌比大小04
  下載圖檔     撲克牌圖檔  
  文字字串函數 基本字串處理 01 字串的轉換與替換02    
  URL亂碼解碼 URL亂碼解碼01 URL亂碼解碼02    
           
Chp 7: 自訂函數function(),傳回數值function
  練習範例 傳回亂數function01 傳回數值function01 傳回數值function02  
           
Chp 8: 陣列,一維陣列,二維陣列
  陣列 隨機顯示每日一句01 陣列+下拉式選單,查詢產品價格(javascript指令) 陣列+下拉式選單,查詢產品價格(jQuery指令) 2維陣列,計算學生平均成績03
  下載圖檔 撲克牌圖檔      
  關鍵程式碼

建立陣列的三種方法:
方法1: text = ["apple","grape","carrot"];

方法2: var text = new Array("apple","grape","carrot");

方法3:可以一直增加陣列元素的方法
var text = new Array();
text[1] = "apple";
text[2] = "grape";

  關鍵程式碼

(4).迴圈讀取陣列:方法1
for(i=0;i<array.length;i++){
tex01.value += array[i] + "<br/>";
}

(5).迴圈讀取陣列:方法2
for(i in array){
tex01.value += array[i] + "<br/>";
}

  關鍵程式碼

(2).數學函數:Math.floor()無條件捨去法

Math.floor()將數字向下到最接近的整數:

(3).數學函數:Math.random()取亂數

的Math.random()返回0和1之間的隨機數:

  關鍵程式碼

(1).新增一個項目到select-option內,傳統javascript方法
for(i=0;i<array.length;i++) {
select01.options.add(new Option(array[i]));
}
注意:第1個options(小寫O,有s),第2個Option(大寫O,沒s)

(2)如何知道下拉式選單select是選到第幾個option,傳統javascript方法:
第幾個 = select001.selectedIndex

  關鍵程式碼

(1).新增一個項目到select-option內,jQuery指令方法

for(i=0;i<array.length;i++) {
$('#id01).append("<option>" + array[i] + "</option>");
}

(2)如何知道下拉式選單select是選到第幾個option,jQuery指令方法:
第幾個 = $('#select001').find(":selected").index()

  關鍵程式碼

(1).javascript的二維陣列,2種方法:
方法1:(較常用)
var stu = new Array();//一維陣列
stu[0] = ["john","tainan","boy"];
stu[1] = ["jolin","taipei","girl"];

方法2:
var stu = new Array();//一維陣列
stu[0] = new Array();//二維陣列
stu[0][0] = "john";
stu[0][1] ="tainan";
stu[0][2] = "boy";

  關鍵程式碼

(2).javascript二維陣列,i,j迴圈的最大值:
imax=array.length;
jmax=array[0].length;

for(i=0;i<imax;i++) {
for(j=0;j<jmax;j++) {
}
}

  關鍵程式碼

(3).注意:寫javascript時,要把加入的元件,標籤內的name 都改成 id
<input id="txt01" type="text" size="7" />
否則某些元件,在chrome瀏覽器無法運作

  關鍵程式碼

(4).二維陣列在計算時若是數字(整數小數),要先把text轉成int,或float:
parseInt(txt00.value)
parseFloat(txt00.value)

           
Chp 9: 自訂物件object,物件導向變數,物件object的陣列
  自訂物件object 1.從陣列到物件,物件陣列 練習      
  自訂物件object 2.三種自訂物件導向變數object 練習 3.物件object+下拉式選單,查詢產品價格 4.物件objec.t+下拉式選單,查詢歌曲歌詞播放音樂 5.物件object自動產出jQuery ListView清單
  關鍵程式碼

物件object變數,建立3種方法:
方法1:(最常使用
stu = {name:"john", chinese:95, english:75, math:70};

方法2:(少用)
var stu = new Object();
stu.name ="john";
stu.chinese =95;

方法3:(少用)
var stu = new student("john", 95, 75,70);
....
....
//產生建構子函數,以建立新的物件變數
function student(inputName, inputChinese, inputEnglish,inputMath) {
this.name = inputName;
this.chinese = inputChinese;
this.english = inputEnglish;
this.math = inputMath;
}

  關鍵程式碼

物件object變數的陣列,建立方法:
方法1:(最常使用)
stu = [{name:"john", chinese:95, english:75, math:70},{name:"tom", chinese:75, english:85, math:60},{name:"peter", chinese:95, english:100, math:65}];

方法2:
var stu = new Array(); //一維陣列 物件
stu[0] = {name:"john", chinese:95, english:75, math:70};
stu[1] = {name:"tom", chinese:85, english:85, math:90};

方法3:
var stu = new Array(); //一維陣列 物件
var stu[0] = new Object();
stu[0].name = "john";
stu[0].chinese = 95;
stu[0].english = 75;
stu[0].math = 70;
var stu[1] = new Object();
stu[1].name = "tom";
stu[1].chinese = 85;
stu[1].english = 85;
stu[1].math = 90;

  關鍵程式碼

在網頁播放音樂,最新的方法這是Html 5語法,目前chrome支援此語法,IE9及以上版本才支援
(A).先在網頁設定一個html5標籤:<audio id="audio"></audio>
顯示控制面版:controls
自動播放:autoplay
播放次數:loop


(B)寫javascript 程式碼:
document.getElementById('audio').src ="音樂檔名"; (目前支援mp3, ogg, wav)
document.getElementById('audio').loop=1;
document.getElementById('audio').load();
document.getElementById('audio').play();

  關鍵程式碼

要用自動新增listview清單內的li元件:
(1).傳統javascript方法:新增一筆li項目到ul尾端,的DOM寫法: ul01=document.getElementById("ul的id");
li01=document.createElement("li");
li01.innerHTML=("<li><a href='"+ school[i].ip +"' target='_blank'></a></li>";
ul01.appendChild(li01);

//j最後一定要加上這一行jQuery指令才能更新畫面的元件
$('#listview01').listview("refresh");

(2).傳統javascript方法:新增一筆li項目到ul尾端,的DOM寫法//要新增一個childNode到某個標籤之內
$("#listview01").append("<li><a href='"+ school[i].ip +"' target='_blank'></a></li>");
}
//jQuery一定要加上這一行來更新畫面的元件
$('#listview01').listview("refresh");

           
Chp10: DOM物件object:修改標籤節點與元素內容
  自訂物件object 1.修改ul-li 標籤DOM物件 2.修改select-option 標籤DOM物件    
  關鍵程式碼

(1).項目清單的結構:ul-li

  • 學號001

  • 學號002

程式碼:
<ul>
<li> <h3 align="left"> 學號001</h3> </li>
<li> <h3 align="left">學號002</h3> </li>
</ul>

  關鍵程式碼

(2).新增一筆li項目到ul尾端,的DOM寫法: ul01=document.getElementById("ul的id");
li01=document.createElement("li");
li01.innerHTML="顯示的文字";
ul01.appendChild(li01);

  關鍵程式碼

(3).新增一筆li項目到ul的第3行,DOM寫法: ul01=document.getElementById("ul的id");
li01=document.createElement("li");
li01.innerHTML="顯示的文字";
ul01.insertBefore(li01,ul01.childNodes[3]);

  關鍵程式碼

(4).刪除ul的第3行,DOM寫法: ul01=document.getElementById("ul的id");
ul01.removeChild(ul01.childNodes[3]);

  關鍵程式碼

(5).修改ul第3行的內容,DOM寫法: ul01=document.getElementById("ul的id");
li01=document.createElement("li");
li01.innerHTML="顯示的文字";
ul01.replaceChild(li01,ul01.childNodes[3]);

  關鍵程式碼

(6).注意:要定位第幾個li編號,有的時後會出現錯誤
(A).若是li由textbox輸入,一個一個慢慢新增,那麼編號,正確
(B).若是li已經事先有幾個了,那麼編號,會不正確

  關鍵程式碼

(1).選單清單的結構:select-option

 

程式碼:
<select id="selecttest">
<option>學號001</option>
<option>學號002</option>
</select>

 

  關鍵程式碼

(2).新增一筆option項目到select尾端,的DOM寫法: select01=document.getElementById("select的id");
option01=document.createElement("option");
option01.innerHTML="顯示的文字";
select01.appendChild(option01);

  關鍵程式碼

(3).新增一筆option項目到select的第3行,DOM寫法: select01=document.getElementById("select的id");
option01=document.createElement("option");
option01.innerHTML="顯示的文字";
select01.insertBefore(option01,select001.childNodes[3]);

  關鍵程式碼

(4).刪除select的第3行,DOM寫法: select01=document.getElementById("select的id");
select01.removeChild(select001.childNodes[3]);

  關鍵程式碼

(5).修改select第3行的內容,DOM寫法: select01=document.getElementById("select的id");
option01=document.createElement("option");
option01.innerHTML="顯示的文字";
select01.replaceChild(option001,select001.childNodes[3]);

  關鍵程式碼

(6).注意:要定位第幾個li編號,有的時後會出現錯誤
(A).若是option由textbox輸入,一個一個慢慢新增,那麼編號,正確
(B).若是option已經事先有幾個了,那麼編號,會不正確

  關鍵程式碼

比較:另外一種方法新增option到select的方法:

(1).新增一個項目到select-option內,傳統javascript方法
for(i=0;i<array.length;i++) {
select01.options.add(new Option(array[i]));
}
注意:第1個options(小寫O,有s),第2個Option(大寫O,沒s)

(2)如何知道下拉式選單select是選到第幾個option,傳統javascript方法:
第幾個 = select001.selectedIndex