日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

前端HTML CSS JavaScipt JQuery

發(fā)布時(shí)間:2024/1/8 HTML 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 前端HTML CSS JavaScipt JQuery 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Web前端基礎(chǔ)

應(yīng)用程序分類

客戶端/服務(wù)器

Client/Server CS模式

用戶需要下載客戶端才能使用。如微信、QQ、游戲等。

特點(diǎn):功能豐富,安裝繁瑣、需要更新、平臺不同,軟件不同,開發(fā)成本高。

瀏覽器/服務(wù)器

Browser/Server BS模式

用戶只需一個(gè)瀏覽器即可使用。如網(wǎng)頁QQ、商業(yè)網(wǎng)站等。

特點(diǎn):功能較為豐富,無需安裝軟件,只需一個(gè)瀏覽器,無需更新,平臺無關(guān),開發(fā)時(shí)只需設(shè)計(jì)一套頁面。

B/S模式下,用戶訪問便捷,無需安裝多余軟件,企業(yè)開發(fā)成本低。

所以B/S模式是Java主要開發(fā)的模式,一個(gè)WEB項(xiàng)目,需要瀏覽器、服務(wù)器和數(shù)據(jù)庫。

用戶通過瀏覽器訪問服務(wù)器上的某個(gè)地址或頁面,將數(shù)據(jù)傳遞到后端,再將數(shù)據(jù)交到數(shù)據(jù)庫進(jìn)行訪問和維護(hù)。

整個(gè)系統(tǒng)中,頁面部分起著承接的作用,可以用于收集用戶數(shù)據(jù)和呈現(xiàn)服務(wù)端的內(nèi)容。

程序員既要開發(fā)服務(wù)器端的內(nèi)容,也要掌握如何將數(shù)據(jù)渲染在頁面,如何通過頁面獲取用戶數(shù)據(jù)。

學(xué)習(xí)Web基礎(chǔ),就是學(xué)習(xí)如何編寫頁面,如何通過瀏覽器呈現(xiàn)數(shù)據(jù)。

Web前端基礎(chǔ)學(xué)習(xí)路線

HTML --> CSS --> JavaScript --> Jquery

HTML

Hyper Text Markup Language 超文本標(biāo)記語言

超文本

可以理解為超級文本:超越了文本的限制,如圖片、音頻、視頻等。

也可以理解為超鏈接文本:通過某個(gè)連接,可以訪問互聯(lián)網(wǎng)中的任意地址。

標(biāo)記

可以稱為標(biāo)簽。用<>括起來的一個(gè)特定的單詞。

標(biāo)簽分為單標(biāo)簽和雙標(biāo)簽。

單標(biāo)簽:<meta 屬性名="屬性值"/>

雙標(biāo)簽:<body 屬性名="屬性值"></body>

標(biāo)簽中可以加入屬性,雙標(biāo)簽中可以繼續(xù)嵌套標(biāo)簽。

用HTML標(biāo)簽寫出的文件保存為.html文件,稱為頁面文件。

標(biāo)簽的屬性

在標(biāo)簽中,通過加入 屬性名=“屬性值” ,就可以讓某個(gè)標(biāo)簽擁有指定的特征。

<標(biāo)簽名 屬性1="" 屬性2="" ></標(biāo)簽名><html><head><!--charset就是一個(gè)屬性, utf-8就是該屬性的值--><meta charset="utf-8"/></head><body><!--src就是一個(gè)屬性--><img src="圖片路徑"></body> </html>

瀏覽器

瀏覽器是用于"運(yùn)行"HTML頁面的平臺。

用HTML語言寫出來的網(wǎng)頁文件,需要瀏覽器對其解釋渲染。

瀏覽器與HTML文件的關(guān)系類似于JVM與java文件的關(guān)系。

常用瀏覽器

Chrome 谷歌瀏覽器

Edge Windows自帶的瀏覽器,IE的升級版

FireFox 火狐瀏覽器

safari ios平臺自帶瀏覽器

頁面的基本組成結(jié)構(gòu)

<!-- HTML中的注釋 --> <!-- DOC文檔TYPE類型 說明當(dāng)前頁面的文檔類型 HTML5--> <!DOCTYPE html> <html><head><!-- meta元 設(shè)置頁面的屬性 charset字符集 utf-8表示支持中文的編碼格式 --><meta charset="utf-8"><title>頁面標(biāo)題</title></head><body>頁面主題內(nèi)容sdfsdfsdf</body> </html>

HTML中表示顏色的方式

顏色的單詞

red、green、blue、pink、gold、gray、orange、brown、purple、skyblue…

顏色的十進(jìn)制RGB

RGB表示紅綠藍(lán),每個(gè)顏色通過0-255范圍內(nèi)的數(shù)字表示其顏色的深淺

RGB(0,0,0) 黑色

RGB(255,255,255) 白色

RGB(255,0,0) 紅色

RGB(255,0,255) 紫色

顏色的十六進(jìn)制RGB

#000000 黑色

#FF0000 紅色,可以簡寫為#F00

#00FF00 綠色

#00FFFF 青色

常用標(biāo)簽

頁面中的標(biāo)簽,也稱為頁面中的元素或節(jié)點(diǎn)。所有的元素可以分為兩大類。

標(biāo)簽的類型

塊級元素

如果一個(gè)標(biāo)簽占滿整行,稱這個(gè)標(biāo)簽為塊級元素。

行內(nèi)元素

如果一個(gè)標(biāo)簽占一行中的一部分,稱這個(gè)標(biāo)簽為行內(nèi)元素。

單標(biāo)簽

常用單標(biāo)簽作用類型
<input />表單元素行內(nèi)元素
<img src="圖片路徑" alt="替換圖片的文字" title="鼠標(biāo)懸停時(shí)提示文件" width="圖片寬度" height="圖片高度"/>圖片行內(nèi)元素
<br/>換行塊級元素
<hr/>水平線塊級元素

雙標(biāo)簽

文字

常用標(biāo)簽作用類型
<h1></h1>~<h6></h6>一級標(biāo)題~六級標(biāo)簽,文字加粗,一級標(biāo)題最大塊級元素
<p></p>段落塊級元素
<span></span>行內(nèi)標(biāo)簽行內(nèi)元素
<sub></sub>文字下標(biāo)行內(nèi)元素
<sup></sup>文字上標(biāo)行內(nèi)元素
<b></b>文字加粗行內(nèi)元素
<i></i>文字傾斜行內(nèi)元素
<u></u>下劃線行內(nèi)元素
<font color="" size="" face=""></font>已過時(shí)。字體

iconfont-阿里巴巴矢量圖標(biāo)庫

HTML Emoji | 菜鳥教程 (runoob.com)

圖片img

<img>單標(biāo)簽,行內(nèi)元素

<img src="圖片路徑" alt="無法顯示圖片時(shí)的文字" title="鼠標(biāo)懸停時(shí)的文字" width="寬度" height="高度">

圖片路徑可以使用相對路徑或絕對路徑

  • 絕對路徑:文件在計(jì)算機(jī)中的完整路徑
  • 相對路徑:從當(dāng)前頁出發(fā),找到圖片所在位置
    • 使用"…/"跳出當(dāng)前目錄
    • 使用"xxx/"進(jìn)入xxx目錄

列表ul/ol/li

雙標(biāo)簽,都是塊級元素,li寫在ul或ol標(biāo)簽中

通常使用列表實(shí)現(xiàn)頁面的水平導(dǎo)航、垂直導(dǎo)航

無序列表ul

默認(rèn)每個(gè)li前用實(shí)心圓修飾,通過type屬性更改

  • square 正方形
  • dist 默認(rèn)實(shí)心圓
  • circle 空心圓
  • none 去掉修飾

有序列表ol

默認(rèn)每個(gè)li前用數(shù)字修飾,通過type屬性更改

  • a/A
  • i/I
  • 1
<!--無序列表--> <ul><li></li><li></li><li></li> </ul> <!--有序列表--> <ol><li></li><li></li><li></li> </ol>

表格table

雙標(biāo)簽,table是塊級元素,tr、th、td是行內(nèi)元素

表格相關(guān)標(biāo)簽作用
table定義表格
tr表格中的行
td一行中的單元格
th特殊的td,文字加粗居中,使用th實(shí)現(xiàn)表頭

合并行rowspan=“n”

給td添加該屬性,表示n行合1行

合并列colspan=“n”

給td添加該屬性,表示n列合1列

<table border="1" width="400px"><tr><th></th><th>星期一</th><th>星期二</th><th>星期三</th><th>星期四</th><th>星期五</th></tr><tr><td rowspan="2">上午</td><td>語文</td><td>數(shù)學(xué)</td><td>英語</td><td>數(shù)學(xué)</td><td>語文</td></tr><tr><td>數(shù)學(xué)</td><td>語文</td><td>數(shù)學(xué)</td><td>語文</td><td>英語</td></tr><tr><th colspan="6">午休</th></tr><tr><td rowspan="2">下午</td><td>語文</td><td>數(shù)學(xué)</td><td>數(shù)學(xué)</td><td>英語</td><td>語文</td></tr><tr><td>英語</td><td>數(shù)學(xué)</td><td>語文</td><td>數(shù)學(xué)</td><td>語文</td></tr> </table>

a標(biāo)簽

<a>顯示文字</a>,行內(nèi)元素

核心屬性
href訪問某個(gè)鏈接。如果要訪問錨點(diǎn),#開頭
target_self:默認(rèn)自身頁面訪問,_blank:空白頁面訪問,_parent:父頁面訪問,某個(gè)iframe的name:在指定的iframe中訪問
name定義錨點(diǎn)

超鏈接

<!-- 訪問某個(gè)域名 --> <a href="http://baidu.com">跳轉(zhuǎn)到baidu</a> <!-- 訪問當(dāng)前項(xiàng)目中的頁面 --> <a href="列表與表格.html">跳轉(zhuǎn)到表格頁面</a> <!-- 訪問資源 --> <a href="../imgs/flower.webp">跳轉(zhuǎn)到圖片</a>

錨點(diǎn)

1.設(shè)置錨點(diǎn)

<a name="錨點(diǎn)名"></a>

2.訪問錨點(diǎn)

<a href="#錨點(diǎn)名">訪問錨點(diǎn)</a>

浮動框架iframe

在頁面中嵌入一個(gè)頁面。

<a target="某個(gè)iframe的名稱" href="某個(gè)路徑">訪問</a><iframe width="100%" height="600px" name="該iframe的名稱"></iframe>

marquee標(biāo)簽

<!--scrollamount移動速度--> <!--direction方向 left right up down--> <!--behavior行為 alternate往復(fù)移動 scoll重復(fù)滾動 slide滑到頂端--> <marquee scrollamount="10" direction="right" behavior="scoll">一段文字 </marquee>

多媒體

公用屬性

  • controls:顯示控制器
  • muted:靜音
  • autoplay:自動播放。chrome瀏覽器視頻需要添加muted屬性后才能使用autoplay
  • loop:循環(huán)

音頻

<audio controls autoplay muted loop><source src="音頻文件路徑"></source> </audio>

視頻

<video controls autoplay muted loop><source src="視頻文件路徑"></source> </video>

表單與表單元素

表單form

雙標(biāo)簽,塊級元素,用于接收用戶輸入的數(shù)據(jù)

<form action="表單提交路徑" method="表單提交方式"></form> form標(biāo)簽核心屬性值作用
action可以是某個(gè)頁面或某個(gè)控制器的路徑將表單中的數(shù)據(jù)提交到指定路徑
methodpost/get默認(rèn)為get,提交的數(shù)據(jù)會暴露在地址欄中,數(shù)據(jù)長度有限制。post方式不會存在這些問題

表單元素

