- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 559592 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 173250
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 18
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
HTML 知识点(未完)4 ], o4 S& \5 n, G: l) _
1 D! j+ o, w, b- ^4 B1 XHTML 知识点
: P5 P, N( G E/ X! n: E4 N$ m9 n( j; l6 k% I( B" B+ i7 J$ A
三列布局- (高度已知,左右宽度固定,中间自适应)
$ V2 ]8 `" \; o) A y) d* `/ R( I# e3 W! H; M d& ~5 [2 _4 d
布局方案 优点 缺点& \. J. k' |3 y
浮动 兼容性好 脱离文档流,需清除浮动
: ^; J5 z& u, B/ |: R1 Z* y, ]6 M1 k绝对定位 比较快捷。 因为其本身脱离了文档流,导致了其子元素都脱离了文档流,使用性较差。0 ^7 T3 p5 ?) |2 V/ p% v
flex布局 目前是比较完美的方案。 只兼容到ie9。
# [# @) U, G3 Y表格布局 兼容性好,当需要兼容ie8时可以用表格布局。 多栏布局时,某栏高度增加,会使其他栏高度一起增加。0 {; ^! ]7 h- g) p2 j: m) x
网格布局 新技术,代码量少
7 Z/ o5 V5 N3 }% H' M }3 Z4 O3 s<!-- 网格布局 -->
7 x! {- O- e, M/ S/ _! D9 }$ c! _<body>
+ E% _4 G) ^* R3 |7 h6 Q <section class="layout grid"> % Q1 a/ ^. e8 E, f0 h& M9 X! _$ c
<style media="screen">+ o0 S2 R* T. [& `3 D* v% j4 l
.layout.grid .left-right-center{
) [+ s$ Y9 ]( i+ j display: grid;9 \% k8 S+ p0 r, a5 g1 v [7 Z
width: 100%; s8 h! u$ k, Y
grid-template-rows: 100px; // 设置行高4 G6 ^6 Y: h- E+ R v8 |) [
grid-template-columns: 300px auto 300px; // 设置每列的宽度) f" q% u3 I. o" W' d' H. m& a0 w3 T
! h2 I k7 ?- l: \; T1 C
</style>! n X4 I# l6 b* n7 h( \
<article class="left-right-center">+ N6 i7 D' ^ B4 v8 g
<div class="left"></div># l& `) G- W$ l0 S8 J
<div class="center"></div>
7 Y4 w% }. w0 H l& H$ C: e4 M <div class="right"></div>; Q7 j! X' M4 Q2 L; \3 J8 V
</article>
9 j) ]' L# a* V0 n* D </section>! Y4 C$ G$ z1 |: R- @' u& Q7 K
</body>
* X2 D+ {/ V- z) V7 k7 _1 o' U+ }2 E6 o0 o
css盒模型
/ A3 O r; S" _' _: @3 A% }' l! W5 \; G6 w B
CSS盒模型的认识* x2 A% ]& k& M; z
4 E9 z" o0 d5 n) [0 L! k4 L2 D! n
css属性: content padding border margin" T( _. I& p e: `0 ~' g* i
$ a0 A0 U7 D0 b& l两种模型:IE盒模型(怪异盒模型)和 标准盒模型
4 a; @! v9 R E- c; c5 F: ]9 |8 x8 {
两种模型的区别:计算高度和宽度的不同
* \1 _; ? [9 ]* e8 X
}# ^0 G$ _1 u5 e两种模型如何设置:box-sizing: content-box(标准盒模型); box-sizing: border-box(IE盒模型)
J9 B! t$ p, k' F; M* v' w5 {/ H1 l+ u7 i
JS如何设置获取盒模型对应的宽和高
: j' x9 k$ V+ s) ^# m& w Y4 x: V2 |4 D4 z( ~
获取方式 优缺点+ O5 D8 X2 |/ @# S: ]( y) _( I0 y8 L
dom.style.width/height 只能获取内联样式设置的宽和高
5 Q/ o2 M" A9 T0 xdom.current style.width 获取浏览器渲染后的宽和高,只支持ie
# {4 A( X2 i4 r3 b0 Z7 q! h! Dwindow.getcomputedstyle(dom).width 兼容性更好% r2 U; n ^$ z
dom.getboundingclentreact().width 适用于取元素的绝对位置。能取到 left top width height 四个属性 。// 获取浏览器渲染后的宽和高一般用于获取元素绝对位置2 S% b0 U* w8 l$ K4 c4 S6 ~
实例题 (根据盒模型解释边距重叠)子元素边距成了父元素边距
. a- c3 J2 h. V$ _ {
1 d3 N/ q+ Q$ T+ K5 }6 c. ]块级元素包含了子块级元素,子元素是100像素! U, n4 o/ i% t$ h3 r, G1 @! I
子元素与父元素上边距是10像素/ I" |& `! G2 k4 F, {2 x U) g
父元素是110px还是100px (100px, 设置了overflow:hidden就成了110px)8 j: k7 U! ~% q+ T3 I: y9 c* O5 z
另一种兄弟块级元素-
# q3 \% k( ^0 r! Q4 F8 ?; E
& p+ L6 K$ b0 K) s& m; H4 ?/ n挨着每个都有上边距或每个都有下边距。-: m7 b+ q* F* f2 E' ]
该重叠的原则就是取最大值
2 E2 \! @8 k- n r7 `4 b空元素的边距-取margin-top和margin-bottom的最大值
* O `0 v+ L4 e# a' D解决方案:$ l- u% q; s+ U+ z
& [ ~7 ]) f2 J2 E' h: ~ \/ l6 y+ L
父元素创建成一个BFC (无论父子,兄弟情况)
3 p& F: \! O* j& p9 X
* l$ q: a. d5 \% K+ O4. BFC (边距重叠解决方案)
7 }6 v P! u' Q( Z0 m
% B3 D& q' A) b. p/ _BFC(边距重叠解决方案)4 q) J4 U( A' d* c) g! ?2 y' H$ `
' {; o, N- [$ ?3 _
1、BFC的基本概念: 块级格式化上下文;
- p$ w: J1 O7 n4 f* Q' |
0 u5 L# r0 j# T$ ]+ Q* t( W" Q2、BFC的原理:BFC的渲染规则。# R( a ~+ @* L) k
( j" S4 e9 I& |6 b% W2 ?①:在BFC这个元素的垂直方向的边距会发生重叠。(同一个BFC下外边距会发生重叠)
/ m- Z. r; E( p$ J8 e* H, W! w9 {- c g6 U3 A- u& g. ^9 z
②:BFC的区域不会与浮动元素的box重叠。(清除浮动)
7 ?6 p' @1 s6 i4 k" b X* b- P5 {: u x# q1 g. A
③:BFC在页面上是一个独立的容器,外面的元素不会影响里面的元素,里面的元素也不会影响外面的元素。
) s, {, _) \# I, M8 l8 w4 b) t2 b
④:计算BFC高度时,浮动元素也会参与计算
( n5 ]0 T. J# O+ _2 a5 w0 v0 N* M$ P V
3、如何创建BFC
/ S% b! Q2 D" q0 B7 ^* ?
Y& d8 a) \5 |/ T①:float不为none。* v0 t5 z" c$ U& l3 ?* K3 | y
: [. m4 T0 q+ \' U: y- r②:position不为static或者relative。
7 @: C/ Z2 ]! ^2 }" a% o5 _+ P, j5 {0 l
③:display为inline-block或者是table相关的。3 s. T0 r1 X' H2 U9 |
+ z/ Z6 O& U" \. q④:overflow不为visible。
! D/ r# s. z" o1 |$ N* z. B& \) ?; N6 S7 A- h+ I* n( c- \
⑤ : body 根元素% [6 B: ~; Y0 D* u3 f* Z) d
2 y4 {" {+ j2 U9 L0 s0 L; ^
应用场景:
- J: b' y( P2 t9 E3 T左右布局时,float
/ n. O$ F& E2 z8 R" A2 b相邻div使用margin产生边距重叠3 U2 [* j. V9 ]: a7 d7 ` L
dom事件
* ^' q' @: K# n2 Z( t7 p4 S) Q$ q" _0 s8 n( @3 K# d4 N5 S; N0 m
基本概念: DOM事件的级别/ k/ r: T) e A+ g
7 _% t* h1 B6 ~! j1 B) aDOM0: element.οnclick=function()
c: q, K8 \* U# k- f$ Q( o8 L
6 n8 L' O- \. R" F2 K* kDOM2: element.addEventListener(‘click’, function(){}, false)
- ?. p$ Z q4 }7 s2 [. X
. }- ~# C: J: W, vDOM3: element.addEventListener(‘keyup’, function(){}, false)9 x2 K6 `. t; [+ h& U
! o- ~2 |2 R" D) M( K+ l0 @2 o% fDOM事件模型% z/ e# Y: m$ @" y5 T. k) X
. b# r9 m1 ~. n- Y. \( \9 Kevent.target 2. event.currentTarget
# c* }8 M1 c! _8 L' t/ C4 J6 Cevent.target指向引起触发事件的元素,而event.currentTarget则是事件绑定的元素2 E# n) q" I, p. y
DOM事件流
# d5 F1 H; i- c t, y: L! h0 Y0 x+ j3 p( n2 b5 p+ |# S8 o
事件流 -->《捕获》 2. 目标阶段 3. 冒泡
9 m$ \% o& F R7 Z描述DOM事件捕获的具体流程" N2 M' z' }% d* D3 V4 ^
! C3 d, ]& A( l! U
window 2. document 3. html 4. body 5. 按html结构 6. 目标元素
# Z) k/ M7 f8 t' w' }" sEvent对象的常见应用9 B- l4 Y9 a0 i6 p8 m: P
/ Y- {% k: v" X9 Ne.preventDefault() 2. e.stopPropagation() 3. e.stopImmediatePropagation() 4. e.currentTarget() 5. e.target()
( p" J5 g% v: B" e8 [自定义事件
! \: G& Y# u% d# M1 G: q' t7 g+ b1 p/ h: l5 j
var eve = new Event('custome');
8 O. v3 g0 l/ Z' Y' y! xev.addEventListener('custome', function() {
; W5 j6 V& n, y/ W) G7 `# m9 Q console.log('custome');- ?. i* E: }2 g* n2 Z" N; \; U
});! x; M/ O) |( Q/ W
ev.dispatchEvent(eve);
& P' a0 N- J5 N: l, g1
) v, ~, [/ U& [" b2
% |0 T: D3 |0 z" g3
; G8 T" t% q/ ]: O48 O& A! u n0 E2 x3 |, \# l
5, T f$ @" J% f+ ]3 B
http协议) m; H) g! x! `/ Z2 d
. t. p- [* r6 V" { C
HTTP协议的主要特点
; z( } C7 x" }9 f: m4 ]
?6 s* r' Z3 c6 `' c: ]. b简单快速(资源的URI是固定的,输入URI)、灵活(头部分有不同数据类型,一个http协议不同传输)、
; E9 b5 O1 f; H( ?1 `) G. z2 @0 ]& x$ V9 k) Q7 P4 ]+ o
无连接(连接一次就断掉)
I* r& k; Y7 ^9 v1 }% d无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。6 v3 Q: P# m2 |
无状态(两次连接身份)
$ `# v* H: j/ z- @7 b是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传' _- a4 |3 r2 O: {& w
HTTP报文的组成部分
$ a- N. }/ L0 y; q, y
3 y$ X+ l' [- {8 p( y请求报文
! y9 G- S% ^4 c1 z N
/ q* f% l6 s& |; J请求行 请求头 空行 请求体# {4 p t2 t! y7 b4 t' p: b7 a( p
- ^( _8 \. f# p+ e8 Q" f+ I
响应报文
! ^) _1 G, I c
, Z$ x1 c6 o0 M7 y4 [状态行 响应头 空行 响应体; ~7 R1 f: k) D6 F& G0 i: @! N
7 l2 p- m2 I5 G, r& }. [HTTP方法. T, E7 W- O& d$ ]
0 Y2 Y) N# ?7 w8 e7 t* ~
方法名 方法作用 注意
$ t9 K- [1 Y( d% qGET 获取资源 ) t- R0 ~2 V/ N% w
POST 传输资源
3 o# y3 E; }$ v0 b6 yPUT 更新资源
7 Z8 r3 w, {. h2 @DELETE 删除资源 0 f$ F" C" y2 N R* V p6 H+ p z
HEAD 获得报文首部
) k% v4 o( ]! NPOST和GET的区别
. ^' R. i$ i" J# R5 U9 K+ N& v; _9 G p
" q( r8 r. j2 u6 m) ~% zget post8 J" e: J* G2 x- @
在浏览器回退时是无害的 会再次提交请求' s N- b1 X" y! n. f3 D
产生的URL地址可以被收藏 post不可以; H% z+ e. |$ S# J
请求会被浏览器主动缓存 不会,除非手动设置
5 A1 G; i `. D* Q只能进行url编码 支持多种编码方式# {/ m7 S; }/ {' g' G& f5 a
请求参数会被完整保留在浏览器历史记录里 参数不会被保留$ i8 k* d! o& N; }
请求在URL中传送的参数是有长度限制的 没有限制
- W {+ t' ~2 d对参数的数据类型,get只接受ASCII字符 没有限制
+ L: [ B& X5 @- J8 P3 g t更不安全,因为参数直接暴露在URL上,所以不能咏柳传递敏感信息 没暴露
. W( O9 e, ]* }1 G$ D% l" l参数通过URL传递 放在Request body中+ ]& V, r- l) {5 s
HTTP状态码
, C* J) u, h. E$ [; x
" h! n/ R' S! o/ T9 V7 d状态码 意义
/ ?2 _# a6 d! G6 w, ?% [1xx 指示信息 - 表示请求已接收,继续处理。
& p c% F4 U$ @9 @0 v/ h5 ]2xx 成功 - 表示请求已被成功接收。0 T8 Z r' Q% l: s# n
3xx 重定向 - 要完成请求必须进行更进一步的操作。
9 _" K+ D3 k5 c: _4xx 客户端错误 - 请求有语法错误或请求无法实现。
6 Q1 c6 w0 C+ v5xx 服务器错误 - 服务器未能实现合法的请求。
" ]- y8 P* \/ z状态码 意义
! p8 ?4 d$ W* `2 m200 OK 客户端请求成功" ? W1 s7 o$ O* |+ H/ q
206 Parital Content 客户发送了一个带有Range头的GET请求,服务器完成了它" x5 y5 ~) `! _5 C+ Z/ b
301 Moved Permanently 所请求的页面已经转移至新的url$ `" S% `% U* u! R" P* `: A" t
302 Found 所请求的也么已经临时转移至新的url
4 m; ~- w8 s- u6 Q( Q' c8 h9 t304 Not Modified 客户端有缓冲的文档并发出了一个条件性的请求, 服务器告诉客户,原来缓冲的文档还可以继续使用
! r9 p% y6 s5 L: a; M% Y2 {9 K400 Bad Request 客户端请求有语法错误,不能被服务器所理解
3 ^) ~2 g R% s1 }$ \+ D401 Unanthorized 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用) h. i7 R; O/ i# t( r: }- X
403 Forbidden 对被请求页面的访问被禁止
; v' I. T& [& F8 \" c. e404 Not Found 请求资源不存在8 K3 ~6 { l9 f L& ?( l$ b
500 Internal Server Error 服务器发生不可预期的错误原来缓冲的文档还可以继续使用
) u8 P3 R( R* t, M* B503 Server Unavaliable 请求未完成, 服务器临时过载或当机,一段时间后可能恢复正常+ P4 t0 f8 c) L4 w& D, I2 J
什么是持久连接
( w9 ]- {' R' H. m \0 b7 E# i
$ \! ]5 L7 l$ HHTTP协议采用“请求-应答”模式,当使用普通模式,即非Keep-Alive模式时, 每个请求/应答客户和服务器都要新建一个连接,完成之后立即断开连接(HTTP协议为无连接的协议)" _8 [: y5 O+ U j! c! _
6 n: |2 R, D' {
当使用Keep-Alive模式(又称持久连接、连接重用)时, Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。
! f3 k5 |: G+ o, ^: j8 p& h
" G5 R3 b- W. }, Z* s. Y4 x! O使用了持久连接1 y E5 P6 }* m( O4 l
7 C4 J0 @- V% x9 k* B; q* U
请求1->响应1->请求2->响应2->请求3->响应3: i5 d% f ^& y, J+ d" S* P2 T
( Q; d" g/ k* ?' I! D9 o变成了/ E7 D7 D2 l! C5 g
8 T8 ~, X- V g) m# A: i- p请求1->请求2->请求3->响应1->响应2->响应3
/ S5 ?+ K2 L" p" U0 w" g
& P9 m$ O% M4 @8 z: y; d+ _1 L什么是管线化
; |9 P/ a) m! A( e% j' j! v- ~0 z9 c
: p ~( r f+ }- _管线化通过持久连接完成,仅http/1.1 支持此技术
5 a: v5 a S& X, y只有get和head请求可以进行管线化,而post则有所限制
7 o6 [# M$ \1 [初次创建连接不应启动管线机制,因为对方(服务器)不一定支持HTTP/1.1版本的协议 `1 q* l- R* Z; }) y. E- K9 a4 W7 q5 A
…/ z4 M' k' T9 q, { c+ f' R- K4 z8 @
安全6 t7 l; T# @8 k" B: T0 }# S' ~- ]
2 n D3 J* U% d$ G8 V' X/ YCSRF; |( e# r5 p& k4 x5 r2 }, p
基本概念和缩写
1 I# d' Z1 P5 ]CSRF, 通常称为跨站请求伪造,英文名Cross-site request forgery 缩写CSRF。
& H4 `) v/ Q. `4 y5 d攻击原理% b6 j( ?' k% D( }4 |) u: ?" x0 X8 t8 F
访问网站B时,网站B引诱点击链接,用户浏览器携带的cookie就被网站B的某些代码访问了。 R& G, A8 `& p# K5 t' _7 K0 |
这利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。 X) g7 _/ C8 { Y8 r& m
XSS4 n/ c7 z; e- |7 A
基本概念和缩写
0 Z2 W" `9 o1 {XSS, 跨站脚本攻击, 英文名Cross Site Scripting 缩写XSS。1 @& A6 Z D K$ x. Z: f
攻击原理6 T. V- [* P) Z$ s! l, V
输出脚本code; q+ J" @. R# [2 J
跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
w# m7 `. a8 a( M5 w% ^xss漏洞通常是通过php的输出函数将javascript代码输出到html页面中,通过用户本地浏览器执行的,所以xss漏洞关键就是寻找参数未过滤的输出函数。
" W4 v9 P* s4 [7 y. o l渲染机制类& \. y; m7 b) [! l' J
( @, E" l/ g6 e
什么是DOCTYPE及作用$ I* W5 W/ ]/ q7 d) B- M
* H3 {" }0 l* r/ f* e$ F
DTD (document type definition, 文档类型定义)是一系列的语法规则,用来定义XML或HTML的文件类型。" R- b/ Y8 l6 ?% }& V" p9 N7 P6 p1 E
作用:浏览器会使用它来判断文档类型, 决定使用何种协议来解析,以及切换浏览器模式。2 G9 s( n- M" I- y% o% [% g2 i8 @
DOCTYPE是用来声明文档类型和DTD规范的,
* ~. s$ c+ E# v作用:一个主要的用途便是文件的合法性验证。如果文件代码不合法, 那么浏览器解析时便会出一些差错。
+ L- b# W, J) h* h: C/ K: t, THTML5的DOCTYPE:4 X" W: j& |- o8 Q& \$ V/ M
: \9 Z# D$ B7 EHTML4有严格模式和传统模式
2 R: s c% w! H2 U
" I2 U1 M) R! I- v浏览器渲染过程; C3 `8 @7 I& z1 Q) R
$ T6 Y9 E, L; _% a' w2 r. ?) e: A一些概念7 S7 ]1 d$ K9 Y; P1 `; O/ l
Y3 O8 J: e$ `! u名称 概念
1 u8 r; j0 q( ?1 ?% S N9 [- F5 D& SDOM Tree 浏览器将HTML解析成树形的数据结构。1 S7 K# X! ?+ g6 y
CSS Rule Tree 浏览器将CSS解析成树形的数据结构。# Y1 y! `( M# O1 [
Render Tree DOM和CSSOM合并后生成Render Tree。
7 L6 W7 T3 F1 ~& A; J7 ?# nlayout 有了Render Tree,浏览器已经能知道网页中有哪些节点、各个节点的CSS定义以及他们的从属关系,从而去计算出每个节点在屏幕中的位置。( Z8 N+ @0 u6 o8 e/ Z/ G' I: W* {
painting 按照算出来的规则,通过显卡,把内容画到屏幕上。
( ^2 l% W8 ^# q1。当用户输入一个URL,浏览器就会发送一个请求,请求URL对应的资源
& h! }, r! ?& r" E' t; Q2。HTML解析器会将这个文件解析,构建成一棵DOM树
5 Q. ~- r0 j% k! R3。构建DOM树时,遇到JS和CSS元素,HTML解析器就将控制权转让给JS或者CSS解析器2 M/ q$ ?8 q6 q4 c9 J ]
4。JS或者CSS解析器解析完这个元素时候,HTML又继续解析下个元素,直到整棵DOM树构建完成8 s& X. H- Y. N' X, C4 n" _
5。DOM树构建完之后,浏览器把DOM树中的一些不可视元素去掉,然后与CSSOM合成一棵render树# R) W0 _* \- o% h/ ^# N
6。接着浏览器根据这棵render树,计算出各个节点(元素)在屏幕的位置。这个过程叫做layout,输出的是一棵layout树
6 N4 Y1 b$ R- M) ?6 N9 U2 j5 u7。最后浏览器根据这棵layout树,将页面渲染到屏幕上去
; f+ k* H% q' r, L0 a1
: J+ Y4 l0 _6 J9 Z; t2
3 F) G- W, u) T3 ~# z, w3
, x. l Y, Z( U8 v9 e4
7 i5 D" X+ Y& i: T: X. N5
. K W1 S; m: K# c6
6 A7 F( T. x9 W) z9 G8 _! F75 r' Q) M# u4 A
重排Reflow
9 ^, a# G K( M+ f$ j0 u% L# n* A6 d# `& W5 `" q. _
定义:当浏览器发现某个部分发生了变化影响了布局,需要倒回去重新渲染,内行称这个回退的过程叫 reflow。" a/ H$ c1 R4 O ^8 f
触发Reflow:
5 D& H, d8 f% | }当你增加、删除、修改dom节点时,会导致Reflow或Repaint: g4 h6 j6 n; Q4 d# N
当你移动DOM的位置,或是搞个动画的时候
9 f! T: v# g9 Q) ^ Z/ Q, @4 e2 z当你修改CSS样式的时候- H8 Q1 q1 g# c0 j% H& F
当你Resize窗口的时候(移动端没有这个问题),或是滚动的时候0 R1 E) L( r3 E1 ?; W/ u
当你修改网页的默认字体时
8 p( l" c/ m3 Y- L重绘Repaint5 E% W* O& x5 u6 r; f
2 w6 D3 {' G) W0 M" R4 W p
定义: 改变某个元素的背景色、文字颜色、边框颜色等等不影响它周围或内部布局的属性时,屏幕的一部分要重画,但是元素的几何尺寸没有变。) Y3 L( D6 k5 y% ]
: q: L" G s9 \- p" B触发Repaint:
6 A. L4 s0 c+ j0 w4 h2 c$ f
6 M" q A% x& s9 \3 sDOM改动
7 r8 C9 S& `9 j2 C; C$ R. ~CSS改动
0 M" b% q( j. V————————————————
' R# A* P# `% V# z, {0 d. n版权声明:本文为CSDN博主「ton365」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
: K n( l$ `: g6 L7 g! q原文链接:https://blog.csdn.net/u012015672/article/details/105931291; Y# _0 J/ _, ^- y8 |/ |' |: f
4 w4 `0 J+ X$ Z
3 {; y6 e% j' [ |
zan
|