CSS基礎3

動畫-animation

動畫-animation與?transition過渡動畫的區別

  • ?transition過渡動畫:實現兩個狀態間的變化過程
  • 動畫animation:實現多個狀態間的變化過程,動畫過程可控(重復播放、最終畫面、是否暫停)

走馬燈-使用transition.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>* {padding: 0;margin: 0;}.box {width: 600px;height: 110px;border: 5px solid #000;margin: 100px auto;overflow: hidden;  /* .box父元素里的子元素的高度超出了父容器的高度 發生外溢   添加overflow: hidden超出規定寬高的(溢出)內容會被裁剪掉(不可見) */}/* ul里的所有子元素li都是 塊級元素 垂直獨占一行的 我們的要求是要讓所有的子元素li水平排列 都在一行 給ul添加 彈性盒子屬性 display: flex; */.box ul {background-color: pink;display: flex;transition: all 10s;}li {list-style: none;}/* img 是行內元素 設置寬高無效 轉為塊級元素 設置寬高有效 */img {display: block;width: 200px;}.box:hover ul {transform: translate(-1400px);      /* translate()只寫一個值,表示沿著X軸水平方向移動  */}</style>
</head>
<body><div class="box"><ul><li><img src="./images/1.jpg" alt="" /></li><li><img src="./images/2.jpg" alt="" /></li><li><img src="./images/3.jpg" alt="" /></li><li><img src="./images/4.jpg" alt="" /></li><li><img src="./images/5.jpg" alt="" /></li><li><img src="./images/6.jpg" alt="" /></li><li><img src="./images/7.jpg" alt="" /></li><!-- 替身:填補顯示區域的露白 --><li><img src="./images/1.jpg" alt="" /></li><li><img src="./images/2.jpg" alt="" /></li><li><img src="./images/3.jpg" alt="" /></li></ul></div>
</body>
</html>

走馬燈-使用animation.html

 <!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>* {padding: 0;margin: 0;}.box {width: 600px;height: 110px;border: 5px solid #000;margin: 100px auto;overflow: hidden;  /* .box父元素里的子元素ul的寬度高度(width: 800px; height: 210px;)超出了父容器的寬度高度(width: 600px;height: 110px;) 發生外溢   添加overflow: hidden將子元素ul  超出規定寬高的(溢出)內容會被裁剪掉(不可見) */}/* ul里的所有子元素li都是 塊級元素 垂直獨占一行的 我們的要求是要讓所有的子元素li水平排列 都在一行 給ul添加 彈性盒子屬性 display: flex; */.box ul {width: 800px;height: 210px;background-color: pink;display: flex;/* transition: all 10s; *//* 一進入界面執行動畫: 10s完成一次移動動畫:讓ul元素向X軸從0左邊負方向移動1400px。 無線循環 勻速 */animation: move 10s infinite linear ;     }li {list-style: none;}/* img 是行內元素 設置寬高無效 轉為塊級元素 設置寬高有效 */img {display: block;width: 200px;}/* 定義位移動畫;ul使用動畫;鼠標懸停暫停動畫 */@keyframes move {0% {transform: translate(0);  /* ul元素 開始不需要移動在X軸0位置   */}100% {transform: translate(-1400px);   /*    讓ul元素    向X軸從0左邊負方向移動1400pxtranslate()只寫一個值,表示沿著X軸水平方向移動  */}}.box:hover ul {/* transform: translate(-1400px);      translate()只寫一個值,表示沿著X軸水平方向移動  */animation-play-state: paused;}</style>
</head>
<body><div class="box"><ul><li><img src="./images/1.jpg" alt="" /></li><li><img src="./images/2.jpg" alt="" /></li><li><img src="./images/3.jpg" alt="" /></li><li><img src="./images/4.jpg" alt="" /></li><li><img src="./images/5.jpg" alt="" /></li><li><img src="./images/6.jpg" alt="" /></li><li><img src="./images/7.jpg" alt="" /></li>  <!-- ? 無縫動畫填補空白區域 ?  替身:復制前3張圖片到區域尾部,填補區域尾部的露白  --><li><img src="./images/1.jpg" alt="" /></li><li><img src="./images/2.jpg" alt="" /></li><li><img src="./images/3.jpg" alt="" /></li>   </ul></div>
</body>
</html>

?

?

無縫動畫填補區域尾部空白:

為什么要使用無縫動畫:?元素(圖片)移動 在區域尾部有空白區域

無縫動畫原理:復制開頭圖片到結尾位置 填補尾盤區域的空白區域,讓元素(圖片)累加寬度=區域寬度

<body><div class="box"><ul><li><img src="./images/1.jpg" alt="" /></li><li><img src="./images/2.jpg" alt="" /></li><li><img src="./images/3.jpg" alt="" /></li><li><img src="./images/4.jpg" alt="" /></li><li><img src="./images/5.jpg" alt="" /></li><li><img src="./images/6.jpg" alt="" /></li><li><img src="./images/7.jpg" alt="" /></li>  <!-- ? 無縫動畫填補空白區域 ?  替身:復制前3張圖片到區域尾部,填補區域尾部的露白  --><li><img src="./images/1.jpg" alt="" /></li><li><img src="./images/2.jpg" alt="" /></li><li><img src="./images/3.jpg" alt="" /></li>   </ul></div>
</body>

?實現動畫animation的步驟:

1.定義動畫的關鍵幀:使用 @keyframes 規則定義動畫在不同階段的樣式。

@keyframes:

@keyframes 是用來指定 CSS 動畫過程中,在特定時間點需要應用的樣式規則。你可以在 @keyframes 內部定義動畫序列中的關鍵幀(即動畫的不同狀態),然后瀏覽器會自動計算這些關鍵幀之間的過渡效果。

動畫名稱:

是用于標識這個動畫的唯一名稱,以便于在其他地方引用它。

這種格式只指定了動畫的起點(from)和終點(to)的狀態。

@keyframes 動畫名稱 {

from { width: 200px; }

to { width: 800px; }

}?

這種格式允許你更精確地控制動畫過程中不同百分比處的狀態,提供了更高的靈活性和控制力。

@keyframes 動畫名稱 {

0% { /* 起始狀態 */ }?

20% { /* 中間某個時刻的狀態 */ }

...

100% { /* 結束狀態 */ }

}

2.應用動畫到元素上:通過 animation 屬性將定義好的動畫應用到特定的 HTML 元素上,并設置相關的屬性如持續時間、播放次數等。

最全版不是所有的屬性都必須填寫 
animation: animation-name      動畫名稱animation-duration  動畫時長animation-timing-function 速度曲線 animation-delay     延遲時間animation-iteration-count   重復次數animation-direction   動畫方向animation-fill-mode;  執行完畢時狀態
animation:動畫名稱 動畫花費時長;(最簡版這2個屬性必須填寫)

注意:

  • 動畫名稱和動畫時長必須賦值
  • 取值不分先后順序
  • 如果有兩個時間值,第一個時間表示動畫時長,第二個時間表示延遲時間
屬性作用取值
animation-name

動畫名稱

定義要使用的 @keyframes 動畫名稱

必需
animation-duration

動畫時長

動畫完成一個周期所需的時間(如 2s)

必需
animation-delay

延遲時間

動畫開始前的延遲時間(可為負值)

animation-fill-mode

動畫執行完畢時的狀態

?none(不保留任何樣式)
forwards(保留最后一幀樣式)
backwards(保留第一幀樣式)
both(同時保留首尾幀樣式)

animation-timing-function

動畫的速度曲線(緩動函數),如 ease, linear, ease-in-out

ease(默認)

steps(n):分步動畫?

?分n個步驟完成這個動畫效果
linear??勻速
ease-in
ease-out
ease-in-out : 動畫開始和結束時較慢,中間較快

animation-iteration-count

動畫重復播放次數

(如 1, infinite 表示無限循環)

infinite為無限循環
animation-direction

動畫執行方向

normal(默認,正常播放)
reverse(倒序播放)
alternate(正向播放完后反向播放)
alternate-reverse(反向播放完后正向播放)

animation-play-state暫停動畫

paused為暫停,

通常配合:hover使用

動畫animation各種使用情況案例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>*{margin: 0;padding: 0;}/* 給動畫元素定義基礎樣式 */.box {background-color: #4CAF50; /* 綠色背景 */width: 200px; /* 初始寬度 */height: 100px; /* 固定高度 */margin: 50px auto; /* 居中顯示 *//*transition: width 2s ease;  添加過渡效果(非必須) */}/* 定義動畫的關鍵幀 */
@keyframes 擴展寬度 {from { /* 動畫開始時的樣式 */width: 200px;}to { /* 動畫結束時的樣式 */width: 800px;}}.animated-box:hover{animation: 擴展寬度 5s;/* linear:勻速 */animation: 擴展寬度 5s linear;/* steps:分步動畫,工作中,配合精靈圖實現精靈動畫 *//*  我們這里是單純的逐幀動畫 這里沒有精靈圖片 */animation: 擴展寬度 5s steps(13); /* 如果有兩個時間,第一個是動畫時長,第二個是延遲時間 */animation: 擴展寬度 3s 5s;   animation: 擴展寬度 3s 3;   /* 重復次數,infinite:無限循環 */animation: 擴展寬度 3s infinite; /* alternate:反向 */animation: 擴展寬度 3s infinite alternate;/* 動畫執行完畢時的狀態, forwards:結束狀態; backwards:開始狀態(默認) */animation: 擴展寬度 3s forwards;  animation: 擴展寬度 3s backwards;
}/* 動畫二:從 200*100 變化到 300*300 變化到800*500 *//* 百分比:表示的意思是動畫時長的百分比 */@keyframes 擴展寬度2 {0% {width: 200px;height: 100px;}20% {width: 300px;height: 300px;}100% {width: 800px;height: 500px;}}/* 定義關鍵幀動畫 */@keyframes   擴展寬度3 {0% {transform: translateX(0) scale(1); /* 初始位置和大小 */background-color: lightblue;}50% {transform: translateX(200px) scale(1.2); /* 中間放大并右移 */background-color: lightgreen;}100% {transform: translateY(100PX) scale(1.5); /* 下移放大 */background-color: lightcoral;}} .animated-box2:hover{animation: 擴展寬度2 5s;
}/* 應用動畫到元素上 */
.animated-box3:hover{animation-name: 擴展寬度3; /*使用的動畫名稱為  擴展寬度3    */  animation-duration: 5s; /* 動畫持續時間5s */ animation-timing-function: ease-in-out; /* 動畫速度曲線 */   /* 動畫開始和結束時較慢,中間較快 */animation-delay: 3s;                   /* 延遲3秒后開始動畫 */      animation-iteration-count: 3;          /* 動畫重復播放3次 */animation-direction: alternate;        /* 動畫在正向和反向之間交替 */    /* 第一次正向播放,第二次反向播放,第三次再正向播放 */  animation-fill-mode: forwards; /* 動畫結束后保持最后一幀樣式 */
}/* 使用animation
你可以將所有動畫屬性合并成一行: 
這樣更簡潔,但建議初學者先分開寫,便于理解和調試。  */
.animated-box4:hover{animation: 擴展寬度3 5s ease-in-out 3s 3 alternate forwards;   
}</style>
</head>
<body><!-- 創建一個div元素用于應用動畫 -->
<div class="box animated-box" ><!-- 這個div內部可以放置任何內容,這里為空 -->
</div><div class="box animated-box2" ><!-- 這個div內部可以放置任何內容,這里為空 -->
</div><div class="box animated-box3" ><!-- 這個div內部可以放置任何內容,這里為空 -->
</div><div class="box animated-box4" ><!-- 這個div內部可以放置任何內容,這里為空 -->
</div><div class="box animated-box5" ><!-- 這個div內部可以放置任何內容,這里為空 -->
</div></body>
</html>

?steps(n):?分步/逐幀/分幀 動畫

steps(n) 是 CSS 中用于定義動畫速度曲線的一個特定值,它允許你將動畫分割成幾個離散的步驟(即幀)來進行,而不是平滑過渡

這意味著動畫不是連續地進行,而是以跳躍的方式從一個狀態直接切換到下一個狀態,每個狀態之間的轉換是瞬間完成的。

應用場景

steps() 主要應用于逐幀動畫,尤其是當你處理像精靈圖這樣的資源時非常有用。例如,如果你有一個包含多個動作姿勢的圖片序列(比如角色行走、跑步等),你可以利用 steps() 函數精確控制這些姿勢如何以及何時顯示,從而創建流暢的角色動畫效果。

注意事項

  • 精靈圖必須連續且等寬,否則動畫會錯位。
  • 使用 steps(n) 是關鍵,它讓動畫不會平滑過渡,而是“跳變”。
  • 如果你希望動畫在開始時立刻跳到第一幀,可以寫成 steps(4, start)。
  • 圖片加載失敗時可能看不到動畫效果,請確保圖片地址有效。

?steps(n)函數

steps(number_of_steps, direction)

  • number_of_steps: 整數值,表示動畫應該分為多少個步驟或幀進行。
  • direction: 可選值,指定步進的方向。它可以取兩個值:
    start: 第一步在動畫開始時立即發生。
    end: 最后一步在動畫結束時發生(默認值)。

steps(n)逐幀動畫?+精靈圖片的結合使用:模擬人物原地踏步

精靈動畫制作步驟:

1.準備一個顯示區域(元素盒子)

  • 元素盒子(顯示區域)尺寸大小=一張精靈小圖尺寸相同=140px

2.定義動畫

  • 移動背景圖(精靈圖)(移動距離范圍=精靈圖寬度=1680px)

3.使用逐幀動畫steps(n):?

  • steps(N),N與精靈小圖個數相同

??animation: jingling_runing ?3s steps(12) infinite;

? ? 這個動畫 在3s內分成12步讓背景圖(精靈圖)沿X軸向左移動(1680px)動畫 ?且無限重復 ?

? ? 注意:這個動畫只是讓背景圖(精靈圖)沿X軸向左移動 ? ?元素div盒子是不動的

? background-position: 0 0; ?

? x=0 ? ? ? 背景圖(精靈圖) ? 在X軸原來默認位置0不動 ? 此時 元素盒子 顯示的 背景圖(精靈圖)的第一個小人? ??

?background-position: -1680px 0;? ?

?x=-1680px ? ? 背景圖(精靈圖)沿X軸向左移動1680px ? 此時 元素盒子 顯示的 背景圖(精靈圖)的第12個小人? ?

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>*{margin: 0;padding: 0;}/* 給動畫元素定義基礎樣式 */div {/* 元素盒子尺寸大小=一張精靈小圖尺寸相同 */width: 140px;   height: 140px;border: 1px solid #000;    background-image: url(./images/bg2.png);}@keyframes jingling_runing {     from {background-position: 0 0;     /* x=0       背景圖(精靈圖)   在X軸原來默認位置0不動   此時 元素盒子 顯示的 背景圖(精靈圖)的第一個小人   */}to {background-position: -1680px 0;   /* x=-1680px     背景圖(精靈圖)沿X軸向左移動1680px   此時 元素盒子 顯示的 背景圖(精靈圖)的第12個小人  */}}div:hover{/*  這個動畫 在3s內分成12步讓背景圖(精靈圖)沿X軸向左移動(1680px)動畫  且無限重復  注意:這個動畫只是讓背景圖(精靈圖)沿X軸向左移動    元素div盒子是不動的      */animation: jingling_runing  3s steps(12) infinite;} </style>
</head>
<body><div></div>
</body>
</html>

?

多組動畫組合?

animation:
動畫1,
動畫2,
動畫N
 animation: 
jingling_runing 3s steps(12) infinite,div_move 12s 4s forwards linear ;

多組動畫組合+?steps(n)逐幀動畫?+精靈圖片的結合使用:

模擬人物真實步行前行

多組動畫組合

??

? ??第一個動畫:jingling_runing 3s steps(12) infinite :?

? ?只是讓背景圖(精靈圖)沿X軸向左移動-1680px ? ?元素div盒子是不動的

? (?steps(n)逐幀動畫 +精靈圖片的結合使用,只是模擬人物原地踏步)?

??? ?第二個動畫 : ?div_move 12s 4s forwards linear:? ? ?

?讓元素div盒子沿X軸向右移動1680px

?(讓人物離開原地,真實步行前行)

? ?

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>*{margin: 0;padding: 0;}/* 給動畫元素定義基礎樣式 */div {/* 元素盒子尺寸大小與一張精靈小圖尺寸相同 */width: 140px;height: 140px;border: 1px solid #000;    background-image: url(./images/bg2.png);}@keyframes jingling_runing {from {background-position: 0 0;     }to {background-position: -1680px 0;    }}@keyframes div_move {0% {transform: translate(0);}   100% {transform: translate(1680px);}}/* 多組動畫組合 第一個動畫:jingling_runing 3s steps(12) infinite   只是讓背景圖(精靈圖)沿X軸向左移動-1680px    元素div盒子是不動的第二個動畫 :  div_move 12s 4s forwards linear      讓元素div盒子沿X軸向右移動1680px */div:hover{animation: jingling_runing 3s steps(12) infinite,div_move 12s 4s forwards linear ;}</style>
</head>
<body><div></div>
</body>
</html>

移動端網頁適配

同一個網頁項目 在不同的型號手機上打開? ?項目界面顯示的分辨率不同 需要對項目網頁界面分辨率進行適配在不同手機上顯示都正常不會變形

如何打開谷歌瀏覽器上的手機模擬器

谷歌瀏覽器界面右擊:檢查->選中 圖標?->選擇尺寸:三角->選擇不同型號的手機

屏幕分辨率

屏幕分辨率: 一塊屏幕上的水平垂直上的像素點個數,單位是px

? 水平上有多少個像素點數? 就表示寬的分辨率

?垂直上有多少個像素點數? 就表示高的分辨率

PC(電腦)分辨率

我的電腦? 物理分辨率(硬件分辨率)(出廠設置): 1920*1080
? ? ? ? ? ? ?默認縮放100%
? ? ? ? ? ? 系統的邏輯分辨率(軟件/驅動設置) :1920*1080?

? ? ? ? ? ? 系統的所有 UI 元素默認顯示大小不變

?

什么是“物理分辨率”?

顯示區域

物理分辨率指的是你的顯示器實際擁有的像素數量。
比如你電腦屏幕是 1920×1080,表示它橫向有 1920 個像素點,縱向有 1080 個像素點。

這是顯示器硬件決定的,不可更改。

什么是“邏輯分辨率”?

系統的繪制界面UI元素區域

邏輯分辨率是操作系統或瀏覽器在渲染內容時使用的“虛擬”分辨率。
它會根據縮放比例發生變化。

在縮放為 100% 的情況下,操作系統不會對內容進行放大或縮小,而是直接按照原始尺寸渲染。

“縮放 100%”是什么意思?

所有 UI 元素(文字、圖標、按鈕等)都顯示為它們設計時的原始大小;
沒有放大也沒有縮小;
每個像素對應一個真實的屏幕像素。

系統沒有做任何額外的圖像處理,原樣顯示。

所以:

默認縮放 100%下?,邏輯分辨率 = 物理分辨率 = 1920×1080,所有 UI 元素默認顯示大小不變

?? 縮放的本質

?簡單理解:
? ? 縮放的本質是:操作系統以較低的邏輯分辨率繪制界面UI元素,然后將界面UI元素? 放大適當比例? ? 已達到鋪滿物理分辨率的效果,從而讓內容看起來更大、更清晰。
? ?

詳細理解:?
? ?? 系統設置縮放為 100% 時:
? ?我的電腦操作系統的邏輯分辨率就是 1920×1080
? ?系統就使用這個邏輯分辨率1920×1080? 進行繪制界面UI元素
? ?而這個? 邏輯分辨率1920×1080 剛好等于? 物理分辨率1920×1080
? ?所以繪制界面UI元素顯示默認大小不變 不需要放大縮小 剛好鋪滿 屏幕的物理分辨率1920×1080
? ?
? ??系統設置縮放為 150% 時:
? ?我的電腦操作系統的邏輯分辨率就變成 1280×720 ( 1920/150%=1280 1080/150%=720)
? ?系統就使用這個邏輯分辨率1280×720? 進行繪制界面UI元素? ??
? ?很明顯這個邏輯分辨率1280×720小于 物理分辨率1920×1080
? ?為了將繪制界面UI元素鋪滿 整個屏幕的物理分辨率1920×1080?
? ?所以不得不將UI元素放大1.5倍 已達到鋪滿屏幕的物理分辨率1920×1080的效果
? ?? 如果系統就使用這個邏輯分辨率1280×720 下進行繪制界面UI元素? 不放大UI元素 也不鋪滿, 就會出現四周空白區域。
? ?

?我的電腦 默認縮放 100%? 與放大150%對比前后變化
項目? ?

縮放 100%

(默認無放大/縮小)

縮放 150%

物理分辨率

(顯示區域)

1920×1080? ?1920×1080(不變)

邏輯分辨率

(系統的繪制界面UI元素區域)

1920×1080

1280×720(系統認為的繪圖空間)

1920/150%=1280

1080/150%=720

UI 元素大小?

正常

所有 UI 元素按原始尺寸顯示

所有 UI 元素放大1.5倍
1個邏輯像素 1×1 = 1 個物理像素1個邏輯像素 1.5×1.5 = 2.25 個物理像素?
視覺感受?所有 UI 元素默認顯示大小不變

? UI 元素顯示變大

填滿 屏幕(物理分辨率1920×1080?)?

? ?
? ?
?

? ? ? ~
?? ?

假設你有一個圖標,設計成 64×64 像素大小:
縮放比例

物理分辨率

(顯示區域)

邏輯分辨率

(繪制界面UI元素區域)

? UI元素圖標

顯示大小

(像素)

用戶感受
100%1920×10801920×1080?UI元素大小不變?64×64? ? 正常大小
150%1280×7201920×1080?

? UI元素放大1.5倍實際占用 96×96

(64*1.5=96
? ?64*1.5=96)

字體變大了,更容易看清楚 ,剛好鋪滿

物理分辨率

(顯示區域)

UI元素不放大就是用?64×64大小

UI元素沒有鋪滿

物理分辨率

(顯示區域) 四周就會留白

?? ?
?
? ? ?
?

?

DPR(設備像素比)
DPR = 物理像素 / 邏輯像素

縮放 100%:DPR = 1

  • ? ?每個 CSS 的像素(即邏輯像素) 占用了 1×1 = 1 個物理像素

? ?
? ?
縮放 150%:DPR = 1.5

  • ??每個 CSS 的像素(即邏輯像素) 占用了 1.5×1.5 = 2.25 個物理像素?

?

手機的分辨率

移動端項目的網頁適配方案:

?

rem 適配方案:less

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/911993.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/911993.shtml
英文地址,請注明出處:http://en.pswp.cn/news/911993.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java 程序設計試題?

?考試時間&#xff1a;120 分鐘? ?總分&#xff1a;100 分? 一、選擇題&#xff08;每題 2 分&#xff0c;共 30 分&#xff09; 1.以下哪個不是 Java 的關鍵字&#xff1f; A. final B. sizeof C. static D. void 2.以下代碼輸出結果是&#xff1f; System.out.printl…

Elasticsearch(ES)與 OpenSearch(OS)

Elasticsearch&#xff08;ES&#xff09;與 OpenSearch&#xff08;OS&#xff09;本質上是同源分叉、獨立演進的技術&#xff0c;兩者關系可概括為“起源相同、目標分化”。以下是關鍵要點解析&#xff1a; &#x1f50d; 一、核心關系&#xff1a;分叉與獨立演進 起源相同 O…

Python爬蟲實戰:研究Ghost.py相關技術

1 引言 1.1 研究背景與意義 隨著互聯網技術的不斷發展,現代網頁越來越多地采用 JavaScript 動態生成內容,傳統的靜態爬蟲技術已難以滿足需求。例如,許多新聞網站的評論區、電商平臺的商品列表以及社交網站的動態內容均通過 AJAX 異步加載,普通爬蟲無法獲取這些內容。Ghos…

PostgreSQL(知識片):查詢/計算Selectivity(可選性)

一、視圖pg_ststs查詢可選性 1、當可選性較小時&#xff0c;可以用視圖pg_ststs來查詢 表的每一列的MVC&#xff08;most Common Value&#xff09;作為一對most_common_vals和most_common_freqs的列存儲在pg_ststs視圖中。 &#xff08;1&#xff09;most_common_vals&#x…

Android Studio 打 APK 包報錯 Invalid keystore format 的解決方法

提示&#xff1a;“奔跑吧鄧鄧子” 的必備核心技能專欄聚焦計算機技術與職場場景&#xff0c;拆解程序員、產品經理等技術從業者的核心能力圖譜。內容涵蓋編程思維、算法實戰、項目管理、技術架構等硬核技能&#xff0c;結合案例解析代碼優化、跨團隊協作等落地方法論。定期更新…

通義靈碼2.5智能體模式實戰———集成高德MCP 10分鐘生成周邊服務地圖應用

1 引言 在當今快節奏的開發環境中&#xff0c;智能編程助手正成為開發者生產力的倍增器。通義靈碼2.5的智能體模式通過任務分解、多輪對話和上下文感知&#xff0c;將傳統代碼補全提升為完整的解決方案生成能力。本文將以實戰案例展示如何利用通義靈碼2.5集成高德地圖MCP服務&…

【Linux】使用ip link命令設置bond

目錄 1、介紹2、設置步驟【1】創建bonding接口【2】設置bonding模式【3】添加物理網口到bonding接口【4】激活bonding接口 3、解除步驟【1】關閉bond接口【2】接觸從屬接口【3】刪除bond接口 1、介紹 設置bond的方法有很多種&#xff0c;其中通過命令行ip link設置就是其中一種…

Camunda相關表結構和字段備注SQL腳本

Camunda相關表結構和字段備注SQL腳本 引camunda engine表和字段備注 引 Camunda engine服務啟動時會自動創建相關的表&#xff0c;沿用了activity的設計&#xff0c;我這里使用的是7.17.0版&#xff0c;自動生成了49張表&#xff0c;但所有的表和字段都沒有備注信息&#xff0c…

Qt、C++自定義按鈕、組件、事件編程開發練習,萬字實戰解析!!

x項目地址&#xff1a;https://gitee.com/fan-wenshan/qt_learn_button-andevent_zhengzhuo 項目界面截圖&#xff1a; ### 項目介紹&#xff1a;comstomSingal (Qt應用程序) 項目基本信息 - 項目類型 &#xff1a;Qt Widgets應用程序 - 開發環境 &#xff1a;Qt 5.12.12 Min…

商務年度總結匯報PPT模版分享

商務匯報&#xff0c;工作總結&#xff0c;畢業答辯&#xff0c;簡歷競聘PPT模版&#xff0c;創意年終匯報PPT模版&#xff0c;IDEAS商務匯報PPT模版&#xff0c;年度總結PPT模版&#xff0c;創意低多邊形PPT模版&#xff0c;商務型PPT模版&#xff0c;小清新創意花朵PPT模版&a…

電機設計仿真軟件學習DAY3——Maxwell界面功能+3D幾何模型繪制

"手把手教你玩轉電機&#xff01;每日更新教程&#xff0c;評論區答疑解惑&#xff0c;小白也能變大神&#xff01;" 目錄 maxwell基礎操作 一.Maxwell基礎操作&#xff1a;新建項目 二.maxwell3D界面 三.maxwell3D繪圖 3.1繪制圓柱體的方法 3.2繪制正方體的方法…

Apache 支持 HTTPS

證書文件 提取私鑰 openssl pkcs12 -in cert.pfx -nocerts -out private.key -nodes 打開命令行&#xff08;CMD 或 PowerShell&#xff09;&#xff0c;進入證書所在目錄&#xff0c;輸入上面命令&#xff0c;它會提示你輸入密碼&#xff0c;可以從 password.txt 中復制 提取證…

自然語言處理中的Transformer模型:超越RNN和LSTM

在人工智能的眾多領域中,**自然語言處理(Natural Language Processing, NLP)**無疑是最具挑戰性也最具前景的方向之一。從機器翻譯、文本摘要到情感分析和智能問答,NLP 旨在讓機器理解、解釋和生成人類語言。長期以來,循環神經網絡(Recurrent Neural Network, RNN)及其變…

vue3 new Date() 時間操作

在Vue 3中&#xff0c;你可以使用JavaScript的Date對象來處理日期和時間。如果你想創建一個新的Date對象表示當前時間減去一天&#xff0c;你可以使用以下幾種方法之一&#xff1a; 方法1&#xff1a;使用Date對象的setDate()方法 const now new Date(); now.setDate(now.ge…

WebRTC(八):SDP

SDP 概念 SDP 是一種描述多媒體通信會話的文本格式&#xff08;基于 MIME&#xff0c;RFC 4566&#xff09;。本身 不傳輸數據&#xff0c;僅用于在會話建立階段傳遞信息。常與 SIP&#xff08;VoIP&#xff09;、RTSP、WebRTC 等協議配合使用。 用途 描述媒體類型&#xf…

算法競賽>力扣>周賽 | weekly-contest-455

原文鏈接&#xff1a;算法競賽>力扣>周賽 | weekly-contest-455 3591.檢查元素頻次是否為質數 解題思路 統計每個元素出現的次數&#xff0c;判斷各次數是否為質數。由于次數<100&#xff0c;可用試除法判斷。 代碼實現 bool isPrime(int x) {if (x < 2)retur…

Vue 2快速實現px轉vw適配

Vue 2 Vue CLI 項目 px 轉 vw 完整使用指南 &#x1f4cb; 概述 本指南詳細介紹如何在 Vue 2 Vue CLI 項目中使用 postcss-px-to-viewport-8-plugin 插件&#xff0c;實現自動將 px 單位轉換為 vw 單位的響應式設計。 &#x1f680; 第一步&#xff1a;插件安裝 1.1 安裝…

Android MVVM模式介紹

一、介紹 1.Model(模型) Model代表應用程序的數據和業務邏輯。它負責處理數據的獲取、存儲和更新&#xff0c;例如從數據庫中檢索數據或通過網絡請求獲取數據。Model通常是與UI無關的部分&#xff0c;因此可以獨立測試和復用。 2. View&#xff08;視圖&#xff09; View是用…

WHAT - React Native 的 Expo Router

文章目錄 核心定義核心理念核心功能解析&#xff08;Features&#xff09;1. Native2. Shareable3. Offline-first4. Optimized5. Iteration6. Universal7. Discoverable 總結示例&#xff1a;頁面結構如何變成導航&#xff1f; 原文&#xff1a;https://docs.expo.dev/router/…

XML讀取和設置例子

在Qt C中&#xff0c;可以使用Qt的 QDomDocument類來讀取、更新和保存XML文件。這個類提供了對XML文檔的強大操作能力&#xff0c;支持通過DOM&#xff08;文檔對象模型&#xff09;對XML進行讀取、修改、添加和刪除節點等操作。 下面是一個詳細的例子&#xff0c;演示如何在Qt…