常用表單元素說明
input單標(biāo)簽,行內(nèi)元素。通過改變type屬性值,變化為不同的表單元素
select雙標(biāo)簽,行內(nèi)元素。下拉框
option雙標(biāo)簽,select的子標(biāo)簽,下拉菜單中的選項(xiàng)。value屬性表示該選項(xiàng)的值,如果不設(shè)置,value值默認(rèn)為option標(biāo)簽中的文本
textarea雙標(biāo)簽,行內(nèi)元素。文本域。
input標(biāo)簽的type值作用
text文本框
password密碼框
radio單選按鈕
checkbox復(fù)選框
date日歷
number數(shù)字選擇器
file提交文件
hidden隱藏域
button普通按鈕
reset重置按鈕
submit提交按鈕
表單元素的屬性作用
name用于提交表單時(shí)設(shè)置提交的參數(shù)名
value用于輸入框的默認(rèn)值或單選復(fù)選按鈕的默認(rèn)值
required用于輸入框或按鈕設(shè)置為必填或必選項(xiàng)
placehoder用于輸入框的默認(rèn)提示文字
checked用于單選按鈕和復(fù)選框默認(rèn)選中
selected用于下拉菜單默認(rèn)選中
readonly只讀
disabled讓某個(gè)元素失效
min/max/stepnumber獨(dú)有,設(shè)置最小/最大/步長
rows/colstextarea獨(dú)有,設(shè)置行數(shù)/列數(shù)

div標(biāo)簽

雙標(biāo)簽,塊級元素,沒有任何特點(diǎn)。

頁面的主流布局就是采用div。

CSS

Cascading Style Sheets 層疊樣式表

用于控制HTML中標(biāo)簽樣式的語言。

可以精確到像素,用于美化HTML標(biāo)簽。

CSS語法

樣式名:樣式值;

選擇器

用于選中頁面中元素(標(biāo)簽)的工具

ID選擇器

1.給某個(gè)標(biāo)簽添加id的屬性,對其命名

2.通過**#id名**獲取

通常用于獲取某一個(gè)元素,id名稱不要沖突

類選擇器

1.給某些標(biāo)簽添加class的屬性,對其命名

2.通過**.class名**獲取

通過用于獲取一組元素

元素選擇器/HTML選擇器/標(biāo)簽選擇器

直接通過標(biāo)簽名獲取元素,獲取所有對應(yīng)標(biāo)簽。

后代選擇器

*表示所有元素

  • 空格
    • 得到所有子元素
  • >
    • 得到第一層子元素
div p{/*得到div下的所有子元素p*/ } div>p{/*得到div下第一層子元素p*/ } div *{/*得到div中的所有子元素*/ }

群組選擇器

使用逗號將多個(gè)選擇器同時(shí)選中

p,#md,.mp{} <!DOCTYPE html> <html><head><meta charset="utf-8"><title></title><style>p{color: green;}/* #test{color: red;} */#mp{color: red;}.mp{color: blue;}/* #md下的所有子標(biāo)簽p */#md p{font-size: 18px;}/* #md下的第一層標(biāo)簽p */#md>p{background-color: cadetblue;}#md,#md2{font-weight: bold;}</style></head><body><div id="md"><p id="mp">這是一段文字</p><p class="mp">這是一段文字</p><p class="mp">這是一段文字</p><p>這是一段文字</p><p>這是一段文字</p><div id="md2"><p>這是一段文字</p><p class="mp" id="test" style="color: black;">這是一段文字</p><p>這是一段文字</p></div></div></body> </html>

CSS寫在哪里

寫在某個(gè)標(biāo)簽的style屬性中

<div style="樣式名:;"></div>

寫在head標(biāo)簽下的style標(biāo)簽中

<html><head><style>選擇器{樣式:;樣式:;}</style></head> </html>

寫在一個(gè)獨(dú)立的css文件中

1.新建一個(gè).css文件,在其中編寫css樣式

*{margin:0;padding:0; }

2.在頁面中通過link標(biāo)簽導(dǎo)入

<html><head><!--導(dǎo)入css文件--><link rel="stylesheet" href="xxx.css"></head> </html>

選擇器的優(yōu)先級

內(nèi)嵌在style標(biāo)簽 >> id選擇器 >> class選擇器 >> 標(biāo)簽選擇器

在選擇某個(gè)元素時(shí),盡量將其層次關(guān)系寫具體,如a b c{}

常用樣式

尺寸

只有塊級元素才能設(shè)置尺寸。

如果要對某個(gè)行內(nèi)元素設(shè)置尺寸,需要先將其轉(zhuǎn)換為塊級元素。

相關(guān)樣式名值舉例
widthpx/百分比/vwwidth:100px/50%/30vw;
heightpx/百分比/vhheight:100px/50%/30vh;

背景background

樣式名作用值
background-color背景色顏色的單詞、十進(jìn)制RGB、十六進(jìn)制RGB
background-image背景圖url(圖片路徑)
background-size背景圖片尺寸cover覆蓋、百分比。
cover會完全將區(qū)域覆蓋。100%會完整顯示圖片。
background-position背景圖片位置10px表示同時(shí)向下和向右移動10px
background-repeat背景圖片是否重復(fù)默認(rèn)重復(fù)
no-repeat不重復(fù)
repeat-x表示x軸重復(fù)
repeat-y表示y軸重復(fù)
background-attachment背景圖片固定fixed表示將背景圖片固定,不隨滾動條滾動
background背景樣式簡寫可以同時(shí)設(shè)置以上多個(gè)參數(shù),如
background:#f00 url(圖片地址) no-repeat center
表示圖片能加載則顯示圖片,不能加載顯示背景色,背景圖不重復(fù),居中顯示

背景漸變

漸變色css代碼自動生成https://uigradients.com

background: linear-gradient(to 方向, 顏色1, 顏色2,顏色3...) 方向:left right top bottom background: linear-gradient(to right, #fdeff9, #ec38bc)

邊框border

邊框會"套"在元素外層,元素原本大小不變,最終所占頁面區(qū)域大小為元素大小+邊框?qū)挾?/p>

邊框相關(guān)樣式作用值
border-style邊框線條樣式solid、double、dashed、dotted
border-width邊框?qū)挾?/td>px
border-color邊框顏色顏色的三種寫法
border同時(shí)設(shè)置所有邊框線條、寬度和顏色border:1px solid red
border-方向-樣式某方向的style或width或color,方向?yàn)閘eft、right、top、bottomborder-left-color:red
border-方向同時(shí)設(shè)置某邊框線條、寬度和顏色border-top:1px dotted blue;
border-上下方向-左右方向-radius設(shè)置某個(gè)方向的邊框?yàn)閳A角。
border-radius同時(shí)設(shè)置四個(gè)角為圓角。如果正方形,值為邊長的一半,則為圓形
outline輪廓。input文本框默認(rèn)獲得焦點(diǎn)時(shí),會顯示一個(gè)輪廓,通常設(shè)置為none去掉輪廓
border-collapse合并相鄰邊框。通常用于合并表格中的td的邊框。表格{border-collapse:collapse}

字體

樣式名作用值
font-size字體大小像素。默認(rèn)16px,最小12px
font-weight字體粗細(xì)lighter細(xì),bolder粗
font-family字體字型默認(rèn)微軟雅黑

文本

樣式名作用值
color文本顏色顏色的三種寫法
text-decoration文本修飾underline下劃線 line-through刪除線 overline上劃線
通常給頁面中的所有a標(biāo)簽設(shè)置text-decoration:none去掉a標(biāo)簽?zāi)J(rèn)的下劃線
text-align文本對齊方式默認(rèn)left左對齊,right右對齊,center居中
line-height行高設(shè)置為與文字相同大小時(shí),行間距為0。"垂直居中"時(shí),將行高設(shè)置為容器高度。
text-indent首行縮進(jìn)根據(jù)文字大小設(shè)置縮進(jìn)的像素。如默認(rèn)文字16px,首行縮進(jìn)2個(gè)字符,則設(shè)置為32px;
text-shadow文本陰影顏色 水平位置 垂直位置 模糊程度。如#000 4px 5px 3px表示水平向右4px,垂直向下5px,模糊3px
letter-spacing字符間距像素
word-break英文換行方式默認(rèn)break-word以單詞為單位換行,不會拆分單詞。
break-all以字母為單位換行,會拆分單詞。

列表

樣式名作用值
list-style-type設(shè)置列表li前的標(biāo)記通常設(shè)置為none去除標(biāo)記
list-style-position設(shè)置列表li前的標(biāo)記的位置默認(rèn)outside,標(biāo)記位于li之外;inside表示標(biāo)記位于li之中
list-style-image設(shè)置列表li前的標(biāo)記為圖片url(圖片地址)

鼠標(biāo)樣式cursor

值效果
pointer指示鏈接的指針(手)
move可移動的十字箭頭
help帶問號的箭頭
progress帶載入的箭頭
wait載入狀態(tài)
crosshair十字線
text光標(biāo)

偽類

表示某個(gè)元素的某種狀態(tài)

用于對某些元素在不同的狀態(tài)下呈現(xiàn)不同的效果

如a標(biāo)簽有訪問前、懸停時(shí)、按下時(shí)、訪問后四種狀態(tài)對應(yīng)四個(gè)偽類

a標(biāo)簽的偽類作用
a:link未訪問時(shí)
a:hover鼠標(biāo)懸停
a:active鼠標(biāo)按下
a:visited訪問后

:hover可以適用于很多標(biāo)簽,如#xx:hover,表示鼠標(biāo)懸停在id為xx的元素上時(shí)

追加內(nèi)容,通過context屬性編輯追加的內(nèi)容,同時(shí)可以設(shè)置其他樣式。

在某個(gè)元素之前或之后插入內(nèi)容說明
:after之后
:before之前
<!DOCTYPE html> <html><head><style>p:after{content:"追加的內(nèi)容";color:red;xx:xx;}</style></head><body><p>My name is Donald</p><p>I live in Ducksburg</p></body> </html>

顯示方式display

控制元素的類型或是否顯示。

值作用
block將元素設(shè)置為塊級元素,這樣元素就能獨(dú)占一行,能設(shè)置尺寸
inline將元素設(shè)置為行內(nèi)元素,這樣元素占一行中的一部分,不能設(shè)置尺寸
inline-block將元素設(shè)置為行內(nèi)塊,這樣元素占一行中的一部分,能設(shè)置尺寸
none將元素不顯示,不保留元素位置

浮動float

讓某個(gè)元素脫離原本的位置,朝某個(gè)方向?qū)R

值作用
left向左浮動
right向右浮動
none清除浮動

float:left和display:inline-block的區(qū)別

相同點(diǎn):都能讓多個(gè)塊級元素成為行內(nèi)塊。

display:inline-block

多個(gè)元素最終位于同一行內(nèi),可以設(shè)置尺寸,元素以下線對齊,保留該行位置,保留元素間的縫隙,后續(xù)元素為新的一行

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-J70SoTSw-1681376355475)(HTML&CSS&JS&JQuery.assets/image-20230330113545743.png)]

float:left

多個(gè)元素最終位于同一行內(nèi),可以設(shè)置尺寸,元素以上線對齊,不保留該行位置,不保留元素間的縫隙,后續(xù)元素會緊鄰

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-qtSbPbDX-1681376355476)(0413前端部分/CSS.assets/image-20230330113726245.png)]

盒子模型

頁面中的所有塊級元素,都是一個(gè)"盒子",每個(gè)"盒子"由元素自身、內(nèi)邊距padding、邊框border、外邊距marjin組成。

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-cTJuR6Lu-1681376355476)(0413前端部分/CSS.assets/image-20230330142609174.png)]

邊框border:元素外的一圈

內(nèi)邊距padding:邊框與元素自身之間的距離

外邊距marjing:元素A的邊框與元素B的邊框之間的距離

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-1jMweK0x-1681376355476)(0413前端部分/CSS.assets/image-20230330143014516.png)]

