先看效果
VUE3代碼
<template>
<div class="elementDemo03">
用戶狀態:
<el-switch
v-model="activeData.userInfo.status"
:inactive-value="0"
:active-value="1"
inline-prompt
@change="changeSwitchUserStatus(activeData.userInfo)"
/>
<hr />
角色狀態:
<el-switch
v-model="activeData.roleInfo.status"
:inactive-value="false"
:active-value="true"
class="ml-2"
active-color="#13ce66"
inactive-color="#ff4949"
active-text="啟用"
inactive-text="停用"
@change="changeSwitchRoleStatus(activeData.roleInfo)"
/>
<hr />
機構樹(Load效果):
<el-switch
v-model="activeData.orgTree.status"
:loading="activeData.orgTree.loading"
:before-change="beforeChangeStatus"
@change="changeSwitchOrgStatus(activeData.orgTree)"
/>
<hr />
機構樹(禁止切換):
<el-switch
v-model="activeData.orgTree2.status"
:inactive-value="0"
:active-value="1"
class="ml-2"
:loading="activeData.orgTree2.loading"
:before-change="beforeChangeStatus2"
@change="changeSwitchOrgStatus(activeData.orgTree2)"
/>
</div>
</template>
<script setup>
import { ref, reactive } from "vue";
import { ElMessage, ElMessageBox } from "element-plus";
// 響應式數據
const activeData = reactive({
userInfo: {
userId: 1,
status: 0,
},
roleInfo: {
roleId: 2,
status: false,
},
orgTree: {
roleId: 2,
status: 0,
},
orgTree2: {
roleId: 2,
status: 0,
},
});
// 初始化狀態
function initStatus() {
activeData.userInfo.status = 0;
activeData.roleInfo.status = true;
}
initStatus();
// 更改狀態
function changeSwitchUserStatus(userInfo) {
// 根據狀態變更進行響應
console.log("changeSwitchUserStatus", JSON.stringify(userInfo));
}
// 更改狀態
function changeSwitchRoleStatus(roleInfo) {
// 根據狀態變更進行響應
console.log("changeSwitchRoleStatus", JSON.stringify(roleInfo));
}
// 更改前
const beforeChangeStatus = () => {
activeData.orgTree.loading = true;
return new Promise((resolve, reject) => {
setTimeout(() => {
activeData.orgTree.loading = false;
ElMessage.success("Switch success");
return resolve(true);
}, 1000);
});
};
// 更改狀態
function changeSwitchOrgStatus(orgTree) {
console.log("changeSwitchOrgStatus", JSON.stringify(orgTree));
}
// 更改前
const beforeChangeStatus2 = () => {
activeData.orgTree2.loading = true;
return new Promise((resolve, reject) => {
setTimeout(() => {
activeData.orgTree2.loading = false;
ElMessage.error("Switch failed");
return reject(new Error("Error"));
}, 1000);
});
};
// 更改狀態
function changeSwitchOrgStatus2(orgTree2) {
console.log("changeSwitchOrgStatus2", JSON.stringify(orgTree2));
}
</script>
<style lang="scss" scoped>
</style>
參考:
Switch開關:https://element-plus.gitee.io/zh-CN/component/switch.html
使用效果
VUE3代碼
表格中處理
<el-table-column prop="status" align="center" label="合作狀態">
<template v-slot="scope">
<el-switch
v-model="scope.row.status"
:inactive-value = 0
:active-value = 1
@change="changeSwitchStatus(scope.row)"
></el-switch>
</template>
</el-table-column>
JS切換狀態
過昨天的學習算是對HTML有了一點點了解,知道了什么是前端,什么是HTML、前端三大標準、主流瀏覽器和html的基本結構及常用標簽。那么今天繼續看看html還有什么新的知識吧。
有常見性就有特殊性,我們使用電腦時經常會用到空格鍵,在html文檔上有時也會使用到空格鍵等等,那怎么在html上又是以什么形式展示給瀏覽器解析呢?
瀏覽器顯示結果 | 特殊字符名稱 | HTML編輯字符 |
空格 | & n b s p; | |
< | 小于號 | & l t ; |
> | 大于號 | & g t; |
& | 和 | & a m p; |
? | 版權 | & c o p y ; |
作用:在瀏覽器上清晰美觀地顯示、展示數據。
表格標簽的語法
<table>
<tr>
<td></td>
</tr>
</table>
表格標簽:<table></table>,一個table標簽中可嵌套多個tr標簽。
行標簽:<tr></tr>,一個tr標簽代表一行。一個行標簽中可以嵌套多個單元格標簽。
單元格標簽:<td></td>,一個td標簽代表一個單元格。在單元格中可以填充文本、圖片、超鏈接等等內容。
在html中表格不是由橫線劃分行和列,而是大大小小的矩形盒子來劃分。Table是一個最大的矩形盒子,里面包含tr標簽,這個是一個和table長度差不多的矩形盒子,table一行僅容納一個tr盒子。在tr盒子中還包含有N個td盒子,td盒子就是單元格。
表格示例:
在html文檔中編輯表格標簽結構時,除了一個標簽一個標簽地敲之外,可以使用快捷方式快速操作:如五行三列的表格,可以在table標簽中輸入:“tr*5>td*3”然后敲回車,就將其表格結構迅速展現出來。
<h1>表格示例:</h1>
<table>
<tr>
<td>姓名</td>
<td>性別</td>
<td>年齡</td>
</tr>
<tr>
<td>張三豐</td>
<td>男</td>
<td>27</td>
</tr>
<tr>
<td>李四喜</td>
<td>女</td>
<td>18</td>
</tr>
<tr>
<td>王五通</td>
<td>男</td>
<td>35</td>
</tr>
<tr>
<td>秦六夏</td>
<td>女</td>
<td>30</td>
</tr>
</table>
運行界面示例:默認狀態下表格是沒有線條分界,表格對齊方式左對齊。
表頭單元格標簽
<th></th>:位于表格的第一行或第一列,可以使其內容加粗居中顯示。
語法:
<table>
<th>
<td></td>
</th>
</table>
表頭表格代碼示例:
<h1>表頭表格示例:</h1>
<table>
<tr>
<th>姓名</th>
<th>性別</th>
<th>年齡</th>
</tr>
<tr>
<td>張三豐</td>
<td>男</td>
<td>27</td>
</tr>
<tr>
<td>李四喜</td>
<td>女</td>
<td>18</td>
</tr>
<tr>
<td>王五通</td>
<td>男</td>
<td>35</td>
</tr>
<tr>
<td>秦六夏</td>
<td>女</td>
<td>30</td>
</tr>
</table>
運行界面示例:
表格結構標簽
表格結構標簽分為表格頭部標簽和表格主體標簽。類似于head標簽和body標簽對于html標簽之間的關系。
表格頭部標簽:<thead></thead>。定義表格頭部,嵌套在<table></table>中,一般位于第一行。
表格主體標簽:<tbody></tbody>。定義表格主體,嵌套在<table></table>中,主要用于顯示數據。
代碼示例:
<h1>表格結構標簽</h1>
<table border="1" width="300px" height="150px" cellspacing="0">
<thead>
<tr>
<th>姓名</th>
<th>性別</th>
<th>年齡</th>
</tr>
</thead>
<tbody>
<tr>
<td>張三豐</td>
<td>男</td>
<td>36</td>
</tr>
<tr>
<td>李四喜</td>
<td>女</td>
<td>30</td>
</tr>
</tbody>
</table>
運行界面:
表格屬性
雖然表格屬性在實際開發過程中不常使用,一般都是通過CSS樣式設置,但是還是需要記住這些屬性關鍵詞,在css中屬性關鍵詞也會用到。
注:這些屬性都要寫在table標簽的開始標簽中,多個屬性之間需要使用空格分隔。
align:表格的對其方式。
align=“left”:在瀏覽器中居左顯示。也是默認顯示。
align=“center”:在瀏覽器中居中顯示。
align=“right”:在瀏覽器中居右顯示。
border:表格是否具有邊框。
border=”1”:表格添加邊框。
cellpadding:單元格內的元素和td邊框的距離。
舉個例子,如果表格是一件教室的話,桌子就是單元格,桌子上放的書本就是單元格內的元素,書本邊緣和桌子邊緣之間產生的空白區域就是cellpadding的值。
cellspacing:單元格和單元格之間的距離。默認是有空隙的,可設置為零,使其空隙清零,成為一條直線。
還是以教室為表格,桌子為單元格。桌子和桌子之間的距離就是cellspacing的值。
width:表格的寬度,屬性值可以是像素值也可以是百分比。
height:表格的高度,屬性值可以是像素值也可以是百分比。
代碼示例:
<h1>表頭表格示例:</h1>
<table align="center" border="1" cellpadding="0" cellspacing="0" width="200px" height="300px">
<tr>
<th>姓名</th>
<th>性別</th>
<th>年齡</th>
</tr>
<tr>
<td>張三豐</td>
<td>男</td>
<td>27</td>
</tr>
<tr>
<td>李四喜</td>
<td>女</td>
<td>18</td>
</tr>
<tr>
<td>王五通</td>
<td>男</td>
<td>35</td>
</tr>
<tr>
<td>秦六夏</td>
<td>女</td>
<td>30</td>
</tr>
</table>
運行界面:
合并單元格
合并單元格是指將兩個或兩個以上的單元格合并成一個單元格。合并屬性一般寫在單元格標簽的開始標簽上。合并代碼屬性設置后,要將沒有寫合并的單元格代碼的其他合并單元格標簽刪除掉。
目標單元格:(合并代碼存在位置)
跨行合并:最上側單元格為目標單元格,寫合并代碼。
跨列合并:最左側單元格為目標單元格,寫合并代碼。
合并單元格的方式:
跨行合并:將處于不同行的單元格進行合并
語法:rowspan=“合并單元格個數”
代碼示例:
<h1>跨行合并表格:</h1>
<table border="1" width="300px" height="150px" cellspacing="0">
<tr>
<td rowspan="2"></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</table>
運行界面:
跨列合并:將處于不同列的單元格進行合并
語法:colspan=“合并單元格個數”
代碼示例:
<h1>跨列合并表格:</h1>
<table border="1" width="300px" height="150px" cellspacing="0">
<tr>
<td colspan="2"></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</table>
運行示例:
今天學習的表格內容就到這里了,明天開始學習列表。
眾號【傳智播客博學谷】回復關鍵詞:前端 PS Java(100G) Python(80G) 大數據 區塊鏈 測試 PPT JS(40g+300教程) HTML 簡歷 領取相關學習資料!
一、HTML
1、<image>標簽上title屬性與alt屬性的區別是什么?
alt屬性是為了給那些不能看到你文檔中圖像的瀏覽者提供文字說明的。且長度必須少于100個英文字符或者用戶必須保證替換文字盡可能的短。
這包括那些使用本來就不支持圖像顯示或者圖像顯示被關閉的瀏覽器的用戶,視覺障礙的用戶和使用屏幕閱讀器的用戶等。
title屬性為設置該屬性的元素提供建議性的信息。使用title屬性提供非本質的額外信息。參考《alt和title屬性的區別及應用》
2、分別寫出以下幾個HTML標簽:文字加粗、下標、居中、字體
加粗:<b>、<strong>
下標:<sub>
居中:<center>
字體:<font>、<basefont>、參考《HTML標簽列表》
3、請寫出至少5個html5新增的標簽,并說明其語義和應用場景
section:定義文檔中的一個章節
nav:定義只包含導航鏈接的章節
header:定義頁面或章節的頭部。它經常包含 logo、頁面標題和導航性的目錄。
footer:定義頁面或章節的尾部。它經常包含版權信息、法律信息鏈接和反饋建議用的地址。
aside:定義和頁面內容關聯度較低的內容——如果被刪除,剩下的內容仍然很合理。
參考《HTML5 標簽列表》
4、請說說你對標簽語義化的理解?
a. 去掉或者丟失樣式的時候能夠讓頁面呈現出清晰的結構
b. 有利于SEO:和搜索引擎建立良好溝通,有助于爬蟲抓取更多的有效信息:爬蟲依賴于標簽來確定上下文和各個關鍵字的權重;
c. 方便其他設備解析(如屏幕閱讀器、盲人閱讀器、移動設備)以意義的方式來渲染網頁;
d. 便于團隊開發和維護,語義化更具可讀性,遵循W3C標準的團隊都遵循這個標準,可以減少差異化。
5、Doctype作用? 嚴格模式與混雜模式如何區分?它們有何意義?
聲明位于文檔中的最前面,處于 標簽之前。告知瀏覽器以何種模式來渲染文檔。
嚴格模式的排版和 JS 運作模式是,以該瀏覽器支持的最高標準運行。
在混雜模式中,頁面以寬松的向后兼容的方式顯示。模擬老式瀏覽器的行為以防止站點無法工作。
DOCTYPE不存在或格式不正確會導致文檔以混雜模式呈現。
6、你知道多少種Doctype文檔類型?
標簽可聲明三種 DTD 類型,分別表示嚴格版本、過渡版本以及基于框架的 HTML 文檔。
HTML 4.01 規定了三種文檔類型:Strict、Transitional 以及 Frameset。
XHTML 1.0 規定了三種 XML 文檔類型:Strict、Transitional 以及 Frameset。
Standards (標準)模式(也就是嚴格呈現模式)用于呈現遵循最新標準的網頁,
Quirks(包容)模式(也就是松散呈現模式或者兼容模式)用于呈現為傳統瀏覽器而設計的網頁。
7、HTML與XHTML——二者有什么區別
a. XHTML 元素必須被正確地嵌套。
b. XHTML 元素必須被關閉。
c. 標簽名必須用小寫字母。
d. XHTML 文檔必須擁有根元素。
參考《XHTML 與 HTML 之間的差異》
8、html5有哪些新特性、移除了那些元素?
a. HTML5 現在已經不是 SGML 的子集,主要是關于圖像,位置,存儲,多任務等功能的增加。
b. 拖拽釋放(Drag and drop) API
c. 語義化更好的內容標簽(header,nav,footer,aside,article,section)
d. 音頻、視頻API(audio,video)
e. 畫布(Canvas) API
f. 地理(Geolocation) API
g. 本地離線存儲 localStorage 長期存儲數據,瀏覽器關閉后數據不丟失
h. sessionStorage 的數據在頁面會話結束時會被清除
i. 表單控件,calendar、date、time、email、url、search
j. 新的技術webworker, websocket等
移除的元素:
a. 純表現的元素:basefont,big,center, s,strike,tt,u;
b. 對可用性產生負面影響的元素:frame,frameset,noframes;
9、iframe的優缺點?
優點:
a. 解決加載緩慢的第三方內容如圖標和廣告等的加載問題
b. iframe無刷新文件上傳
c. iframe跨域通信
缺點:
a. iframe會阻塞主頁面的Onload事件
b. 無法被一些搜索引擎索引到
c. 頁面會增加服務器的http請求
d. 會產生很多頁面,不容易管理。
參考《iframe的一些記錄》
10、Quirks模式是什么?它和Standards模式有什么區別?
在寫程序時我們也會經常遇到這樣的問題,如何保證原來的接口不變,又提供更強大的功能,尤其是新功能不兼容舊功能時。IE6以前的頁面大家都不會去寫DTD,所以IE6就假定 如果寫了DTD,就意味著這個頁面將采用對CSS支持更好的布局,而如果沒有,則采用兼容之前的布局方式。這就是Quirks模式(怪癖模式,詭異模式,怪異模式)。
區別:總體會有布局、樣式解析和腳本執行三個方面的區別。
a. 盒模型:在W3C標準中,如果設置一個元素的寬度和高度,指的是元素內容的寬度和高度,而在Quirks 模式下,IE的寬度和高度還包含了padding和border。
b. 設置行內元素的高寬:在Standards模式下,給等行內元素設置wdith和height都不會生效,而在quirks模式下,則會生效。
c. 設置百分比的高度:在standards模式下,一個元素的高度是由其包含的內容來決定的,如果父元素沒有設置百分比的高度,子元素設置一個百分比的高度是無效的用
d. 設置水平居中:使用margin:0 auto在standards模式下可以使元素水平居中,但在quirks模式下卻會失效。
11、請闡述table的缺點
a. 太深的嵌套,比如table>tr>td>h3,會導致搜索引擎讀取困難,而且,最直接的損失就是大大增加了冗余代碼量。
b. 靈活性差,比如要將tr設置border等屬性,是不行的,得通過td
c. 代碼臃腫,當在table中套用table的時候,閱讀代碼會顯得異常混亂
d. 混亂的colspan與rowspan,用來布局時,頻繁使用他們會造成整個文檔順序混亂。
e. 不夠語義
參考《為什么說table表格布局不好?》
12、簡述一下src與href的區別
src用于替換當前元素;href用于在當前文檔和引用資源之間確立聯系。
src是source的縮寫,指向外部資源的位置,指向的內容將會嵌入到文檔中當前標簽所在位置
href是Hypertext Reference的縮寫,指向網絡資源所在位置,建立和當前元素(錨點)或當前文檔(鏈接)之間的鏈接
公眾號【傳智播客博學谷】回復關鍵詞:前端 PS Java Python 大數據 區塊鏈 測試 PPT JS HTML 簡歷 領取相關學習資料!
*請認真填寫需求信息,我們會在24小時內與您取得聯系。