① B/S架構:Browser/Server(瀏覽器/服務器的交互形式。)
② C/S架構:Client/Server(客戶端/服務器的交互形式。)
① 什么是HTML?② 怎么開發HTML?③ 怎么運行HTML?
?由大量的標簽組成,每一個標簽都有開始標簽和結束標簽。
?超文本:圖片、聲音、視頻等
?編輯器有:HBuilder、vscode等
③ 直接采用瀏覽器打開HTML文件就能運行
④ HTML是誰制定的?
?W3C制定了HTML的規范:每個瀏覽器生產廠家都會遵守規范。HTML也會按照規范去寫代碼
?HTML規范目前最高的版本是:HTML5.0,簡稱H5
?我們現在主要學的HTML4.0(基本用法)
?w3school:先出現的,和W3C無關
?w3cschool:后出現的,和W3C無關
?W3C制定了很多規范:HTML/XML/http協議/https協議……
頁面效果圖:
超鏈接的作用:
通過超鏈接可以從瀏覽器向服務器發送請求。
效果圖:
地址欄提交的信息:
?username=abc&userpassowrd=1234&sex=1&aihao=study&aihao=dream&myText=我沒有value屬性;&position=ln&myFile=&myHidden=
14、表單的說明:
內容是《Web前端開發之Javascript視頻》的課件,請配合大師哥《Javascript》視頻課程學習。
為了方便構建表格,HTML DOM為表格專門創建了HTMLTableElement 接口;其繼承自HTMLElement接口;
該接口提供了專門的屬性和方法來處理表格的布局與呈現;
HTMLTableElement接口屬性:
var table = document.getElementsByTagName("table")[0];
console.log(table.caption);
console.log(table.tHead);
console.log(table.tBodies);
console.log(table.tFoot);
console.log(table.rows);
console.log(table.rows[0]);
console.log(table.rows[table.rows.length-1]);
另外,HTMLTableElement對象還擁有一些表現性的屬性,但這些屬性已建議不被使用,因為可以使用CSS來指定樣式,如;
以上屬性除了summary,都可以使用CSS進行定義,所以盡量不要再使用;
HTMLTableElement接口方法:
createCaption():返回表格元素的標題,如該表沒有標題,這個方法創建并返回標題,隨后可以使用其他方法對其添加內容;
deleteCaption():移除表格元素的<caption>;
var table = document.getElementsByTagName("table")[0];
// 也可以創建一個,并添加到DOM樹中
var table = document.createElement("table");
document.body.appendChild(table);
var caption = table.createCaption();
caption.innerHTML = "Web前端開發課程";
table.deleteCaption();
createTHead():返回表元素的tHead對象,如果表元素中沒有<thead>,則創建并返回;注意:如果不存在<thead>,該方法創建<thead>并直接插入表中;
deleteTHead():移除表元素中的<thead>;
var thead = table.createTHead(); // 如果不存在,則創建
console.log(thead);
var row = thead.insertRow(0);
row.insertCell(0);
row.insertCell(1);
row.insertCell(2);
table.deleteTHead();
createTFoot():返回表元素的tHead對象,如果表元素中沒有<thead>,則創建并返回;
deleteTFoot():移除表元素中的<tfoot>;
var tfoot = table.createTFoot();
console.log(tfoot);
var row = tfoot.insertRow(0);
row.insertCell(0);
row.insertCell(1);
row.insertCell(2);
table.deleteTFoot();
createTBody()方法:創建并返回表元素的<tbody>;
注意:與createTHead()、createTFoot()方法的不同的是,createTBody()可以創建多個<tbody>元素,新創建的<tbody>在最后位置;
新創建的<tbody>元素會被保存到tBodies集合中;
var tbody = table.createTBody();
console.log(tbody);
var row = tbody.insertRow(0);
row.insertCell(0);
row.insertCell(1);
row.insertCell(2);
console.log(table.tBodies);
insertRow(index):向rows集合中在指定位置插入行;即在表元素中index位置插入新行<tr>,并返回對該新行的類型為HTMLTableRowElement對象;
table及tbody都可以調用該方法;
如果一個表有多個<tbody>元素,默認情況下,新行將插入到最后的<tbody>;
var row = table.insertRow(0); // 第一行
console.log(row);
table.insertRow(); // 最后一行
table.insertRow(-1); // 最后一行
table.insertRow(table.rows.length); // 最后一行
// 如果存在第二個<body>,并且指定的index=4位于該<body>中,則在此處添加
table.insertRow(4);
console.log(table.rows);
要將行插入特定的<tbody>,先取得該<tbody>對象,再使用該對象執行insertRow()方法;但index不能超過此<tbody>的索引下界;
var tbody = table.tBodies[0];
tbody.insertRow(); // 在第一個<body>的最后添加新行
tbody.insertRow(table.rows.length); // 異常
deleteRow(index):刪除指定位置的行;如果 index 值為 -1,最后一行會被移除;
table.deleteRow(1);
var tbody = table.tBodies[1];
tbody.deleteRow(1);
HTMLTableRowElement接口對象:
該類型表示表格中的一行(<tr>),它定義了若干操作當前行的屬性和方法;
rowIndex屬性:返回該行在整個表中的邏輯位置,即索引,如果該行不屬于表,則返回-1;
var row = table.rows[1];
console.log(row.rowIndex); // 1
var tbody = table.tBodies[1];
var row = tbody.rows[1];
console.log(row.rowIndex); // 4
sectionRowIndex屬性:返回該行在所屬部分(如<thead>、<tbody>和<tfoot>部分)中的邏輯位置,如果該行不屬于某部分,則返回-1;
var row = table.rows[1];
console.log(row.sectionRowIndex); // 1
var tbody = table.tBodies[1];
var row = tbody.rows[1];
console.log(row.sectionRowIndex); // 1
cells:返回某個行中的所有單元格的HTMLCollection集合;該集合中保存著類型為HTMLTableCellElement的cell對象;
var row = table.rows[1];
console.log(row.cells); // HTMLCollection
console.log(row.cells[0]);
insertCell(index):向cells集合中的指定位置插入一個單元格,即在<tr>的index位置插入<td>,返回對新插入單元格的引用;如果index值為空或者為-1或者等于當前行中單元格的數目,則新的單元格將被追加到當前行的最后;
插入的新Cell對象,可以使用其他DOM方法添加子元素或內容;
var row = table.insertRow(-1);
var cell1 = row.insertCell(0);
cell1.appendChild(document.createTextNode("4"));
var cell2 = row.insertCell(1);
cell2.innerHTML = "Web開發";
該方法不能創建<th>元素,如果需要創建<th>,必須使用document.createElement()方法及Node.insertBefore()或相關的方法來創建和插入<th>元素;
deleteCell(index):刪除行中給定位置的單元格;
row.deleteCell(0);
HTMLTableCellElement接口:
表示表元素中的單元格,包括<th>及<td>元素;其繼承自HTMLElement接口;
var row = table.insertRow();
var cell = row.insertCell();
cell.innerHTML = "Web前端開發";
console.log(cell.cellIndex); // 0
cell.colSpan = "3"; // 跨3列
var cell = table.rows[1].cells[1];
cell.rowSpan = 2; // 跨行
table.rows[2].deleteCell(2);
使用這些屬性和方法,可以極大地減少創建表格所需的代碼量,如:
var table = document.createElement("table");
table.border = "1";
table.width = "600px";
var caption = table.createCaption();
caption.innerHTML = "Web前端開發課程";
var thead = table.createTHead();
var row = thead.insertRow();
var th1 = document.createElement("th");
th1.appendChild(document.createTextNode("序號"));
row.appendChild(th1);
var th2 = document.createElement("th");
th2.appendChild(document.createTextNode("課程"));
row.appendChild(th2);
var tbody = table.createTBody();
tbody.insertRow();
tbody.rows[0].insertCell();
tbody.rows[0].cells[0].appendChild(document.createTextNode("1"));
tbody.rows[0].insertCell();
tbody.rows[0].cells[1].appendChild(document.createTextNode("HTML"));
tbody.insertRow();
tbody.rows[1].insertCell();
tbody.rows[1].cells[0].appendChild(document.createTextNode("2"));
tbody.rows[1].insertCell();
tbody.rows[1].cells[1].appendChild(document.createTextNode("CSS"));
var tfoot = table.createTFoot();
tfoot.insertRow();
var cell = tfoot.rows[0].insertCell();
cell.colSpan = 2;
cell.align = "right";
cell.innerHTML = "由大師哥王唯主講";
document.body.appendChild(table);
生成簡單的空表格:
<style>
#mytable{width: 400px; border: 1px solid lightgreen;}
#mytable td{padding: .5em; border: 1px solid lightgreen;}
</style>
<script>
function MyTable(id, caption, rows, cols){
this.id = id ? id : "table";
this.caption = caption ? caption : undefined;
this.rows = rows ? rows : 2;
this.cols = cols ? cols : 2;
var table = document.createElement("table");
table.id = this.id;
if(this.caption){
var _caption = table.createCaption();
_caption.innerText = this.caption;
}
for(var i=0; i<this.rows; i++){
var _rows = table.insertRow();
for(var j = 0; j < this.cols; j++){
var _cell = _rows.insertCell();
_cell.appendChild(document.createTextNode(""));
}
}
return table;
}
var t = new MyTable("mytable","我的表格",4,3);
document.body.appendChild(t);
</script>
控制臺表格:
console.table(data [, columns])方法:
將數據以表格的形式顯示;這個方法需要一個必須參數data,data必須是一個數組或者是一個對象;
它會把數據data以表格的形式打印出來,數組中的每一個元素(或對象中可枚舉的屬性)將會以行的形式顯示在表格中;
// 打印一個由字符串組成的數組
console.table(["HTML","CSS","Javascript"]);
表格的第一列是index,如果數據data是一個數組,那么這一列的單元格的值就是數組的索引,如果數據是一個對象,那么它們的值就是各對象的屬性名稱;;
// 打印一個屬性值是字符串的對象
function Person(firstName, lastName){
this.firstName = firstName;
this.lastName = lastName;
}
var p = new Person("王","唯");
console.table(p);
打印復合的參數類型:
如果需要打印的元素在一個數組中,或者需要打印的屬性在一個對象,并且他們本身就是一個數組或者對象,則將會把這個元素顯示在同一行,每個元素的成員占一列;
// 二元數組的打印
var people = [["wang","wei"],["jing","jing"],["juan","zi"]];
console.table(people);
// 打印一個包含對象的數組
var wang = new Person("王","唯");
var jing = new Person("靜","靜");
var juan = new Person("娟","子");
// 如果數組中包含該對象,打印出來的列標簽將是該對象的屬性名
console.table([wang, jing, juan]);
// 打印屬性名是對象的對象
var family = {};
family.mother = jing;
family.father = wang;
family.daughter = juan;
console.table(family);
選擇要隱藏的列:
console.table()會把所有元素羅列在每一列,可以使用columns參數選擇要顯示的列的子集;其是一個包含列的名稱的數組;
// 一個對象數組,只打印 firstName
console.table([wang, jing, juan],"firstName");
按列重新排序:
可以點擊每列的頂部標簽來重排輸出的表格;
Web前端開發之Javascript-零點程序員-王唯
例
一個 HTML 文本區域:
<textarea rows="10" cols="30">
我是一個文本框。
</textarea>
瀏覽器支持
所有主流瀏覽器都支持 <textarea> 標簽。
標簽定義及使用說明
<textarea> 標簽定義一個多行的文本輸入控件。
文本區域中可容納無限數量的文本,其中的文本的默認字體是等寬字體(通常是 Courier)。
可以通過 cols 和 rows 屬性來規定 textarea 的尺寸大小,不過更好的辦法是使用 CSS 的 height 和 width 屬性。
HTML 4.01 與 HTML5之間的差異
HTML5 增加了一些新的屬性。
屬性
New:HTML5 中的新屬性。
屬性 | 值 | 描述 |
---|---|---|
autofocusNew | autofocus | 規定當頁面加載時,文本區域自動獲得焦點。 |
cols | number | 規定文本區域內可見的列數。 |
disabled | disabled | 規定禁用文本區域。 |
formNew | form_id | 定義文本區域所屬的一個或多個表單。 |
maxlengthNew | number | 規定文本區域允許的最大字符數。 |
name | text | 規定文本區域的名稱。 |
placeholderNew | text | 規定一個簡短的提示,描述文本區域期望的輸入值。 |
readonly | readonly | 規定文本區域為只讀。 |
requiredNew | required | 規定文本區域是必需的/必填的。 |
rows | number | 規定文本區域內可見的行數。 |
wrapNew | hardsoft | 規定當提交表單時,文本區域中的文本應該怎樣換行。 |
全局屬性
<textarea> 標簽支持 HTML 的全局屬性。
事件屬性
<textarea> 標簽支持 HTML 的事件屬性。
如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!
*請認真填寫需求信息,我們會在24小時內與您取得聯系。