盒子模型相關(guān)樣式作用
padding內(nèi)邊距。1個(gè)參數(shù)表示同時(shí)設(shè)置4個(gè)方向。2個(gè)參數(shù)表示上下 左右。3個(gè)參數(shù)表示上 左右 下。4個(gè)參數(shù)表示上 右 下 左順時(shí)針。
margin外邊距。1個(gè)參數(shù)表示同時(shí)設(shè)置4個(gè)方向。2個(gè)參數(shù)表示上下 左右。3個(gè)參數(shù)表示上 左右 下。4個(gè)參數(shù)表示上 右 下 左順時(shí)針。如果值設(shè)置為auto,表示自動將所在的容器剩余距離除以2。
padding-方向某個(gè)方向的內(nèi)邊距。方向可以是left、right、top、bottom
margin-方向某個(gè)方向的外邊距。

一個(gè)元素的所占位置是外邊距+邊框+內(nèi)邊距+元素自身大小。

如果讓某個(gè)塊級元素居中,使用margin:上下距離 auto;

盒子模型陰影

元素{box-shadow:#000 4px 4px 4px; }

溢出overflow

處理子元素超出父元素的部分

值作用
visible默認(rèn),溢出部分顯示
hidden溢出部分隱藏
scroll溢出部分使用滾動條控制

定位position

將元素以像素為單位調(diào)整位置

值含義作用
fixed固定定位讓元素固定在頁面的某個(gè)位置,不會頁面的滾動而改變位置。
absulote絕對定位
relative相對定位

配合定位使用樣式

作用值
left元素距離頁面左邊界的左右距離正值向右,負(fù)值向左
top元素距離頁面上邊界的上下距離正值向下,負(fù)值向上
right元素距離頁面右邊界的左右距離正值向左,負(fù)值向右
bottom元素距離頁面下邊界的上下距離正值向上,負(fù)值向下

文檔流

頁面中每個(gè)元素默認(rèn)都有自己的位置,這個(gè)位置稱為文檔流。

如果某個(gè)元素脫離文檔流,就會失去它原本所占的位置,后續(xù)元素就會頂替其位置。

可以通過浮動float固定定位positon:fixed絕對定位positon:absolute讓元素脫離文檔流。

脫離文檔流后,通過改變left、right、top和bottom移動其位置。

固定定位fixed

讓某個(gè)元素脫離文檔流,默認(rèn)根據(jù)頁面的四個(gè)邊界進(jìn)行定位。

絕對定位absolute

讓某個(gè)元素脫離文檔流,根據(jù)已定位的父元素進(jìn)行定位。如果沒有已定位的父元素,會根據(jù)body定位。

相對定位relative

元素不會脫離文檔流,根據(jù)它原本的位置進(jìn)行定位,定位原點(diǎn)是元素本身的位置。

層疊z-index

對于已定位的元素,可以通過z-index調(diào)整層疊順序,值是一個(gè)數(shù)字,越大離眼睛越近。

#md1{position:relative; z-index:10; } #md2{position:relative; z-index:0; }

不透明度opacity

設(shè)置某個(gè)元素的不透明度,0~1之間的小說表示不透明度。1完全不透明,0完全透明。

如果只是定義背景透明時(shí),使用rgba(red,green,blue,alpha),alpha使用

div{/*讓div中的所有內(nèi)容都半透明,如文字*/background-color:#000;opacity:0.5;/*讓div背景半透明,其中的內(nèi)容不受影響*/background-color:rgba(0,0,0,0.5); }

轉(zhuǎn)換transform

改變元素的狀態(tài),如旋轉(zhuǎn)、移動、縮放等

rotate(30deg)順時(shí)針2D旋轉(zhuǎn)30度
rotateX/Y/Z(30deg)沿X/Y/Z軸3D旋轉(zhuǎn)30度
translateX/Y(50px)朝X或Y軸平移50像素
translate(10px,30px)朝右移動像素px,下移動30像素
scale(1.5)縮放1.5倍

以上所有效果可以通過transform:效果1 效果2 … 同時(shí)設(shè)置

transform: rotate(30deg) translateX(100px) scale(1.2)

過渡transition

設(shè)置某個(gè)轉(zhuǎn)換效果完成所需的時(shí)間等參數(shù)

相關(guān)樣式作用
transition-duration:3s轉(zhuǎn)換所需時(shí)間
transition-delay: 2s延時(shí)生效
transition-timing-function:linear時(shí)間函數(shù),linear表示勻速
transition:4s 1s linear在1s后,勻速在4s內(nèi)完成過渡

自定義動畫animation

1.定義動畫的關(guān)鍵幀

@keyframes 動畫名{0%{/*該階段的樣式*/樣式名:;}25%{}50%{}75%{}100%{} }

2.給某個(gè)元素設(shè)置animation樣式

#xxx{/*指定動畫名*/animation-name:動畫名;/*動畫執(zhí)行時(shí)間*/animation-duration:3s;/*延時(shí)*/animation-delay:3s;/*動畫執(zhí)行次數(shù) infinite無限*/animation-iteration-count:4;/*動畫時(shí)間函數(shù) linear勻速 ease-in ease-out ease-in-out*/animation-timing-function:linear;/*簡寫 只寫一個(gè)時(shí)間表示用時(shí) 寫兩個(gè)時(shí)間表示第一個(gè)是用時(shí),第二個(gè)是延時(shí)*/animation:動畫名 5s 2s infinite linear; } animation相關(guān)樣式作用
animation-name:動畫名執(zhí)行指定動畫
animation-duration:3s動畫執(zhí)行時(shí)間
animation-delay:3s動畫延時(shí)時(shí)間
animation-iteration-count:3動畫執(zhí)行次數(shù),infinite表示無限
animation-timing-function:linear動畫執(zhí)行時(shí)間函數(shù),linear表示勻速
animation:動畫名 5s 2s簡寫。只寫一個(gè)時(shí)間表示用時(shí) 寫兩個(gè)時(shí)間表示第一個(gè)是用時(shí),第二個(gè)是延時(shí)

濾鏡filter

<div class="img_filter"><div style="filter: grayscale(100%);">灰度grayscale(100%)</div><div style="filter: blur(2px);">模糊程度blur(2px)</div><div style="filter: brightness(50%);">亮度brightness(50%)</div><div style="filter: contrast(150%);">對比度contrast(150%)</div><div style="filter: hue-rotate(180deg);">色相旋轉(zhuǎn)hue-rotate(15deg)</div><div style="filter: saturate(300%);">飽和度saturate(300%)</div><div style="filter: sepia(100%);">深褐色sepia(100%)</div><div style="filter: invert(100%);">顏色反轉(zhuǎn)invert(100%)</div><div style="filter: contrast(150%) saturate(150%) hue-rotate(30deg)">重疊濾鏡</div> </div>

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-61BcMTcm-1681376355476)(0413前端部分/CSS.assets/image-20230403101926444.png)]

作業(yè)

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-zphzwqoF-1681376355477)(0413前端部分/CSS.assets/image-20230329171618212.png)]

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-GzJJHINB-1681376355477)(CSS.assets/image-20230329171601926.png)]

JavaScript

1995年網(wǎng)景公司推出,簡稱為JS,

是一門弱類型的面向?qū)ο蟮慕忉屝湍_本語言。

弱類型:沒有數(shù)據(jù)類型的限制

解釋型:無需編譯,通過解釋器解釋運(yùn)行,瀏覽器就是一個(gè)JS解釋器

script腳本:按指令依次執(zhí)行

JS的作用

HTML用于定義頁面的內(nèi)容。

CSS用于控制頁面的外觀和樣式。

JS用于控制頁面的行為。

  • 可以在頁面中控制任意元素
  • 可以在頁面中動態(tài)嵌入元素
  • 可以操作瀏覽器
  • 可以與用戶進(jìn)行交互

JS寫在哪里

寫在script標(biāo)簽中

script標(biāo)簽是一個(gè)雙標(biāo)簽,可以放在頁面中的任意位置。

<!DOCTYPE html> <html><head><meta charset="utf-8" /><!--寫在head中時(shí),通常用于導(dǎo)入js文件--><script></script><title></title></head><body><!-- 通常將JS的代碼寫在body標(biāo)簽結(jié)束之前,保證頁面中的元素加載完成 --><script>// js代碼</script></body></html>

寫在某個(gè)標(biāo)簽的某個(gè)事件中

通常用于調(diào)用寫好的js方法

<!DOCTYPE html> <html><head><meta charset="utf-8" /><title></title></head><body><button onclick="alert('hello');">點(diǎn)擊</button></body></html>

寫在一個(gè)獨(dú)立的js文件中

1.新建一個(gè).js文件,在其中編寫js代碼

alert("hello");

2.在頁面中通過script標(biāo)簽導(dǎo)入

<body><script src="xxx.js"></script> </body>

JS中輸出的方式

控制臺輸出

console.log(內(nèi)容);

提示框輸出

alert(內(nèi)容);

頁面輸出

document.write(內(nèi)容);

JS的組成

ECMAScript

簡稱ES,是JS的標(biāo)準(zhǔn),也是JS的核心語法。

BOM

瀏覽器對象模型,用于操作瀏覽器。

DOM

文檔對象模型,用于操作元素。

ECMAScript核心語法

數(shù)據(jù)類型

原始類型

JS中的原始類型說明
數(shù)值型number表示任意數(shù)字
字符串string用單引號或雙引號引起來的都是字符串
布爾型booleantrue/false
未定義undefined當(dāng)某個(gè)變量沒有聲明或沒有值時(shí)
空null某個(gè)引用類型變量通過null設(shè)置為空

引用類型

如對象、數(shù)組、函數(shù)等都是引用類型

定義變量

var/let 變量名; var name; var age; let sex;

標(biāo)識符的命名規(guī)則

  • 由字母、數(shù)字、下劃線和$符號組成
  • 不能以數(shù)字開頭
  • 不能使用js中的關(guān)鍵字

變量的初始化

//先定義后負(fù)值 var name; name="Tom"; //定義的同時(shí)賦值 var age=20; //同時(shí)定義多個(gè) var a,b,c;

運(yùn)算符

js中的boolean類型,0可以表示false,非0可以表示true。

默認(rèn)true為1,可以用true或false當(dāng)做數(shù)字來運(yùn)算。

  • 算術(shù)

    + - * / %+ 兩端如果有一段是字符串,作為拼接使用 + 兩端都是數(shù)值,作為相加使用除+外,其余符號都能計(jì)算字符串
  • 關(guān)系

    > < >= <= != == 用法同java,比較結(jié)果為boolean類型 == 比較值是否相同,不比較數(shù)據(jù)類型。 如123=="123"結(jié)果為true=== 比較值和數(shù)據(jù)類型是否同時(shí)相同。 如123==="123"結(jié)果為false123===123結(jié)果為true !== 比較值和數(shù)據(jù)類型是否同時(shí)不同。 如"123"!==123結(jié)果為true
  • 邏輯

    && || ! 用法同java
  • 賦值和復(fù)合賦值

    = += -= *= /= %=a*=b+c相當(dāng)于a=a*(b+c) 符號兩端當(dāng)做整體運(yùn)算后賦值給符號左側(cè)變量
  • 自增自減

    ++ -- 符號在前,先+1-1后使用 符號在后,先使用后再+1-1如果獨(dú)立成行,都為+1-1 var num=1; num++; ++num; console.log(num);//3var i=10; var res=i-- - --i; //10 - 8 i最終為8
  • 條件

    表達(dá)式1?表達(dá)式2:表達(dá)式3判斷表達(dá)式1的結(jié)果,結(jié)果為true,執(zhí)行表達(dá)式2,結(jié)果為false執(zhí)行表達(dá)式3

條件語句

if語句

js中的if語句條件可以是boolean值,也可以是一個(gè)數(shù)字(0false,非0true)

//單分支 if(){} //雙分支 if(){}else{}//多分支 if(){}else if(){}//嵌套 if(){if(){} }else{if(){} }

