- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 563283 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174208
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
HTML 知识点(未完)) P, r' y. Y$ D2 X2 `. q
! K/ K5 E9 U- {' wHTML 知识点 p6 I1 N! W& b' Y
. W+ S* V$ N! S( \ |三列布局- (高度已知,左右宽度固定,中间自适应)1 n0 T- ^/ { I1 x
& s: E1 r0 @; U布局方案 优点 缺点6 M- y( X1 n/ X m
浮动 兼容性好 脱离文档流,需清除浮动
* S/ A, B2 p1 x; o绝对定位 比较快捷。 因为其本身脱离了文档流,导致了其子元素都脱离了文档流,使用性较差。
5 S" q. _. E6 N7 P1 Q4 z# F; Yflex布局 目前是比较完美的方案。 只兼容到ie9。
# ?/ L8 g8 u" C! Y, k0 d1 C表格布局 兼容性好,当需要兼容ie8时可以用表格布局。 多栏布局时,某栏高度增加,会使其他栏高度一起增加。
% t! p+ Q5 t; a' B网格布局 新技术,代码量少
0 u& N+ }! I( _8 ?' ~) ]<!-- 网格布局 -->
; E) a$ {2 [# o4 ]+ V1 k" j$ ]<body>
' h0 j, s( U v3 H) \ <section class="layout grid"> - e+ {5 r; H* _! Q1 L/ p2 f+ L
<style media="screen">8 T5 j. R/ V, l0 M1 E6 v
.layout.grid .left-right-center{
- I5 f5 @$ x. P) U display: grid;
. N' j. j6 O! f width: 100%;4 a0 p7 {+ t: e- l8 u% J. I% [2 h
grid-template-rows: 100px; // 设置行高 n0 W( K$ ]' f. f5 y
grid-template-columns: 300px auto 300px; // 设置每列的宽度
$ ^9 ?6 z2 R; w! g) ?6 {$ Y
$ Z: m) ~! u: ]5 {! E' D! ]/ i1 D </style>
* W% c* i8 k% |: q" J' ?' w7 Q <article class="left-right-center">, A9 `6 X6 l" G# W1 O; o4 ^9 B
<div class="left"></div>
5 \( L* @- R0 h+ q5 d <div class="center"></div>3 D& [ Y8 e% R! I
<div class="right"></div>
# |# C% V* e! \# g$ e </article>
* E) I6 ~/ F" g9 L </section>. d3 |8 g, _ C2 F$ k/ E- l6 ?
</body>' a7 X9 ]6 Z" }( B0 s5 ^
" w# ?. h6 D4 `1 L. hcss盒模型7 S! x4 @" V+ V. M; ~ y( O
4 ?) R4 n$ F* ~& [# gCSS盒模型的认识7 Q3 k: d, q( T3 c( O7 B. s
% R% u3 p$ ]6 s
css属性: content padding border margin
1 R/ M1 V% B; d8 F" x3 h3 W! h: B) [ ]' a" U% x" o! H
两种模型:IE盒模型(怪异盒模型)和 标准盒模型
, Y% P& y2 r! q$ |' ~; B- A" o+ _4 y& K/ @8 Z" J' K- b/ V
两种模型的区别:计算高度和宽度的不同
- i1 D) G+ v6 F
$ _2 ~% e L- ^+ E6 M. d! ~两种模型如何设置:box-sizing: content-box(标准盒模型); box-sizing: border-box(IE盒模型)
7 ^9 i8 [& V9 @0 q3 V y4 ^) Z( Q" e# P' O
JS如何设置获取盒模型对应的宽和高6 N/ D( n3 H: T( N! z3 B" K; `
! G& U" t- ~ E/ z8 S# n获取方式 优缺点
8 ?; T2 n4 n1 W/ `dom.style.width/height 只能获取内联样式设置的宽和高
4 d: F9 N) k% b: Z: `; idom.current style.width 获取浏览器渲染后的宽和高,只支持ie
1 c/ @: J3 ]9 x9 K( X1 }+ jwindow.getcomputedstyle(dom).width 兼容性更好! Z- \& p2 _, y; q f) N
dom.getboundingclentreact().width 适用于取元素的绝对位置。能取到 left top width height 四个属性 。// 获取浏览器渲染后的宽和高一般用于获取元素绝对位置. s. s/ c+ i& F* n& o
实例题 (根据盒模型解释边距重叠)子元素边距成了父元素边距: K, }. `: ?/ u& J4 l
! K; \8 b y- _ w块级元素包含了子块级元素,子元素是100像素/ h* f1 t9 a5 n/ n
子元素与父元素上边距是10像素
, a- A6 k2 N$ W& X7 `. s+ o% Z父元素是110px还是100px (100px, 设置了overflow:hidden就成了110px)
/ J& L& |4 p) O, o) B0 s/ {另一种兄弟块级元素-
2 t/ D- z! I% @0 q4 I' v q: \: R% B' f1 `' }( j
挨着每个都有上边距或每个都有下边距。-
4 d& D: `' J) D7 m. A该重叠的原则就是取最大值
/ Z: k, ~+ I/ _/ T8 Z空元素的边距-取margin-top和margin-bottom的最大值
( \( [% v6 S2 u' @$ }解决方案:' y( P* o' Z$ u: K; @- Z# |) I3 _
% q$ [% m, q$ \) U8 s% k父元素创建成一个BFC (无论父子,兄弟情况)$ o" [- r+ U# w' H, z7 I. ~
4 j2 B/ R$ @- h) v% Y
4. BFC (边距重叠解决方案)) T( m' W# y" G6 ]: s
3 H" p& ?' C! p0 ?5 u6 l, r
BFC(边距重叠解决方案)
$ l' E4 t/ |, r5 }- W( q. P( }8 B/ S8 s. y8 s9 N+ i: P
1、BFC的基本概念: 块级格式化上下文;
, X5 |9 Y6 E; f4 D4 u7 p( `/ z; p$ \% ~
2、BFC的原理:BFC的渲染规则。
% M2 ], G& c% p' @8 m$ _5 y" h1 `/ Z$ V6 R7 d' E \+ B
①:在BFC这个元素的垂直方向的边距会发生重叠。(同一个BFC下外边距会发生重叠)1 B8 c4 D& I* |! o$ U
4 P" w1 L8 K& Z' T( S
②:BFC的区域不会与浮动元素的box重叠。(清除浮动)5 J6 S6 f& z, d5 _( J3 m
" v) C6 [& w1 Y) s1 B5 c: o" q* O
③:BFC在页面上是一个独立的容器,外面的元素不会影响里面的元素,里面的元素也不会影响外面的元素。0 s' T& B9 o' C4 X6 Q
8 B0 A) _. H, I1 J+ k6 m7 P! F④:计算BFC高度时,浮动元素也会参与计算
1 S/ P7 K* ^! j7 w9 [+ R7 z0 A& U' e* W. i7 O( d
3、如何创建BFC, }8 w/ c! ?( \+ X/ P8 @1 y
& L; Y1 R. [$ ?9 C0 ]①:float不为none。
n W- r1 D: A& U# ? p
a1 r; l5 b( t1 k% ]②:position不为static或者relative。
! B: t, m* k7 C2 Y, i. d9 R* }
% \/ b B) L9 t/ d8 c9 o% n% `③:display为inline-block或者是table相关的。
: Y* t9 ?: S! B# v3 s0 K$ j
0 g& M- |' W5 |2 U④:overflow不为visible。
5 a0 D2 V+ ]* d8 y! K* X3 S6 [ K2 h8 S6 q# @2 I/ W
⑤ : body 根元素
+ W& J* N3 U$ G$ M( M" d, L9 y& ?' N7 ?$ u# T* z! v( T
应用场景:
6 F) y0 O5 w# A6 p8 i% g* R* I左右布局时,float 4 b; @: ?: o2 V; F3 s
相邻div使用margin产生边距重叠( x. m7 I% t X' v- j" F
dom事件6 F# c- q B; V$ u
: g3 a: E1 z, T; Z基本概念: DOM事件的级别
2 K# f/ C9 v& p, V9 d, |
& O, ] e, S, f' Z7 q+ kDOM0: element.οnclick=function()
! W$ r& \+ X# f( a! t+ w
9 D+ B! V! k( d aDOM2: element.addEventListener(‘click’, function(){}, false)6 Q( n2 I; \& m7 W5 _
3 q! ?# j0 k6 c) M/ Y/ ZDOM3: element.addEventListener(‘keyup’, function(){}, false)8 F. p' p6 z! p: b* t0 l
2 W2 t5 m0 h. ]DOM事件模型
2 ^* W( _$ u, D$ V; _ R u) u7 ^! |! d; t+ n7 E! S7 o5 U. H
event.target 2. event.currentTarget4 j8 V6 A, y5 e! Y3 v. ?. G
event.target指向引起触发事件的元素,而event.currentTarget则是事件绑定的元素1 w- D1 u! z# {+ @; m. w
DOM事件流
1 h& l. t8 g1 T& h4 q% c( P- Z- `, s
事件流 -->《捕获》 2. 目标阶段 3. 冒泡9 X1 P0 t1 L" n, J% r# e; m
描述DOM事件捕获的具体流程9 s6 J, ?5 |5 O9 S8 @. o. G e# G: h
8 k1 U2 h1 o) ]
window 2. document 3. html 4. body 5. 按html结构 6. 目标元素
2 n' I3 w2 s5 l' f8 y' K, N+ X0 ^Event对象的常见应用
3 X0 Q/ r6 i/ _+ {5 `* e2 B8 G+ K1 ?8 y0 x! A8 V7 z0 r8 v
e.preventDefault() 2. e.stopPropagation() 3. e.stopImmediatePropagation() 4. e.currentTarget() 5. e.target()$ x& c$ @4 O! Q3 B' Y2 D: O5 x
自定义事件3 G7 \* t: ^9 q& e
5 k. r$ y; o( R: s5 kvar eve = new Event('custome');
7 x% W9 L: s( u6 Tev.addEventListener('custome', function() {: l; K# I: V9 D2 M% M
console.log('custome');
$ E5 C0 b1 {, k5 [});
7 Z, u7 Y$ Z) E7 S9 @6 Rev.dispatchEvent(eve);8 N8 r3 E$ _ `8 J
1- [" O, v, W% U- u( f y8 B7 m8 X
27 k4 w. r5 g5 C; ?- G
3
! o5 Q( F6 I5 O9 J/ W4 }4
$ w+ @$ |. y" l' I* D: D% H5; O9 m% q/ y7 `* ^ G
http协议2 R7 }2 t$ |9 K4 {
) o; o7 r/ C: a2 ~( UHTTP协议的主要特点
. u- R: a2 b4 b5 ]& g6 [3 X% e$ c4 k* b
简单快速(资源的URI是固定的,输入URI)、灵活(头部分有不同数据类型,一个http协议不同传输)、
! s% r4 q) v% v: F3 R0 F! v, y5 L
无连接(连接一次就断掉)' s+ M0 o' x( L) o ]) p8 v
无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。
4 f6 `1 J: D- W: [. k: \6 Q2 Q无状态(两次连接身份)
! f1 J: [- W2 A5 V! K是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传
# s4 Y0 _+ U) i7 {9 p! JHTTP报文的组成部分2 x7 x1 @' r; M
: D- @" b* E$ u, L2 A请求报文( C3 {) `/ O1 _4 W s) t4 c% n$ |
8 \* L* A/ g0 M* s$ l% Q4 m% t
请求行 请求头 空行 请求体- r4 a8 ?5 Y- Z x9 Q1 [8 m
3 G& l4 T8 u# X5 x: W! N) ]响应报文5 J% Q' W, |; n$ {1 {6 u: \: w" G
5 G/ x. z& U Q# Z2 A# N" ?3 _状态行 响应头 空行 响应体
: y9 e! i9 J$ |4 @; i& R! v9 u6 X& f& `
HTTP方法
, C; X$ y: r+ H3 i/ h* y2 y
, E% c( D; i u4 }$ b方法名 方法作用 注意; @+ @/ w8 g% p4 P$ z% y# ]
GET 获取资源 s, V$ J2 S7 t" h, f9 T
POST 传输资源
# P. O; V' ~% [1 q4 NPUT 更新资源
; F8 Q w0 ]7 l+ ?8 u% qDELETE 删除资源
3 M6 q9 |- ~) Q5 i& CHEAD 获得报文首部 5 f( i: l' {& j! b a
POST和GET的区别% h" z) O. c8 ^; @4 R# A
& A+ b4 X) s" L3 D- l' a5 {! i* o
get post9 d8 x3 d% I% L; F. s% W
在浏览器回退时是无害的 会再次提交请求
6 `4 G! A& O8 ^! [1 K7 \" X产生的URL地址可以被收藏 post不可以
5 ^% y# d) ]- e4 B7 j& n$ F请求会被浏览器主动缓存 不会,除非手动设置5 S! ^4 r- E0 K
只能进行url编码 支持多种编码方式' P: q7 A2 o; I, t7 f0 J$ C
请求参数会被完整保留在浏览器历史记录里 参数不会被保留2 K" C0 s. J3 }+ w; o
请求在URL中传送的参数是有长度限制的 没有限制
* S' ^$ W- D4 \) F/ r对参数的数据类型,get只接受ASCII字符 没有限制
' x6 L3 E. W: T' F, j3 i, Q更不安全,因为参数直接暴露在URL上,所以不能咏柳传递敏感信息 没暴露
" y; I7 B+ C/ }# Y, C参数通过URL传递 放在Request body中
" D) e* W; d' tHTTP状态码
( w8 s8 o4 d! K+ y$ M& ]3 Y
* \8 \ ~- E! Q状态码 意义 l$ o# E5 g2 D0 u8 i
1xx 指示信息 - 表示请求已接收,继续处理。. N* [. Q2 |( @5 @0 `
2xx 成功 - 表示请求已被成功接收。
! d8 B& G8 c4 Z& W7 l3xx 重定向 - 要完成请求必须进行更进一步的操作。
% U% U* \) f4 w ^4xx 客户端错误 - 请求有语法错误或请求无法实现。, W( N1 s V4 x! B( `
5xx 服务器错误 - 服务器未能实现合法的请求。
0 G% T8 y" Q" c' r0 ^% r状态码 意义
% D# ~5 }" o" _1 a200 OK 客户端请求成功
4 t1 N8 q: m' u7 P8 F7 s206 Parital Content 客户发送了一个带有Range头的GET请求,服务器完成了它1 i- ]' ^* P# ?; M9 e3 U( G2 E
301 Moved Permanently 所请求的页面已经转移至新的url
2 x& t* h/ B$ M) a" x302 Found 所请求的也么已经临时转移至新的url
+ O+ w9 v" |3 E& G1 \304 Not Modified 客户端有缓冲的文档并发出了一个条件性的请求, 服务器告诉客户,原来缓冲的文档还可以继续使用1 {$ g6 ?2 l- i. V6 t
400 Bad Request 客户端请求有语法错误,不能被服务器所理解( T# O2 Q K% r* H3 G
401 Unanthorized 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
1 c2 F- H; Z/ W0 o" E403 Forbidden 对被请求页面的访问被禁止' \- e9 l$ K/ d/ P" Y
404 Not Found 请求资源不存在
- X/ R5 l/ Z" C500 Internal Server Error 服务器发生不可预期的错误原来缓冲的文档还可以继续使用
/ r3 Z. R' k/ r# x$ t503 Server Unavaliable 请求未完成, 服务器临时过载或当机,一段时间后可能恢复正常$ x( s. }+ o0 A3 r4 S' Z: Z6 [8 c" u
什么是持久连接
) K$ V0 m( a, M% Y- K/ F3 ?. I+ Y" W# `) D' S6 ^' p/ o5 ?
HTTP协议采用“请求-应答”模式,当使用普通模式,即非Keep-Alive模式时, 每个请求/应答客户和服务器都要新建一个连接,完成之后立即断开连接(HTTP协议为无连接的协议)
: O' b, |( j+ L$ O9 @ D# d0 G# \; |) [) t; I9 S; O8 h; p/ \
当使用Keep-Alive模式(又称持久连接、连接重用)时, Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。
# M; H* A# G, S& d/ d' I7 }. S+ N
使用了持久连接
4 f) N( Q% \: f: E% Z, h* X& P/ o
& X" s0 h3 }7 l6 {+ f% p b请求1->响应1->请求2->响应2->请求3->响应3
$ O# t0 I- w) ^5 m/ N8 l/ J1 Q! Z6 |" c. @9 G% C
变成了
# \: c' s% R o; D2 p8 o4 U6 v! K l9 H# |
请求1->请求2->请求3->响应1->响应2->响应3
+ Y0 p5 z2 Q! n( k" ]7 H* V/ W/ F) _/ h m
什么是管线化0 ?+ q+ r: i4 U/ a+ O8 u
' c, {) @+ R s0 @' u& ?
管线化通过持久连接完成,仅http/1.1 支持此技术- f; Y$ A" S# ~9 M) m( r' ]# P' S
只有get和head请求可以进行管线化,而post则有所限制
' s; a) k a* r# {$ V9 t初次创建连接不应启动管线机制,因为对方(服务器)不一定支持HTTP/1.1版本的协议
) H* G( {" @( f* { d…5 y) w7 e; j) Y% U
安全
/ L! p$ a4 H+ Y" K, }- P6 Z1 Q$ n- K) @( j+ l: z- ^0 L5 m: u' }
CSRF$ W1 b& u! s7 a& Z# o
基本概念和缩写
9 V ]" a& W& q% ?0 QCSRF, 通常称为跨站请求伪造,英文名Cross-site request forgery 缩写CSRF。
$ {4 D' ] U8 ^7 H* g# B* Q攻击原理
" p% Z+ K& S4 p2 [$ T访问网站B时,网站B引诱点击链接,用户浏览器携带的cookie就被网站B的某些代码访问了。7 f. l' G& v2 r% k; x1 Q
这利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。7 z/ q; v7 p9 G' u$ A! B
XSS1 \* G% }% v2 c/ |- `
基本概念和缩写
8 O& Y' s8 U) Q6 D( K. S# SXSS, 跨站脚本攻击, 英文名Cross Site Scripting 缩写XSS。
& E4 ^0 C0 |+ j0 O! X/ N; d6 m攻击原理& c" _# m8 S; [: E2 g5 c
输出脚本code+ {( N8 J" z/ B6 ?, H2 l- o. B
跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。# b* y3 a5 L2 p; r8 k( C+ P
xss漏洞通常是通过php的输出函数将javascript代码输出到html页面中,通过用户本地浏览器执行的,所以xss漏洞关键就是寻找参数未过滤的输出函数。. i, e1 @( V; t" ]: F
渲染机制类& a) a& I2 _' u7 G% ~# c
8 a) T! q4 p! i+ a2 C
什么是DOCTYPE及作用
{( X& R( B# }& @! ]& @+ ?3 a& ~' o$ G9 n. i0 v
DTD (document type definition, 文档类型定义)是一系列的语法规则,用来定义XML或HTML的文件类型。( x& g( h# U: c' j* m9 _/ F
作用:浏览器会使用它来判断文档类型, 决定使用何种协议来解析,以及切换浏览器模式。- P0 ?' E0 t5 c
DOCTYPE是用来声明文档类型和DTD规范的,8 l0 O6 Y. \) J2 r
作用:一个主要的用途便是文件的合法性验证。如果文件代码不合法, 那么浏览器解析时便会出一些差错。8 ]0 B# b" q# B1 W. z/ y# f! Y
HTML5的DOCTYPE:* E$ W5 B- |$ I5 x `0 o7 [ V
6 ]% u; O- K' yHTML4有严格模式和传统模式0 R; @0 a- |% {+ S9 ]) g
' i6 p8 l3 D4 S! I9 q( y浏览器渲染过程
$ m" w: m' v* \. J+ S% d0 f- D0 E$ `6 b: \+ p% I7 ?
一些概念
7 b! F9 m& |! c& X4 u" \
$ B8 \ Z& U7 k, R5 N9 Q- L, e) V名称 概念
6 ], z- h# P: U& w6 N0 c6 jDOM Tree 浏览器将HTML解析成树形的数据结构。
; |- z3 C; x' Y! l- @7 LCSS Rule Tree 浏览器将CSS解析成树形的数据结构。/ m4 P) U% u( q2 g, Y) B* m" O
Render Tree DOM和CSSOM合并后生成Render Tree。* O2 \& H" S- j9 r3 B' J
layout 有了Render Tree,浏览器已经能知道网页中有哪些节点、各个节点的CSS定义以及他们的从属关系,从而去计算出每个节点在屏幕中的位置。( k. I( J) b* Q. r1 c
painting 按照算出来的规则,通过显卡,把内容画到屏幕上。% t; E& ^4 D# x8 m7 g5 c+ v0 b. [
1。当用户输入一个URL,浏览器就会发送一个请求,请求URL对应的资源
6 c$ ~0 S& @7 V0 O2。HTML解析器会将这个文件解析,构建成一棵DOM树0 A1 x: N `. V) A& I8 m/ U. |6 }
3。构建DOM树时,遇到JS和CSS元素,HTML解析器就将控制权转让给JS或者CSS解析器
. A. Y8 W+ c' u$ h# K$ H9 I' b' `4。JS或者CSS解析器解析完这个元素时候,HTML又继续解析下个元素,直到整棵DOM树构建完成& m s0 _/ m) R3 V3 J" ~
5。DOM树构建完之后,浏览器把DOM树中的一些不可视元素去掉,然后与CSSOM合成一棵render树
) [# O& A2 }9 K* n6。接着浏览器根据这棵render树,计算出各个节点(元素)在屏幕的位置。这个过程叫做layout,输出的是一棵layout树& N% y2 ?3 Z8 Z$ w
7。最后浏览器根据这棵layout树,将页面渲染到屏幕上去
2 O' ]( R, X0 ]1
) s% \9 \( _; k% O6 k2
" P3 I6 L7 ^; i' f5 Z3% V5 \5 {4 P- j* }
4" ^- `( O: t* r* J6 N
5
; q1 L3 I6 H& N6 |. ?63 V+ O( R: K6 O- [
7
% p7 N' h2 u$ J4 Y重排Reflow
8 [. q& }. E5 F# j: v9 o! Y7 h* W
2 d. u& P- S; A) h定义:当浏览器发现某个部分发生了变化影响了布局,需要倒回去重新渲染,内行称这个回退的过程叫 reflow。9 A& K6 G, p$ @
触发Reflow:7 J% ^, |2 m* ?( S- F5 }3 k9 K& ]
当你增加、删除、修改dom节点时,会导致Reflow或Repaint7 b/ Z! I' ?- D; Z( ]3 S* y
当你移动DOM的位置,或是搞个动画的时候' `9 | w8 O+ N# ^# w* f! z7 ]: G
当你修改CSS样式的时候
$ \! c8 s5 t6 C* h% E当你Resize窗口的时候(移动端没有这个问题),或是滚动的时候4 \- z1 x. @9 ^0 G% p
当你修改网页的默认字体时
* d4 O8 h; [# g: D2 T/ E重绘Repaint5 r7 i" j- |+ _- p5 C
% ?2 R6 S P* Z/ c: z0 k5 J
定义: 改变某个元素的背景色、文字颜色、边框颜色等等不影响它周围或内部布局的属性时,屏幕的一部分要重画,但是元素的几何尺寸没有变。& \) y5 b, s6 P
1 @. ^8 s4 p( V4 [8 E" `2 B) {' g触发Repaint:
0 y& _; P& ]% s7 I" o0 Q) G
5 F* J& @$ i! Q$ @7 S$ IDOM改动
$ E w+ y D9 G5 h4 k* KCSS改动$ C/ A, p Y% S6 o! C8 w
————————————————9 i1 ?; a6 _5 v0 J3 o
版权声明:本文为CSDN博主「ton365」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 }. ]2 O9 p, e% A
原文链接:https://blog.csdn.net/u012015672/article/details/105931291
9 L( \) i- {- ^7 I% V# E z, r( M8 k: _8 z! [: P8 Q( u
& b* d4 N& C( F5 [- _7 ?. Q |
zan
|