switch語句

//可以是任意類型 var opt; switch(opt){case 1:break;case "abc":break;case true:break; }

循環(huán)語句

while

while(){}

do-while

do{}while();

for

for(;;){}

break和continue

continue停止本次循環(huán),執(zhí)行下一次循環(huán)。

break停止所有循環(huán)。

JS中的本地對象

數(shù)組Array

JS中數(shù)組類似于Java中的ArrayList,

  • 數(shù)組定義時(shí)無需指定大小,數(shù)組長度由賦值時(shí)的最大索引決定
  • 數(shù)組可以保存不同類型的數(shù)據(jù)
  • 沒有給某個(gè)索引賦值時(shí),默認(rèn)值為undefined

定義數(shù)組

var 數(shù)組名 = new Array(); var 數(shù)組名 = [];

數(shù)組賦值和讀取

//定義數(shù)組 var list = new Array(); // 數(shù)組賦值 list[0]=123; list[3]="helo"; list[10]=true; // 數(shù)組大小為最大索引+1 console.log(list.length); // 讀取數(shù)組中的元素 console.log(list[0]); console.log(list[3]); console.log(list[10]); // 默認(rèn)沒有給某個(gè)索引賦值時(shí),是undefined console.log(list[1]);

數(shù)組遍歷

//定義數(shù)組 var list = new Array(); // 數(shù)組賦值 list[0]=123; list[3]="helo"; list[10]=true; //普通for循環(huán)遍歷,遍歷每個(gè)索引 for(var i=0;i<list.length;i++){console.log(list[i]); } console.log("-----------------"); // 增強(qiáng)for循環(huán)遍歷,遍歷不是undefined的元素 var size=0; //index表示賦值的索引 for(var index in list){size++;console.log(list[index]); } console.log(size);

數(shù)組初始化

var list1 = new Array(元素1,元素2...); var list2 = [元素1,元素2...];

數(shù)組中的方法

常用方法作用返回值
reverse()反轉(zhuǎn)數(shù)組中的元素反轉(zhuǎn)后的數(shù)組
sort()對數(shù)組中的元素按字母表順序排序排序后的數(shù)組
sort(function(a,b){return a-b})按指定函數(shù)排序,返回負(fù)數(shù)升序,正數(shù)降序排序后的數(shù)組
pop()刪除最后一個(gè)元素被刪除的元素
push(obj…)添加n個(gè)元素到數(shù)組末尾新數(shù)組的長度
shift()刪除第一個(gè)元素被刪除的元素
unshift(obj…)添加n個(gè)元素到數(shù)組開頭新數(shù)組的長度
fill(obj)使用obj填充數(shù)組填充后的數(shù)組
splice(index)移除[index,數(shù)組.length)的元素被移除的元素?cái)?shù)組
splice(index,count)從index開始移除count個(gè)元素被移除的元素?cái)?shù)組
以上方法在調(diào)用后,都會影響原數(shù)組
方法名作用返回值
indexOf(元素)得到指定元素第一次出現(xiàn)的索引索引,沒有返回-1
lastIndexOf(元素)得到指定元素最后一次出現(xiàn)的索引索引,沒有返回-1
concat(元素)將數(shù)組拼接指定元素拼接后的新數(shù)組
join(字符)將數(shù)組中的元素使用字符拼接為字符串拼接后的返回值
slice(index)從index開始截取至末尾的元素截取后的元素?cái)?shù)組
slice(start,end)截取[start,end)范圍內(nèi)的元素截取后的元素?cái)?shù)組
map(方法名)讓數(shù)組中的每個(gè)元素執(zhí)行指定的方法執(zhí)行方法后的數(shù)組
以上方法在調(diào)用后,不會影響原數(shù)組

日期Date

// 創(chuàng)建當(dāng)前日期對象 var now = new Date();// 得到年份 var year = now.getFullYear(); console.log(year); // 得到月份(0-11表示1-12月) var month = now.getMonth(); console.log(month); // 得到日期 var day = now.getDate(); console.log(day);document.write("<h1>" + year + "年" + (month + 1) + "月" + day + "日</h1>"); // 得到時(shí)分秒 console.log(now.getHours()); console.log(now.getMinutes()); console.log(now.getSeconds());// 得到從1970/1/1至今經(jīng)過了多少毫秒 console.log(now.getTime()); // 以上方法都有對應(yīng)的set方法用于設(shè)置指定值// 得到date的日期部分 console.log(now.toDateString()); // 得到date的時(shí)間部分 console.log(now.toTimeString()); // 將date轉(zhuǎn)換為本地日期格式的字符串 document.write("<br>"+now.toLocaleDateString()) document.write("<br>"+now.toLocaleTimeString()) document.write("<br>"+now.toLocaleString())

字符串

JS中的字符串,是一個(gè)字符數(shù)組。

使用雙引號或單引號或new String()定義字符串。

可以通過下標(biāo)訪問字符串中的某個(gè)字符。

常用屬性和方法說明
length得到字符串長度
trim()/trimLeft()/trimRight()去除首尾/左/右空格
toUpperCase()/toLowerCase()轉(zhuǎn)換大寫/小寫
sub()/sup()/bold()/italics()文字下標(biāo)/上標(biāo)/加粗/傾斜
charAt(index)得到index對應(yīng)的字符
indexOf(string)/lastIndexOf(string)得到string第一次/最后一次出現(xiàn)的索引,沒有返回-1
substring(index)/substring(from,to)截取index至末尾/截取[from,to)范圍的字符
substr(index)/substr(index,length)截取index至末尾/截取index起length個(gè)字符
split(string)根據(jù)指定內(nèi)容切分字符串,得到字符串?dāng)?shù)組
replace(oldStr,newStr)替換第一次出現(xiàn)的oldStr為newStr
replaceAll(oldStr,newStr)替換全部的oldStr為newStr
startsWith(str)是否以str開頭
endsWith(str)是否以str結(jié)尾
includes(str)判斷是否包含str

正則表達(dá)式

一套自定義規(guī)則,用于檢索、修改滿足條件的字符串。

//JS中定義正則表達(dá)式 var regex = /規(guī)則/; //驗(yàn)證該字符串是否滿足規(guī)則 regex.test(字符串); 常用規(guī)則說明
/a/檢索字母a
/abc|hello/檢索abc或hello整體單詞
/a|b|c/檢索a或b或c
/[abc]/檢索a或b或c
/[^abc]/檢索除a或b或c之外的內(nèi)容
/[a-c]/檢索a到c之間的字母
\d檢索任意數(shù)字,等效于[0-9]
\D檢索任意非數(shù)字,等效于[^0-9]
\w檢索任意字母、數(shù)字、下劃線,等效于[0-9a-zA-Z_]
\W檢索非字母、數(shù)字、下劃線,等效于[^0-9a-zA-Z_]
\s檢索空格
\S檢索非空格
\d{3}檢索連續(xù)3個(gè)數(shù)字
\d{3,5}檢索最少3個(gè),最多5個(gè)連續(xù)數(shù)字
\d{3,}檢索最少3個(gè)連續(xù)數(shù)字
^是否以指定內(nèi)容開頭
$是否以指定內(nèi)容結(jié)尾
[a-z]+檢索至少1個(gè)小寫字母,相當(dāng)于[a-z]{1,}
[a-z]?檢索0個(gè)或1個(gè)小寫字母,相當(dāng)于[a-z]{0,1}
[a-z]*檢索0個(gè)或多個(gè)小寫字母,相當(dāng)于[a-z]{0,}
.檢索任意一個(gè)字符,如h.t表示hot或hat之類中間字符未知的情況
\.檢索符號.
g全局匹配,默認(rèn)情況下正則表達(dá)式只會匹配第一次滿足的內(nèi)容,g表示全文匹配
i忽略大小寫匹配

QQ郵箱的正則表達(dá)式

  • www.開頭,可有可無
  • qq號碼是非零開頭的5-10位數(shù)字
  • @qq.com結(jié)尾
  • 忽略大小寫

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-AIOO3kv1-1681376355477)(HTML&CSS&JS&JQuery.assets/image-20230404153817767.png)]

Math

JS中的Math類似于Java中的Math類,其中的方法可以直接通過Math調(diào)用。

常用方法作用
Math.random()生成[0,1)內(nèi)的隨機(jī)數(shù)
Math.abs(number)number的絕對值
Math.floor(number)向下取整
Math.ceil(number)向上取整
Math.round(number)四舍五入
Math.sqrt(number)number開平方
Math.cbrt(number)number開立方
Math.pom(a,b)a的b次冪
Math.max(a,b…)/Math.min(a,b…)得到參數(shù)之間的最大/最小值

得到指定范圍的隨機(jī)數(shù)

  • [a,b)

    /* 0<= x < 1 *7 0<= x < 7 +3 3<= x < 10 */ var num=Math.floor(Math.random()*Math.abs(a-b))+Math.min(a,b);
  • [a,b]

    // [a,b] var num = Math.floor(Math.random() * (Math.abs(a - b) + 1)) + Math.min(a, b);

函數(shù)function

類似于java中的方法。是一段獨(dú)立的代碼,可以完整一件事情。

定義的函數(shù)可以被重復(fù)調(diào)用,函數(shù)能減少重復(fù)代碼,達(dá)到代碼復(fù)用的效果。

調(diào)用函數(shù)

通過.操作符號,由對象名或類名或直接調(diào)用。

var now=new Date(); now.getMonth();//通過對象調(diào)用Math.random();//通過類名調(diào)用parseInt("123");//直接調(diào)用

全局函數(shù)

JS中可以直接調(diào)用的函數(shù)

常用全局函數(shù)
parseInt(string)/parseFloat(string)將string轉(zhuǎn)換為number,參數(shù)必須以數(shù)字開頭,轉(zhuǎn)換后只保留數(shù)字部分,如果無法轉(zhuǎn)換結(jié)果為NaN(not a number)
Number(string)將純數(shù)字字符串轉(zhuǎn)換為number
isNaN(obj)obj is not a number。“obj不是一個(gè)數(shù)字”,如果結(jié)果為true,表示obj不是數(shù)字,結(jié)果為false,表示obj是數(shù)字
eval(string)計(jì)算一個(gè)可計(jì)算的字符串。如"3+2*5",可以通過該函數(shù)計(jì)算出結(jié)果

自定義函數(shù)

function 函數(shù)名(形參名1,形參名2...){return 函數(shù)體; }var 函數(shù)名=new function(形參名1,形參名2...){//函數(shù)體 } //通過函數(shù)名調(diào)用該函數(shù)var 函數(shù)名=function(形參名1,形參名2...){//函數(shù)體 } //通過函數(shù)名調(diào)用該函數(shù)var 函數(shù)名=(形參名1,形參名2...)=>{//函數(shù)體 } //通過函數(shù)名調(diào)用該函數(shù)

函數(shù)的分類

  • 無參數(shù)無返回值

    function sayHello(){alert("hello world"); }
  • 有參數(shù)無返回值

    function getAge(birthYear){var age=new Date().getFullYear()-birthYear;alert(age); }
  • 無參數(shù)有返回值

    function getNowMonth(){return new Date().getMonth()+1; }
  • 有參數(shù)有返回值

    function getRandomNum(min,max){return Math.floor(Math.random()*Math.abs(max-min))+Math.min(min,max); }
  • 匿名函數(shù)

    頁面中的元素.事件=function(參數(shù)){函數(shù)體; }頁面中的元素.事件=(參數(shù))=>{函數(shù)體; }

BOM

Browser Object Model 瀏覽器對象模型

可以通過JS獲取瀏覽器對象后訪問信息和控制瀏覽器的行為。

彈框

  • 警告框,帶有確認(rèn)按鈕和提示文字

    //window表示瀏覽器對象 window.alert("提示文字"); //通常簡寫為 alert("提示文字");
  • 輸入框,帶有確認(rèn)和取消按鈕、輸入框和提示文字,點(diǎn)擊確認(rèn)后返回輸入的內(nèi)容

    window.prompt("提示文字"); //或 prompt("提示文字");
  • 確認(rèn)框,帶有確認(rèn)和取消按鈕和提示文字,點(diǎn)擊確認(rèn)返回true,取消返回false

    window.confirm("提示文字"); //或 confirm("提示文字");

window對象

表示瀏覽器窗口對象,可以獲取當(dāng)前窗口信息,控制該窗口的行為。

常用屬性和方法作用
window.innerWidth
window.innerHeight
獲取瀏覽器當(dāng)前窗口的可視區(qū)域?qū)捀?/td>
window.screen獲取當(dāng)前screen對象,包含了屏幕相關(guān)信息
window.location獲取當(dāng)前l(fā)ocation對象,包含了瀏覽器地址欄相關(guān)信息
window.history獲取當(dāng)前history對象,包含了瀏覽器歷史記錄相關(guān)信息
[window.]alert(“提示文字”)
[window.]confirm(“提示文字”)
[window.]prompt(“提示文字”)
警告框
確認(rèn)框
輸入框
var wid=window.open(“路徑”)彈出新窗口打開指定路徑,返回打開的窗口對象
window.close()
wid.close()
關(guān)閉本窗口/關(guān)閉指定窗口
var myTimeout=[window.]setTimeout(函數(shù),毫秒)在指定的毫秒后執(zhí)行一次函數(shù),返回該延時(shí)裝置對象
[window.]clearTimeout(myTimeout)關(guān)閉指定的延時(shí)裝置
var myInterval=[window.]setInterval(函數(shù),毫秒)在指定的毫秒后重復(fù)執(zhí)行函數(shù),每次執(zhí)行都會間隔指定時(shí)間,返回該間隔裝置對象
[window.]clearInterval(myInterval)關(guān)閉指定的間隔裝置
[window.]localStorage獲取瀏覽器存儲器對象
[window.]sessionStorage獲取瀏覽器會話存儲器對象
[]可以省略,如alert()、setInterval()等

screen對象

屬性作用
screen.width當(dāng)前屏幕的寬度
screen.heigth當(dāng)前屏幕可用高度
screen.availWidth當(dāng)前屏幕去除任務(wù)欄后的可用寬度
screen.availHeight當(dāng)前屏幕去除任務(wù)欄后的可用高度

location對象

常用屬性和方法作用
location.href讀取或者設(shè)置瀏覽器當(dāng)前地址欄的信息
location.assign(“地址”)設(shè)置瀏覽器跳轉(zhuǎn)到指定地址
location.replace(“地址”)將當(dāng)前瀏覽器地址替換為指定地址,無法后退
location.reload()刷新頁面
location.host獲取當(dāng)前地址的主機(jī)名+端口號
location.hostname獲取當(dāng)前地址的主機(jī)名
location.port獲取當(dāng)前地址的端口號
location.protocol獲取當(dāng)前地址的協(xié)議名
http://localhost:8080 http是協(xié)議protocol localhost是主機(jī)名hostname 8080是端口號port 整體是一個(gè)站點(diǎn)的名稱

localStorage對象

常用方法作用
localStorage.setItem(key,value)在瀏覽器本地存儲器中保存一組鍵值對,在同一個(gè)站點(diǎn)下,不同頁面之間可以共享
localStorage.getItem(key)在瀏覽器本地存儲器中獲取某個(gè)鍵的值

history對象

常用方法作用
history.forward()前進(jìn)
history.back()后退
history.go(1)/history.go(-1)前進(jìn)/后退

DOM

Document Object Model 文檔對象模型

  • 每個(gè)頁面就是一個(gè)文檔樹document tree
  • 頁面中的每個(gè)標(biāo)簽都是這個(gè)樹的節(jié)點(diǎn)node
  • 根節(jié)點(diǎn)是html
  • document對象是DOM中的核心對象,表示當(dāng)前頁面對象
  • 通過document對象獲取頁面中的節(jié)點(diǎn)后,對其進(jìn)行操作(設(shè)置文本、樣式等)

獲取節(jié)點(diǎn)

獲取節(jié)點(diǎn)的方式說明
document.getElementById(“某個(gè)標(biāo)簽的id名”)根據(jù)id獲取唯一的一個(gè)節(jié)點(diǎn)
document.getElementsByClassName(“某些標(biāo)簽的class名”)根據(jù)class獲取對應(yīng)的所有節(jié)點(diǎn)
document.getElementsByTagName(“某個(gè)標(biāo)簽名”)根據(jù)標(biāo)簽名獲取對應(yīng)的節(jié)點(diǎn)
document.getElementsByName(“某些標(biāo)簽的name名”)根據(jù)標(biāo)簽的name屬性名獲取對應(yīng)的節(jié)點(diǎn)
document.querySelector(“任意選擇器”)根據(jù)選擇器獲取第一個(gè)滿足條件的節(jié)點(diǎn)
document.querySelectorAll(“任意選擇器”)根據(jù)選擇器獲取所有滿足條件的節(jié)點(diǎn)

內(nèi)容操作

節(jié)點(diǎn).innerText

獲取或設(shè)置雙標(biāo)簽中的文本

//設(shè)置id為md的標(biāo)簽中的文本為xxx document.getElementById("md").innerText="xxx";//獲取id為md的標(biāo)簽中的文本 var text=document.getElementById("md").innerText; console.log(text);

節(jié)點(diǎn).innerHTML

能識別內(nèi)容中的HTML元素

//設(shè)置id為md的標(biāo)簽中的文本為xxx document.getElementById("md").innerHTML="xxx";//獲取id為md的標(biāo)簽中的文本 var text=document.getElementById("md").innerHTML; console.log(text);

區(qū)別

<p id="test1"></p> <p id="test2"></p><script>document.getElementById("test1").innerText="<h1>innerText</h1>";document.getElementById("test2").innerHTML="<h1>innerHTML</h1>"; </script>

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-DVAd17PC-1681376355478)(HTML&CSS&JS&JQuery.assets/image-20230406155922698.png)]

屬性操作

讀取或設(shè)置節(jié)點(diǎn)的某個(gè)屬性

常用屬性作用
節(jié)點(diǎn).value獲取或設(shè)置某個(gè)節(jié)點(diǎn)的value屬性,通常用于表單元素。
節(jié)點(diǎn).src獲取或設(shè)置某個(gè)節(jié)點(diǎn)的src屬性,如img標(biāo)簽
節(jié)點(diǎn).href獲取或設(shè)置某個(gè)節(jié)點(diǎn)的href屬性,如a標(biāo)簽
節(jié)點(diǎn).className獲取或設(shè)置某個(gè)節(jié)點(diǎn)的class屬性
節(jié)點(diǎn).checked獲取節(jié)點(diǎn)的選擇狀態(tài)
節(jié)點(diǎn).style獲取或設(shè)置某個(gè)節(jié)點(diǎn)的style屬性

樣式操作

修改單個(gè)樣式

節(jié)點(diǎn).style.樣式名=值;

樣式名是駝峰命名法,如設(shè)置背景色,css中為background-color,這里寫為backroundColor

修改多個(gè)樣式

節(jié)點(diǎn).style.cssText=“樣式名:值;樣式名:值;”

樣式名和css中相同

創(chuàng)建添加刪除節(jié)點(diǎn)

創(chuàng)建節(jié)點(diǎn)

創(chuàng)建的節(jié)點(diǎn)處于"游離狀態(tài)",需要將其掛載到某個(gè)節(jié)點(diǎn)中

document.createElement("標(biāo)簽名"); document.createElement("div");

添加節(jié)點(diǎn)

父節(jié)點(diǎn).appendChild(子節(jié)點(diǎn));var mydiv=document.createElement("div"); document.body.appendChild(mydiv);

刪除節(jié)點(diǎn)

父節(jié)點(diǎn).removeChild(子節(jié)點(diǎn));document.body.removeChild(mydiv);

獲取父節(jié)點(diǎn)

節(jié)點(diǎn).parentNode

獲取子節(jié)點(diǎn)

//獲取子節(jié)點(diǎn)的數(shù)組 父節(jié)點(diǎn).children //獲取第一個(gè)子節(jié)點(diǎn) 父節(jié)點(diǎn).firstChild //獲取最后一個(gè)子節(jié)點(diǎn) 父節(jié)點(diǎn).lastChild

事件

某個(gè)節(jié)點(diǎn)的某個(gè)行為,稱為這個(gè)節(jié)點(diǎn)的事件。

常用事件作用
onclick鼠標(biāo)單擊
onchange內(nèi)容改變
onfocus獲得焦點(diǎn)
onblur失去焦點(diǎn)
onmouseenter/onmouseover鼠標(biāo)移入
onmouseout/onmouseleave鼠標(biāo)移出
onmousemove鼠標(biāo)移動
onmousedown/onmouseup鼠標(biāo)按下/松開
oninput文本框輸入
onsubmit表單提交
鼠標(biāo)滾輪監(jiān)聽、鍵盤監(jiān)聽等
記住事件on后的單詞

給節(jié)點(diǎn)綁定事件

<body><button onclick="sayHello()">按鈕</button> </body><script>//節(jié)點(diǎn).事件=匿名函數(shù)按鈕.onclick=()=>{}//定義函數(shù)后,在標(biāo)簽的某個(gè)事件屬性中調(diào)用function sayHello(){} </script>

event對象

在某個(gè)匿名函數(shù)中傳入一個(gè)參數(shù),通常為e或event,就能監(jiān)聽函數(shù)對應(yīng)的事件

如在onmousexxx事件的函數(shù)中添加參數(shù)e,就能監(jiān)聽鼠標(biāo)狀態(tài)mouseevent。

節(jié)點(diǎn).事件=(e)=>{e用于監(jiān)聽該事件 } event對象常用的屬性和方法作用
e.clientX獲取當(dāng)前鼠標(biāo)的水平位置
e.clientY獲取當(dāng)前鼠標(biāo)的垂直位置
e.stopPropagation()阻止事件冒泡
e.preventDefault()阻止默認(rèn)事件,使用用return false

事件冒泡

文檔中的節(jié)點(diǎn)如果有重疊的情況,并且這些重疊的節(jié)點(diǎn)都有相同的事件。

默認(rèn)在子節(jié)點(diǎn)觸發(fā)事件時(shí),父節(jié)點(diǎn)也會觸發(fā)事件,這種情況稱為事件冒泡。

如果不希望出現(xiàn)這種情況,就需要阻止事件冒泡。

表單相關(guān)

表單中的元素通常都需要設(shè)置name屬性,除輸入框外,還需要設(shè)置value屬性。

所有的表單元素都可以通過value屬性獲取其值。

獲取表單

  • id、class、元素選擇器等
  • document.forms獲取頁面中的表單集合
<form id="form_id" class="form_class" name="form_name"></form><script>var form=document.getElementById("form_id");var form=document.getElementsByClassName("form_class")[0];var form=document.getElementsByName("form_name")[0];var form=document.forms()[0]; </script>

表單提交

表單.onsubmit()事件

阻止表單提交

在表單的提交事件中通過 return false 阻止提交

輸入框

文本框text、密碼框password、文本域textarea都屬于輸入框

獲取輸入框輸入內(nèi)容

var input=輸入框?qū)ο?span id="ozvdkddzhkzd" class="token punctuation">.value;

設(shè)置輸入框中的內(nèi)容

輸入框?qū)ο?span id="ozvdkddzhkzd" class="token punctuation">.value=;

單選按鈕、復(fù)選框

判斷是否選中

對象.checked獲取其選中狀態(tài),true表示選中,false表示未選中

獲取選中項(xiàng)的值

單選和復(fù)選都需要設(shè)置value屬性,再通過value獲取選中后的值

下拉菜單

添加選項(xiàng)

<select> </select><script>//方式一.創(chuàng)建option標(biāo)簽var opt1=document.createElement("option");//添加到select中select節(jié)點(diǎn).appendChild(opt1);//方式二.new Option();var opt2=new Option();//添加到select中select節(jié)點(diǎn).add(opt2); </script>

獲取選中項(xiàng)的值

獲取select的value就是獲取選中項(xiàng)的值。

option如果沒有設(shè)置value,select的value就是option中的文本,如果設(shè)置了value,select的value才是設(shè)置后的值

<select name="booktype" ><option value="1">小說</option><option value="2">漫畫</option><option value="3">雜志</option> </select><script>//獲取選中項(xiàng)的值var booktype=document.querySelector("select[name=booktype]").value; </script>

表單綜合練習(xí)

<!DOCTYPE html> <html><head><meta charset="utf-8"><title></title></head><body><form action="" method="post">用戶名:<input type="text" name="username" required /><br>密碼:<input type="password" name="pwd" placeholder="至少6位" /><span id="info"></span><br>性別:<input type="radio" name="sex" value="" checked /><input type="radio" name="sex" value="" /><br>愛好:<input type="checkbox" name="hobby" value="旅游">旅游<input type="checkbox" name="hobby" value="閱讀">閱讀<input type="checkbox" name="hobby" value="音樂">音樂<br><input type="checkbox" id="checkAll">全選<input type="checkbox" id="checkReverse">反選<br>職業(yè):<select id="job"><option>教師</option><option>醫(yī)生</option><option>律師</option></select><input type="text" placeholder="請輸入職業(yè)" id="newJob" /><br><input type="submit" id="sub" value="注冊" /></form><script>var pwdInput = document.querySelector("input[name=pwd]");//文本框失去焦點(diǎn)事件// pwdInput.οnblur=()=>{// 內(nèi)容發(fā)生改變事件// pwdInput.onchange = () => {// 輸入事件pwdInput.oninput = () => {if (pwdInput.value.length < 6) {document.getElementById("info").innerHTML = "<span style='color:red'>*至少輸入6位密碼</span>"} else {document.getElementById("info").innerHTML = "<span style='color:green'>√</span>"}}// 獲取所有的愛好復(fù)選框// document.getElementsByName("hobby")var hobbies = document.querySelectorAll("input[name=hobby]");// 獲取全選按鈕var checkAll = document.getElementById("checkAll");// 全選按鈕單擊事件checkAll.onclick = () => {// 遍歷所有的愛好復(fù)選框for (var i = 0; i < hobbies.length; i++) {// 讓愛好復(fù)選框的選中狀態(tài)改為全選按鈕的選中狀態(tài)hobbies[i].checked = checkAll.checked;}}// 獲取反選按鈕var checkReverse = document.getElementById("checkReverse");checkReverse.onclick = () => {// 遍歷所有的愛好復(fù)選框for (var i = 0; i < hobbies.length; i++) {// 讓愛好復(fù)選框的選中狀態(tài)改為自身的相反狀態(tài)hobbies[i].checked = !hobbies[i].checked;}}// 獲取文本框var newJob = document.getElementById("newJob");// 文本框失去焦點(diǎn)newJob.onblur = () => {if (newJob.value == "") {return;}if (confirm("確認(rèn)要添加嗎")) {//創(chuàng)建optionvar opt = document.createElement("option");// opt設(shè)置文本opt.innerText = newJob.value;//添加到select中document.querySelector("select").appendChild(opt);//清空文本框newJob.value = "";}}// 表單數(shù)據(jù)提交可以使用按鈕的單擊事件// document.getElementById("sub").onclick = () => {// 最好使用表單的提交事件 表單對象.onsubmit//頁面中獲取表單的方式:使用選擇器id、class、標(biāo)簽或document.forms獲取頁面中的所有表單,返回?cái)?shù)組document.forms[0].onsubmit = () => {//獲取輸入的內(nèi)容// document.getElementsByName("pwd")[0]if (pwdInput.value.length < 6) {//阻止表單自動跳轉(zhuǎn)return false;}// 獲取文本框輸入的值var name = document.querySelector("input[name=username]").value;var pwd = pwdInput.value;// 獲取單選按鈕選中的值,默認(rèn)選中一個(gè)選項(xiàng)后判斷另一個(gè)選項(xiàng)是否被選中var sex = document.getElementsByName("sex")[1].checked ? "女" : "男";//定義愛好數(shù)組var hobby = [];//獲取被選中的愛好var checkedHobby = document.querySelectorAll("input[name=hobby]:checked");for (var i = 0; i < checkedHobby.length; i++) {hobby.push(checkedHobby[i].value);}var job = document.getElementById("job").value;alert("用戶名:" + name + "\n密碼:" + pwd + "\n性別:" + sex + "\n愛好:" + hobby+"\n職業(yè):"+job);}</script></body> </html>

作業(yè)

  • 接收一個(gè)學(xué)生的5門成績,升序輸出,輸出最大值和平均值

  • 打印1-100以內(nèi)的質(zhì)數(shù)

  • 將當(dāng)前日期輸出為全中文的形式,如"2023/4/3"輸出為 “二零二三年四月三日”

    var cn=[“零”,“一”,“二”]; cn[2]+cn[0]+cn[2]+cn[3]

  • 動態(tài)表格

    [外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-V3nB7eOF-1681376355478)(HTML&CSS&JS&JQuery.assets/image-20230406180309757.png)]

  • 隨機(jī)點(diǎn)名

    [外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-hlxdoS0M-1681376355478)(0413前端部分/JavaScript.assets/image-20230406180420412.png)]

jQuery

jQuery是一個(gè)輕量級的javascript函數(shù)庫。

封裝了很多js的內(nèi)容,本質(zhì)還是javascript,是一個(gè).js文件。

作用

jQuery的宗旨:“write less,do more”,

意味著用更少的代碼去完成更多的事情。

  • 更方便地獲取文檔中的元素,對其進(jìn)行操作

  • 強(qiáng)大的選擇器

  • 支持鏈?zhǔn)綄懛?/p>

  • 封裝了ajax,更方便使用

    。。。

使用

1.下載jQuery.js文件,添加到項(xiàng)目中

  • 官網(wǎng)下載https://jquery.com/download/

    • 右鍵鏈接另存為下載

      [外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-8iAuo0Mv-1681376355479)(HTML&CSS&JS&JQuery.assets/image-20230410091802173-1681089809037-1681376038253.png)]

  • 使用HBuilder中自帶的創(chuàng)建

    • 在js目錄下右鍵新建.js文件

      [外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-V0yXeojD-1681376355479)(HTML&CSS&JS&JQuery.assets/image-20230410092031672-1681376038253.png)]

      [外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-NusnXNs5-1681376355479)(HTML&CSS&JS&JQuery.assets/image-20230410092128499-1681376038253.png)]

2.在頁面中導(dǎo)入jQuery.js文件

<!-- 導(dǎo)入jquery的js文件 --> <script src="js/jquery-3.6.4.min.js"></script>

3.在頁面中編寫jQuery代碼

同js的寫法,在script標(biāo)簽中編寫jQuery代碼

<!DOCTYPE html> <html><head><meta charset="utf-8" /><title></title><!-- 導(dǎo)入jquery的js文件 --><script src="js/jquery-3.6.4.min.js"></script><style>#md{width: 150px;height: 150px;background-color: skyblue;}</style></head><body><h1>點(diǎn)擊展開/隱藏</h1><div id="md"></div><script>// 編寫jquery代碼$("h1:eq(0)").click(() => {$("#md").toggle(1000);});</script></body> </html>

$符號沖突問題

在頁面中引入jquery后,$符號相當(dāng)于jQuery這個(gè)單詞,有特殊的含義。

如果頁面中引入了多個(gè)js函數(shù)庫,這些函數(shù)庫都需要使用 符號,就會出現(xiàn) 符號,就會出現(xiàn) 符號,就會出現(xiàn)沖突。

jQuery中提供了一個(gè)noConflict()函數(shù),用于釋放對$的使用權(quán)

//釋放$的使用權(quán),重新定義為jq代替$符號 var jq=$.noConfilict();jQuery("#md").text("xxx")//正常,原始寫法 $("#md").text("xxx")//無效,無法繼續(xù)使用$符號 jq("#md").text("xxx")//正常,jq當(dāng)做jQuery使用

文檔就緒函數(shù)

在js中

//文檔就緒事件 window.onload=()=>{//在頁面中的節(jié)點(diǎn)加載后執(zhí)行,只能定義一個(gè)該事件 }

在引入jquery后

//文檔就緒函數(shù) $(()=>{//在頁面中的節(jié)點(diǎn)加載后執(zhí)行,能定義多個(gè)該函數(shù) })

選擇器

基本選擇器

基本選擇器
$(“#id名”);id選擇器,根據(jù)標(biāo)簽的id名獲取單個(gè)節(jié)點(diǎn)
$(“.class名”)類選擇器,根據(jù)標(biāo)簽的class名獲取多個(gè)節(jié)點(diǎn)
$(“標(biāo)簽名”)元素選擇器,根據(jù)標(biāo)簽名獲取多個(gè)節(jié)點(diǎn)
$(“選擇器1,選擇器2…”)群組選擇器,根據(jù)各個(gè)選擇器獲取多個(gè)節(jié)點(diǎn)
$(“div#md”)獲取id為md的div節(jié)點(diǎn)

層次選擇器

層次選擇器
$(“#md空格*”)id為md的節(jié)點(diǎn)下的所有子節(jié)點(diǎn)。*表示所有節(jié)點(diǎn)。
$(“#md空格p”)id為md的節(jié)點(diǎn)下的所有p節(jié)點(diǎn)。
$(“#md>*”)id為md的節(jié)點(diǎn)下的第一層子節(jié)點(diǎn)。
$(“#md>p”)id為md的節(jié)點(diǎn)下的第一層p節(jié)點(diǎn)。
$(“#md+p”)id為md的節(jié)點(diǎn)后緊鄰的p節(jié)點(diǎn)
$(“#md~p”)id為md的節(jié)點(diǎn)之后同級的p節(jié)點(diǎn)

注意

  • $(“p .test”) 中間有空格,表示獲取p標(biāo)簽下class為test的標(biāo)簽

    <p><span class="test"></span><a class="test"></a><!--以上兩個(gè)節(jié)點(diǎn)都能獲取--> </p>
  • $(“p.test”) 中間無空格,表示獲取p標(biāo)簽中class為test的標(biāo)簽

    <p><span class="test"></span><p class="test"></p><!--只能獲取該節(jié)點(diǎn)--> </p>

過濾選擇器

普通過濾

$(“選擇器:特定單詞”)

普通過濾
$(“tr:odd”)奇數(shù)索引,得到索引1,3,5…
$(“tr:even”)偶數(shù)索引,得到索引0,2,4…
$(“tr:eq(3)”)得到指定索引的節(jié)點(diǎn),eq表示equals
$(“tr:lt(3)”)得到小于指定索引的節(jié)點(diǎn),lt表示less then
$(“tr:gt(3)”)得到大于指定索引的節(jié)點(diǎn),gt表示greater then
$(“td:nth-child(2n-1)”)得到所有奇數(shù)td。2n-1表示奇數(shù)
$(“tr:first”)得到所有的tr節(jié)點(diǎn)中的第一個(gè)節(jié)點(diǎn)
$(“tr:last”)得到所有的tr節(jié)點(diǎn)中的最后一個(gè)節(jié)點(diǎn)
$(“l(fā)i:first-child”)得到所有作為頭結(jié)點(diǎn)的li
$(“l(fā)i:last-child”)得到所有作為尾節(jié)點(diǎn)的li
$(“l(fā)i:not(:first)”)得到所有l(wèi)i中的非頭結(jié)點(diǎn)li

表單元素過濾

表單元素過濾
$(“:input”)得到所有的表單元素,包含input、select、textarea
$(“:text”)得到文本框
$(“:password”)得到密碼框
$(“:radio”)得到單選按鈕
$(“:checkbox”)得到復(fù)選框
$(“:checked”)得到被選中的單選按鈕或復(fù)選框
$(“:selected”)得到被選中的下拉菜單的option
( " : r e s e t " ) / (":reset")/ (":reset")/(“:submit”)得到重置/提交按鈕

屬性過濾

屬性過濾
$(“選擇器:not([屬性名])”)得到?jīng)]有指定屬性的節(jié)點(diǎn)
$(“選擇器[屬性名=值]”)得到指定屬性名為指定值的節(jié)點(diǎn)
$(“:text[name=username]”)得到name屬性為username的文本框
$(“:radio[name=sex]:checked”)得到name屬性為sex且被選中的單選按鈕
$(“:checkbox[name=hobby]:checked”)得到name屬性為hobby且被選中的復(fù)選框
$(“選擇器[屬性名^=值]”)得到指定屬性名以指定值開頭的節(jié)點(diǎn)
( " 選擇器 [ 屬性名 ("選擇器[屬性名 ("選擇器[屬性名=值]")得到指定屬性名以指定值結(jié)尾的節(jié)點(diǎn)
$("選擇器[屬性名1=值][屬性名2=值]")得到同時(shí)擁有屬性1和屬性2且指定值的節(jié)點(diǎn)
$(“選擇器[屬性名*=值]”)得到指定屬性包含指定值的節(jié)點(diǎn)
$(“選擇器[屬性名!=值]”)得到指定屬性名不為指定值的節(jié)點(diǎn)

內(nèi)容(文本)過濾

內(nèi)容過濾
$(“p:contains(hello)”)得到包含文本hello的p標(biāo)簽
$(“p:not(:contains(hello))”)得到不包含文本hello的p標(biāo)簽
$(“p:empty”)得到?jīng)]有任何文本的p標(biāo)簽

js對象(dom對象)和jquery對象

使用jquery中的選擇器獲取到的節(jié)點(diǎn),稱為jquery對象,只能使用jquery的方法操作節(jié)點(diǎn)。

使用js中原生的方式獲取到的節(jié)點(diǎn),稱為dom對象,只能使用js中的方法操作節(jié)點(diǎn)。

jquery對象和dom對象互轉(zhuǎn)

  • jquery對象轉(zhuǎn)換為dom對象

    jquery對象.get(0); jquery對象[0];
  • dom對象轉(zhuǎn)換為jquery對象

    $(dom對象);
<h1 id="title">一個(gè)標(biāo)題</h1><script src="js/jquery-3.4.1.min.js"></script> <script>// 通過js的方式獲取到的對象稱為dom對象var domObj = document.querySelector("#title");// 通過jquery的方式獲取到的對象稱為jquery對象var jqueryObj = $("#title");// dom對象只能使用js中的方式操作節(jié)點(diǎn)domObj.style.color = "red";// 無法通過使用對方的方式操作節(jié)點(diǎn)// jqueryObj.style.color = "blue";//無效// domObj.text("xxx");//無效jqueryObj.css("color","cadetblue");//jquery對象和dom對象的互轉(zhuǎn)//dom對象轉(zhuǎn)換為jquery對象 $(dom對象)$(domObj).text("xxxxx");// jquery對象轉(zhuǎn)換為dom對象 jquery對象[0]或jquery對象.get(0)jqueryObj[0].style.fontSize="20px";jqueryObj.get(0).innerText="hello"; </script>

操作節(jié)點(diǎn)

獲取、設(shè)置節(jié)點(diǎn)的內(nèi)容

常用函數(shù)
節(jié)點(diǎn).val()獲取某個(gè)節(jié)點(diǎn)的value屬性值,相當(dāng)于js中的 節(jié)點(diǎn).value
節(jié)點(diǎn).val(“值”)設(shè)置某個(gè)節(jié)點(diǎn)的value屬性值,相當(dāng)于js中的 節(jié)點(diǎn).innerText=“內(nèi)容”
節(jié)點(diǎn).text()獲取某個(gè)節(jié)點(diǎn)的文本,相當(dāng)于js中的 節(jié)點(diǎn).innerText
節(jié)點(diǎn).text(“內(nèi)容”)設(shè)置某個(gè)節(jié)點(diǎn)的內(nèi)容,相當(dāng)于js中的 節(jié)點(diǎn).innerText=“內(nèi)容”
節(jié)點(diǎn).html()獲取某個(gè)節(jié)點(diǎn)的內(nèi)容,相當(dāng)于js中的 節(jié)點(diǎn).innerHTML
節(jié)點(diǎn).html(“內(nèi)容”)設(shè)置某個(gè)節(jié)點(diǎn)的內(nèi)容,相當(dāng)于js中的 節(jié)點(diǎn).innerHTML=“內(nèi)容”

獲取、設(shè)置節(jié)點(diǎn)的樣式

常用函數(shù)
節(jié)點(diǎn).css(“樣式名”)獲取某個(gè)節(jié)點(diǎn)的某個(gè)樣式值
節(jié)點(diǎn).css(“樣式名”,“值”)設(shè)置某個(gè)節(jié)點(diǎn)的某個(gè)樣式
節(jié)點(diǎn).css(“樣式名”,“值”).css(“樣式名”,“值”)同時(shí)設(shè)置某個(gè)節(jié)點(diǎn)的多個(gè)樣式
節(jié)點(diǎn).css({“樣式名”:“值”,“樣式名”:“值”})同時(shí)設(shè)置某個(gè)節(jié)點(diǎn)的多個(gè)樣式

獲取、設(shè)置節(jié)點(diǎn)的屬性

常用函數(shù)
節(jié)點(diǎn).attr(“屬性名”)獲取某個(gè)節(jié)點(diǎn)的某個(gè)屬性
節(jié)點(diǎn).attr(“屬性名”,“值”)設(shè)置某個(gè)節(jié)點(diǎn)的某個(gè)屬性為指定值
節(jié)點(diǎn).removeAttr(“屬性名”)移除某個(gè)節(jié)點(diǎn)的某個(gè)屬性
節(jié)點(diǎn).addClass(“class名”)給某個(gè)節(jié)點(diǎn)追加class值
節(jié)點(diǎn).removeClass(“class名”)移除某個(gè)節(jié)點(diǎn)的某個(gè)class值
節(jié)點(diǎn).toggleClass(“class名”)切換某個(gè)節(jié)點(diǎn)的class值。如果存在該值則移除,不存在則追加
節(jié)點(diǎn).hasClass(“class名”)判斷某個(gè)節(jié)點(diǎn)是否存在某個(gè)class值

"打地鼠"游戲原理:

1.靜態(tài)布局:n*n的div容器,默認(rèn)無背景

2.隨機(jī)顯示:定義class,寫上背景圖的樣式,所有的div開始隨機(jī),隨機(jī)到的div擁有該class值,其余div移除該class值

3.點(diǎn)擊消失同時(shí)計(jì)分:給所有div添加單擊事件,判斷單擊的div是否擁有class值,如果有則移除,加分

4.控制游戲時(shí)長:開始后,使用setInterval()隨機(jī)顯示,使用setTimeout()在10s后移除setInterval()

創(chuàng)建節(jié)點(diǎn)

$(“完整標(biāo)簽”);

//js寫法 document.createElement("div"); //jquery寫法 $("<div></div>");//以上兩種方式創(chuàng)建的節(jié)點(diǎn),都處于游離狀態(tài),需要添加到其他已有節(jié)點(diǎn)上才能使用

添加節(jié)點(diǎn)

添加子節(jié)點(diǎn)
父節(jié)點(diǎn).append(子節(jié)點(diǎn))將子節(jié)點(diǎn)添加到父節(jié)點(diǎn)中的末尾
子節(jié)點(diǎn).appendTo(父節(jié)點(diǎn))將子節(jié)點(diǎn)添加到父節(jié)點(diǎn)中的末尾
父節(jié)點(diǎn).prepend(子節(jié)點(diǎn))將子節(jié)點(diǎn)添加到父節(jié)點(diǎn)中的開頭
子節(jié)點(diǎn).prependTo(父節(jié)點(diǎn))將子節(jié)點(diǎn)添加到父節(jié)點(diǎn)中的開頭
添加兄弟節(jié)點(diǎn)
原始節(jié)點(diǎn).before(新節(jié)點(diǎn))將新節(jié)點(diǎn)添加到原始節(jié)點(diǎn)之前
新節(jié)點(diǎn).insertBefore(原始節(jié)點(diǎn))將新節(jié)點(diǎn)添加到原始節(jié)點(diǎn)之前
原始節(jié)點(diǎn).after(新節(jié)點(diǎn))將新節(jié)點(diǎn)添加到原始節(jié)點(diǎn)之后
新節(jié)點(diǎn).insertAfter(原始節(jié)點(diǎn))將新節(jié)點(diǎn)添加到原始節(jié)點(diǎn)之后

移除節(jié)點(diǎn)

移除節(jié)點(diǎn)
某節(jié)點(diǎn).remove()移除某節(jié)點(diǎn)
某節(jié)點(diǎn).empty()移除某節(jié)點(diǎn)的子節(jié)點(diǎn)

復(fù)制節(jié)點(diǎn)

復(fù)制節(jié)點(diǎn)
某節(jié)點(diǎn).clone()復(fù)制節(jié)點(diǎn),不保留節(jié)點(diǎn)事件
某節(jié)點(diǎn).clone(true)復(fù)制節(jié)點(diǎn),保留節(jié)點(diǎn)事件

修飾節(jié)點(diǎn)

替換節(jié)點(diǎn)
舊節(jié)點(diǎn).replaceWith(新節(jié)點(diǎn))使用新節(jié)點(diǎn)替換舊節(jié)點(diǎn)
新節(jié)點(diǎn).replaceAll(舊節(jié)點(diǎn))使用新節(jié)點(diǎn)替換舊節(jié)點(diǎn)
包裹節(jié)點(diǎn)
節(jié)點(diǎn)集合.wrap(指定節(jié)點(diǎn))使用指定節(jié)點(diǎn)包裹節(jié)點(diǎn)集合中的每一個(gè)節(jié)點(diǎn)
節(jié)點(diǎn)集合.wrapAll(指定節(jié)點(diǎn))使用指定節(jié)點(diǎn)包裹節(jié)點(diǎn)集合中的所有節(jié)點(diǎn)
父節(jié)點(diǎn).wrapInner(指定節(jié)點(diǎn))使用指定節(jié)點(diǎn)包裹父節(jié)點(diǎn)中的所有子節(jié)點(diǎn)

通過節(jié)點(diǎn)獲取節(jié)點(diǎn)

函數(shù)名
某節(jié)點(diǎn).next()獲取某節(jié)點(diǎn)之后緊鄰的一個(gè)節(jié)點(diǎn)
某節(jié)點(diǎn).prev()獲取某節(jié)點(diǎn)之前緊鄰的一個(gè)節(jié)點(diǎn)
某節(jié)點(diǎn).nextAll(選擇器)獲取某節(jié)點(diǎn)之后的所有同級節(jié)點(diǎn),參數(shù)可以是指定選擇器
某節(jié)點(diǎn).prevAll(選擇器)獲取某節(jié)點(diǎn)之前的所有同級節(jié)點(diǎn),參數(shù)可以是指定選擇器
某節(jié)點(diǎn).sibling(選擇器)得到某個(gè)節(jié)點(diǎn)的所有同級節(jié)點(diǎn)
父節(jié)點(diǎn).children(選擇器)得到父節(jié)點(diǎn)中的所有子節(jié)點(diǎn)
節(jié)點(diǎn)集合.first()得到節(jié)點(diǎn)集合中的第一個(gè)節(jié)點(diǎn)
節(jié)點(diǎn)集合.last()得到節(jié)點(diǎn)集合中的最后一個(gè)節(jié)點(diǎn)
子節(jié)點(diǎn).parent()得到子節(jié)點(diǎn)的父節(jié)點(diǎn)
某節(jié)點(diǎn).index()得到某個(gè)節(jié)點(diǎn)在所在同級節(jié)點(diǎn)集合中的索引

預(yù)設(shè)動畫

函數(shù)名
show()改變某個(gè)節(jié)點(diǎn)的width和height從0到原始大小,顯示
hide()改變某個(gè)節(jié)點(diǎn)的width和height從原始大小到0,隱藏。最終display:none
toggle()顯示/隱藏切換
fadeIn()改變某個(gè)節(jié)點(diǎn)的opacity從0到1,淡入
fadeOut()改變某個(gè)節(jié)點(diǎn)的opacity從1到0,淡出,最終display:none
fadeToggle()淡入/淡出切換
slideUp()改變某個(gè)節(jié)點(diǎn)的height從原始到0,向上滑入,最終display:none
slideDown()改變某個(gè)節(jié)點(diǎn)的height從0到原始,向下滑出
slideToggle()滑入/滑出切換
注意以上函數(shù)都可以寫兩個(gè)參數(shù),第一個(gè)參數(shù)是毫秒整數(shù),表示動畫執(zhí)行時(shí)間,第二個(gè)參數(shù)是一個(gè)函數(shù),表示動畫執(zhí)行結(jié)束后的回調(diào)函數(shù)
//錯(cuò)誤寫法 $("#md").click(()=>{$("#md").toggle(2000);//不會等待2s后彈出,彈窗和動畫在同時(shí)執(zhí)行alert("xxx"); });//正確寫法 $("#md").click(()=>{//2s動畫結(jié)束后再執(zhí)行第二個(gè)函數(shù)$("#md").toggle(2000,()=>{alert("xxx");}); });

自定義動畫

//樣式組是必要參數(shù) 節(jié)點(diǎn).animate({樣式組},持續(xù)時(shí)間,時(shí)間函數(shù),回調(diào)函數(shù)); animate()支持鏈?zhǔn)綄懛?#xff0c;表示在動畫1執(zhí)行后執(zhí)行動畫2$("#md").animate({"樣式名":"值","樣式名":"值" },2000,"linear",()=>{動畫執(zhí)行后的回調(diào)函數(shù) }).animate({"樣式名":"值","樣式名":"值" },2000,"linear",()=>{動畫執(zhí)行后的回調(diào)函數(shù) };//樣式只能是數(shù)值為單位,如顏色無法生效

停止動畫

  • 節(jié)點(diǎn).stop()
    • 停止當(dāng)前正在進(jìn)行的動畫,如果后續(xù)還有動畫會直接執(zhí)行后續(xù)動畫
  • 節(jié)點(diǎn).stop(trur)
    • 停止當(dāng)前所有動畫

節(jié)點(diǎn)事件

綁定事件

js中給節(jié)點(diǎn)綁定事件

dom對象.on事件名=()=>{函數(shù)體; } document.getElementById("md").οnclick=()=>{} //通常是給單個(gè)節(jié)點(diǎn)綁定事件

jquery中給節(jié)點(diǎn)綁定事件

  • jquery對象.事件函數(shù)(函數(shù));
$("#md").click(function(){}); //可以給節(jié)點(diǎn)集合中的所有節(jié)點(diǎn)統(tǒng)一綁定事件,在函數(shù)中可以使用$(this)表示觸發(fā)事件的節(jié)點(diǎn) $("div").click(function(){$(this)表示所有div中當(dāng)前點(diǎn)擊的div });
  • jquery對象.bind(事件名,函數(shù))
$("div").bind("mouseenter",function(){});

觸發(fā)事件

節(jié)點(diǎn).事件函數(shù)()//輪播變量 var i = 1; // 每隔2s,讓對應(yīng)的頭像點(diǎn)擊 setInterval(() => {//觸發(fā)節(jié)點(diǎn)的單擊事件$("#head>div:eq(" + i + ")").click();// 循環(huán)if (i++ == 4) {i = 0;} }, 2000); 常用事件
click()單擊
hover(函數(shù)1,函數(shù)2)鼠標(biāo)進(jìn)入時(shí)觸發(fā)函數(shù)1,離開觸發(fā)函數(shù)2。如果只有一個(gè)函數(shù)參數(shù),進(jìn)入和離開都觸發(fā)該函數(shù)。
mouseenter()/mouseover()鼠標(biāo)進(jìn)入
mouseout()/mouseleave()鼠標(biāo)離開
mousemove()鼠標(biāo)移動
blur()失去焦點(diǎn)
focus()獲得焦點(diǎn)
change()改變
input()輸入
submit()表單提交

前端框架

設(shè)計(jì)者提供給用戶該框架的css和js文件。

用于只需要導(dǎo)入css文件和js文件,就通過對應(yīng)的class,使用該框架中相應(yīng)的樣式和效果。

任何前端框架都有對應(yīng)的API,應(yīng)用程序接口文檔,包含了該框架的用法。

Bootstrap

由Twitter公司推出的一套Web框架。其核心內(nèi)容是柵格系統(tǒng)。

使用

1.官網(wǎng)下載核心文件https://v3.bootcss.com/

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-TGZjTwp9-1681376355479)(HTML&CSS&JS&JQuery.assets/image-20230412151523560-1681376038253.png)]

2.將解壓后的整個(gè)文件夾保存到項(xiàng)目目錄中

3.新建頁面,導(dǎo)入bootstrap中的核心文件

  • css文件

    • bootstrap.css或bootstrap.min.css
  • js文件

    • bootstrap依賴于jquery,所以先導(dǎo)入jquery.js文件

    • 再導(dǎo)入bootstrap.js或bootstrap.min.js

LayUI

由國內(nèi)開發(fā)者設(shè)計(jì)的一套基于jquery的前端框架。

官網(wǎng)現(xiàn)已下架,但LayUI可以繼續(xù)使用。

鏡像網(wǎng)站https://layuion.com/

使用

1.鏡像網(wǎng)站下載

2.解壓后將layui目錄導(dǎo)入到項(xiàng)目目錄中

3.在頁面中導(dǎo)入layui的css文件和js文件

JSON

JavaScript Object Notation JS對象簡譜

是一種數(shù)據(jù)交換格式,可以理解為保存數(shù)據(jù)、交換數(shù)據(jù)的一種格式。

JSON數(shù)以鍵值對的形式保存。

“鍵”:值

鍵是一個(gè)字符串,值可以是普通類型、對象或數(shù)組

值的數(shù)據(jù)類型

值的類型
字符串“name”:“ez”
數(shù)值“age”:20
布爾值“married”:true
“xxx”:null
對象“dog”:{“name”:“旺財(cái)”,“type”:“哈士奇”}
數(shù)組“cars”:[{“name”:“寶馬”},{“name”:“奔馳”}]

舉例

{"name":"張明","age":20,"pet":{"name":"小哈","type":"狗"},"married":true,"house":null,"family":[{"name":"張三","relation":"老爸"},{"name":"王梅","relation":"老媽"}] }

在頁面中讀取json數(shù)據(jù)

  • $.getJSON(URL,回調(diào)函數(shù))

    $.getJSON("json/selfinfo.json",(res)=>{console.log(res.name);console.log(res.age);console.log(res.married);console.log(res.house);console.log(res.pet);console.log(res.pet.name);console.log(res.pet.type);console.log(res.family[0]);console.log(res.family[1]); });
  • ajax,異步提交,局部刷新。在保證頁面不重新加載的情況下,只更新部分?jǐn)?shù)據(jù)

    • $.ajax();

      $.ajax({url:"請求路徑",data:{//請求時(shí)攜帶的參數(shù)name:'xx',age:20},type:"post/get/put/delete",success:(res)=>{//請求發(fā)送成功后的回調(diào)函數(shù)//res表示請求后得到的數(shù)據(jù)}error:(res)=>{//請求發(fā)送失敗后的回調(diào)函數(shù)//res表示請求后得到的數(shù)據(jù)} });

()** | 鼠標(biāo)離開 |
| mousemove() | 鼠標(biāo)移動 |
| blur() | 失去焦點(diǎn) |
| focus() | 獲得焦點(diǎn) |
| change() | 改變 |
| input() | 輸入 |
| submit() | 表單提交 |

前端框架

設(shè)計(jì)者提供給用戶該框架的css和js文件。

用于只需要導(dǎo)入css文件和js文件,就通過對應(yīng)的class,使用該框架中相應(yīng)的樣式和效果。

任何前端框架都有對應(yīng)的API,應(yīng)用程序接口文檔,包含了該框架的用法。

Bootstrap

由Twitter公司推出的一套Web框架。其核心內(nèi)容是柵格系統(tǒng)。

使用

1.官網(wǎng)下載核心文件https://v3.bootcss.com/

[外鏈圖片轉(zhuǎn)存中…(img-TGZjTwp9-1681376355479)]

2.將解壓后的整個(gè)文件夾保存到項(xiàng)目目錄中

3.新建頁面,導(dǎo)入bootstrap中的核心文件

  • css文件

    • bootstrap.css或bootstrap.min.css
  • js文件

    • bootstrap依賴于jquery,所以先導(dǎo)入jquery.js文件

    • 再導(dǎo)入bootstrap.js或bootstrap.min.js

LayUI

由國內(nèi)開發(fā)者設(shè)計(jì)的一套基于jquery的前端框架。

官網(wǎng)現(xiàn)已下架,但LayUI可以繼續(xù)使用。

鏡像網(wǎng)站https://layuion.com/

使用

1.鏡像網(wǎng)站下載

2.解壓后將layui目錄導(dǎo)入到項(xiàng)目目錄中

3.在頁面中導(dǎo)入layui的css文件和js文件

JSON

JavaScript Object Notation JS對象簡譜

是一種數(shù)據(jù)交換格式,可以理解為保存數(shù)據(jù)、交換數(shù)據(jù)的一種格式。

JSON數(shù)以鍵值對的形式保存。

“鍵”:值

鍵是一個(gè)字符串,值可以是普通類型、對象或數(shù)組

值的數(shù)據(jù)類型

值的類型
字符串“name”:“ez”
數(shù)值“age”:20
布爾值“married”:true
“xxx”:null
對象“dog”:{“name”:“旺財(cái)”,“type”:“哈士奇”}
數(shù)組“cars”:[{“name”:“寶馬”},{“name”:“奔馳”}]

舉例

{"name":"張明","age":20,"pet":{"name":"小哈","type":"狗"},"married":true,"house":null,"family":[{"name":"張三","relation":"老爸"},{"name":"王梅","relation":"老媽"}] }

在頁面中讀取json數(shù)據(jù)

  • $.getJSON(URL,回調(diào)函數(shù))

    $.getJSON("json/selfinfo.json",(res)=>{console.log(res.name);console.log(res.age);console.log(res.married);console.log(res.house);console.log(res.pet);console.log(res.pet.name);console.log(res.pet.type);console.log(res.family[0]);console.log(res.family[1]); });
  • ajax,異步提交,局部刷新。在保證頁面不重新加載的情況下,只更新部分?jǐn)?shù)據(jù)

    • $.ajax();

      $.ajax({url:"請求路徑",data:{//請求時(shí)攜帶的參數(shù)name:'xx',age:20},type:"post/get/put/delete",success:(res)=>{//請求發(fā)送成功后的回調(diào)函數(shù)//res表示請求后得到的數(shù)據(jù)}error:(res)=>{//請求發(fā)送失敗后的回調(diào)函數(shù)//res表示請求后得到的數(shù)據(jù)} });

總結(jié)

以上是生活随笔為你收集整理的前端HTML CSS JavaScipt JQuery的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。