- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 564697 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174632
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
HTML 知识点(未完)
$ G( N& ?- e! K6 Y. A# l9 D! ^8 S8 |) e* l5 Q6 e) Q. M
HTML 知识点% V( }, @; s% k; C
3 m* A1 y q- H' C! {, ?
三列布局- (高度已知,左右宽度固定,中间自适应)
& l0 v+ S% [" A9 U7 M6 w9 t5 Q( S" r! R+ j, C
布局方案 优点 缺点# |; C1 w' {1 e
浮动 兼容性好 脱离文档流,需清除浮动
, t) Z+ f% l: Z* Q绝对定位 比较快捷。 因为其本身脱离了文档流,导致了其子元素都脱离了文档流,使用性较差。. N5 ?% P5 G) _5 L
flex布局 目前是比较完美的方案。 只兼容到ie9。
( k8 m3 e, Y W2 T表格布局 兼容性好,当需要兼容ie8时可以用表格布局。 多栏布局时,某栏高度增加,会使其他栏高度一起增加。
5 f! V/ s Q3 l% G% ]网格布局 新技术,代码量少
2 Q' \8 ^: `1 V& h* D<!-- 网格布局 -->/ _/ }4 x/ Y$ i5 C9 g$ E
<body>9 I s% |+ P3 K( Z" f% f
<section class="layout grid"> * b" B" c8 P. g, [% A
<style media="screen">
2 F9 H4 p4 D, T .layout.grid .left-right-center{+ F& f+ u: U' Z5 T6 i
display: grid;
! ^. ^7 k4 i- t width: 100%;
0 c! W6 `: g( [( S( W grid-template-rows: 100px; // 设置行高- r- D$ l8 p" ^; i( S$ y+ Y# t( J/ O
grid-template-columns: 300px auto 300px; // 设置每列的宽度
/ ]# h g6 j9 c8 w
: i9 k. p- i" }; ^! @4 S </style>* p3 ~7 ^8 o- X8 h4 i
<article class="left-right-center">
; c/ {" b8 Y" D% {2 t1 R* U/ f6 C <div class="left"></div>
" o7 y4 k- _. | <div class="center"></div>3 ]' O3 O7 j( j- l# k2 w
<div class="right"></div>) P) T' \8 o3 e& ^& K
</article>
* X, X3 B) t3 a$ G' m0 K6 g </section>
1 J' Q( M& C; X5 o [</body>
# F! V. _& [1 ]3 `' k: z- ]& b6 p: [ ]3 N8 f/ @
css盒模型
5 b+ e$ a* _: y5 O* R/ t6 Y) n# H: i' a9 e% X4 d
CSS盒模型的认识
7 ?% ]: ? x8 d p |- \- ~! ~- i
css属性: content padding border margin8 ^' Y' @; ~, W1 X) J5 _$ D
* T( Z9 C: N* G0 ?2 A) G' }& n
两种模型:IE盒模型(怪异盒模型)和 标准盒模型
`$ ^- n! Y% C5 n' C6 f/ w
$ l7 K, ~8 F- _' T6 D7 }/ E8 Q两种模型的区别:计算高度和宽度的不同1 b& }8 f2 h8 @. Y _
! T, p6 x0 N& z7 d9 L
两种模型如何设置:box-sizing: content-box(标准盒模型); box-sizing: border-box(IE盒模型)/ y/ Q/ S$ }3 c# d8 N K
0 J7 C5 J4 c E7 l0 `, n. ~
JS如何设置获取盒模型对应的宽和高
3 i; L+ D1 E* |1 z+ u2 @- K A+ e& r0 }. Y" f' e
获取方式 优缺点
6 q- i# W1 |' L* adom.style.width/height 只能获取内联样式设置的宽和高/ c0 q! T3 ] \' B! }
dom.current style.width 获取浏览器渲染后的宽和高,只支持ie
5 s p4 C: q6 J- I0 G& U9 hwindow.getcomputedstyle(dom).width 兼容性更好
% B5 X: o1 e! z$ Tdom.getboundingclentreact().width 适用于取元素的绝对位置。能取到 left top width height 四个属性 。// 获取浏览器渲染后的宽和高一般用于获取元素绝对位置8 c" ?6 B. N( _4 {
实例题 (根据盒模型解释边距重叠)子元素边距成了父元素边距
T; v6 d' G$ H
2 G% w1 p: D0 I% K' Y块级元素包含了子块级元素,子元素是100像素9 G2 B8 D9 W8 }1 V* t
子元素与父元素上边距是10像素6 Z8 W3 w% B }9 K1 Y5 E( K
父元素是110px还是100px (100px, 设置了overflow:hidden就成了110px)/ k0 I% u, v( \4 C( U9 E: I4 I
另一种兄弟块级元素-
+ ?( W3 g0 ~5 B/ X" |3 N. \7 |' {! ] G
挨着每个都有上边距或每个都有下边距。-; J. }+ D3 r- c. t! ?- U- x
该重叠的原则就是取最大值# g/ _) _$ _% X; z, Z0 g; B
空元素的边距-取margin-top和margin-bottom的最大值- {& o' c1 v7 o
解决方案:
) T+ P- f9 r# ~" C: u# }9 S' w5 i/ G. Q/ `5 r9 V( S
父元素创建成一个BFC (无论父子,兄弟情况)
) x5 ^6 }# \- r$ Z, k5 c* X+ W; [" t4 n) b
4. BFC (边距重叠解决方案)
6 f, s8 d0 @ b0 I# `+ q
+ q g8 o1 ^6 S6 W: lBFC(边距重叠解决方案) Z5 Q6 \" k8 t0 L( F8 H; r) w! x
1 p" c" }% t/ V5 E- s
1、BFC的基本概念: 块级格式化上下文;: G/ m# c: T) N
# D9 Y6 [3 s0 O7 v3 r7 t2、BFC的原理:BFC的渲染规则。
7 d8 K( n; Q$ G2 n* S2 `( S0 i0 r) Z. d! g+ ?, h
①:在BFC这个元素的垂直方向的边距会发生重叠。(同一个BFC下外边距会发生重叠)* g3 b& ^) T; r& g/ ]4 }0 S
6 t* ]' ]% |" h _) O
②:BFC的区域不会与浮动元素的box重叠。(清除浮动)
3 F6 y* c* f) N+ T& R
8 u! E$ F8 [1 I7 J, h6 N. ~6 Q4 K③:BFC在页面上是一个独立的容器,外面的元素不会影响里面的元素,里面的元素也不会影响外面的元素。
& q$ j/ N6 a0 K' [% `" o# g; y! {1 D0 ^/ ? S( O1 Z) ^2 [- k) o
④:计算BFC高度时,浮动元素也会参与计算
4 M& T0 n B6 G2 k- X" W+ h5 |/ O0 f/ {) I/ t' M7 y
3、如何创建BFC
( C1 J+ D' `- ?. P$ B% E B5 m
% V O' P! w% o1 ~" g, P* _+ L①:float不为none。* m) H6 d' K/ |' ~
8 U b* B+ L4 G8 j, |; b②:position不为static或者relative。7 C& }4 ~6 O6 Y4 R7 n; E: J. T
9 {$ _4 K/ u9 `# a+ h# ^ R# s5 \, I③:display为inline-block或者是table相关的。
, l W7 ?( f# r: g9 ?* q' n* `) r. U5 d
④:overflow不为visible。3 B5 v: \# u" `) |4 U/ b; v$ x3 \2 n
$ C5 v- y, e( |2 N& T/ d! z1 I
⑤ : body 根元素
; w* o* D: H$ x$ d) N' [2 v
6 J t) Q7 r9 K5 u4 w+ ?4 _应用场景:
0 j( n2 A7 e# |6 N8 t& k9 v左右布局时,float
3 b8 h8 [6 y: N: N相邻div使用margin产生边距重叠4 N2 l# y/ v' c2 Q
dom事件6 ^) _4 r, v# p- U
" |" e3 f. a0 n5 [! V基本概念: DOM事件的级别* Y2 P$ O6 s8 {2 c
8 P1 U* s- D# n7 q a
DOM0: element.οnclick=function()! P( m1 ?. r1 G* n3 Z5 y
$ a7 F$ P7 x8 a) }: g+ x) G
DOM2: element.addEventListener(‘click’, function(){}, false)# Q. {# _( g$ e& p* y; J/ b0 G
3 W9 ]2 D1 e/ u4 o$ V; a4 [. BDOM3: element.addEventListener(‘keyup’, function(){}, false)
3 c6 z+ w1 Y8 c/ F2 K5 x* t) t" f. v
2 o2 M T) D0 _7 U5 {! s" z. xDOM事件模型
0 W+ f0 e3 w+ s: p; n5 F
9 U0 r0 f5 X7 Y$ j Nevent.target 2. event.currentTarget
# Z- Q8 o) V4 z D, Mevent.target指向引起触发事件的元素,而event.currentTarget则是事件绑定的元素+ P/ ~0 _2 P, j9 f b1 B0 J
DOM事件流
8 [6 x2 @6 w2 f3 H z4 C- i
: @/ \ k2 t9 v& y& \事件流 -->《捕获》 2. 目标阶段 3. 冒泡
1 k& i, K, c7 }5 l! M3 {4 k `2 @描述DOM事件捕获的具体流程
, V2 t3 t$ X/ d# v/ Y; J, q* `* i+ T2 k
window 2. document 3. html 4. body 5. 按html结构 6. 目标元素
: s* O3 {* H0 z4 a* S% y$ v# YEvent对象的常见应用
P& S) n+ f2 W7 R+ F! P# G2 H
) ^1 C N( @0 U6 be.preventDefault() 2. e.stopPropagation() 3. e.stopImmediatePropagation() 4. e.currentTarget() 5. e.target()
/ k5 x% c# j3 j% f, r自定义事件
9 ]+ i6 U& M! P( K( z: C! [! a1 W) ], h5 w, H/ @
var eve = new Event('custome');
9 Y( E2 J/ ]1 c6 X7 Dev.addEventListener('custome', function() {
; S" D/ \3 c" c0 k' T1 w2 j console.log('custome');/ g- w t8 \% z2 m1 Z: [, C' {
});* C. q1 s! |+ @$ U# h6 e
ev.dispatchEvent(eve);+ e8 s$ n+ A& B" F6 l
1
1 x! T% X& L; {! l2
: Z4 k7 x, V$ e6 c# U3 u3- j$ y% i' m4 [
4
3 F8 R6 G* |1 ^1 @/ l/ U J5. w1 P& T/ ~0 g
http协议
* F5 P8 ~4 i$ w; O! P# _& T+ }
. k9 `/ j! t! R" M- b0 U& bHTTP协议的主要特点
4 i: A7 ` I$ M2 p! ]: ?6 i. m# J/ f# U% q& S
简单快速(资源的URI是固定的,输入URI)、灵活(头部分有不同数据类型,一个http协议不同传输)、$ P3 \& |4 Z" i, f6 q
3 @) ~8 u: i" A a) F- V" i
无连接(连接一次就断掉)
0 l0 Q$ s: j# H5 a g无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。
# d/ N A' u0 [2 A- Y% h% n `无状态(两次连接身份)# A( Y5 U7 ^7 r" `# t+ Q
是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传2 j/ W" X6 ~5 H! C8 B3 S
HTTP报文的组成部分
! F. \' I4 A. P' Q
1 s6 C E i9 g请求报文) ^# R$ } l. w; E
" U- }/ K; H$ Y+ F0 A$ x# W
请求行 请求头 空行 请求体
( y2 s+ r* L1 Z8 i! B3 A2 g
0 m; G! Y* e$ C6 V p响应报文
, q/ Q0 y. F! d# S: W. i. X6 z8 j! H0 @7 M1 i P# I
状态行 响应头 空行 响应体& B( V4 S* h8 G+ |! p1 |5 u
! h3 I3 U* W9 O/ B6 P6 f+ q; bHTTP方法9 f3 l. {+ e5 A) `
, j1 T- |9 k7 K3 V6 c- C
方法名 方法作用 注意. c1 e) p+ f) S# ~& {$ b" z
GET 获取资源 $ Q2 ?& z; u( E
POST 传输资源
9 P0 N& Q: y5 a. D. T( Q; c4 APUT 更新资源
- ~6 Z: b& e6 B$ a! P( eDELETE 删除资源
$ Q q" H: |1 `' i @0 d5 LHEAD 获得报文首部 2 U4 v3 s$ k0 U: H
POST和GET的区别
: l( F- v+ e" B& t* b
e' l7 D {6 K5 `) ]" Z- Oget post
# N5 f& T, B" x在浏览器回退时是无害的 会再次提交请求
6 A1 N' Y' W) G# p& l3 g产生的URL地址可以被收藏 post不可以
4 u& v& q' i2 D. m4 x请求会被浏览器主动缓存 不会,除非手动设置; k, j% W+ A' j' P G
只能进行url编码 支持多种编码方式. U( o' U8 f0 a# O, t. B( [7 k6 m
请求参数会被完整保留在浏览器历史记录里 参数不会被保留
* ^" h2 H# {. Z请求在URL中传送的参数是有长度限制的 没有限制2 m0 C- D0 F. j C7 d+ J r
对参数的数据类型,get只接受ASCII字符 没有限制
9 u! u2 h5 [# Y更不安全,因为参数直接暴露在URL上,所以不能咏柳传递敏感信息 没暴露7 S; u* \! e5 r* N
参数通过URL传递 放在Request body中
% U4 T7 L* g3 c4 \1 tHTTP状态码. J( _! ~0 G8 ^0 p; B
" M3 ^- U# e7 h( T+ q& w
状态码 意义/ a- w" w" `- Y f5 E5 W
1xx 指示信息 - 表示请求已接收,继续处理。
& [6 {$ w; w7 ~1 }9 h* ]2xx 成功 - 表示请求已被成功接收。8 A/ R5 G/ [6 H: U" j1 Y
3xx 重定向 - 要完成请求必须进行更进一步的操作。
. H! I. |& B( F9 F0 X, d3 w6 o4xx 客户端错误 - 请求有语法错误或请求无法实现。* \4 F. | \+ d7 [# {* v9 a
5xx 服务器错误 - 服务器未能实现合法的请求。
( q( n( J! U/ T状态码 意义
7 N' w( { a9 R; U s \2 `200 OK 客户端请求成功8 s! w% |0 {- x0 C
206 Parital Content 客户发送了一个带有Range头的GET请求,服务器完成了它9 i( |! P! ^ o, s
301 Moved Permanently 所请求的页面已经转移至新的url
% Z3 F3 b2 c' s# @( F0 y* P% @302 Found 所请求的也么已经临时转移至新的url
1 R4 B; `! k a+ @2 G304 Not Modified 客户端有缓冲的文档并发出了一个条件性的请求, 服务器告诉客户,原来缓冲的文档还可以继续使用
9 u& G( L# y" ]9 G400 Bad Request 客户端请求有语法错误,不能被服务器所理解2 ?) p. T. e# ?% O3 Y) [* A
401 Unanthorized 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
" G* H, S' s* a* s3 f403 Forbidden 对被请求页面的访问被禁止
! }" E/ P! k7 L$ E) M0 m. W2 O404 Not Found 请求资源不存在 y2 X- {9 e/ `3 G+ x) h
500 Internal Server Error 服务器发生不可预期的错误原来缓冲的文档还可以继续使用
% G3 W- r* D5 z' J503 Server Unavaliable 请求未完成, 服务器临时过载或当机,一段时间后可能恢复正常7 T$ h- C! t) b- h" a3 g" b ]
什么是持久连接
4 l+ S; `2 a) P' q6 F k+ ^5 B. b; k8 P& [2 a, y. z! P- z
HTTP协议采用“请求-应答”模式,当使用普通模式,即非Keep-Alive模式时, 每个请求/应答客户和服务器都要新建一个连接,完成之后立即断开连接(HTTP协议为无连接的协议)& O% ~- L) N: Q" @* B
1 s7 j: g# F t0 y$ K, t当使用Keep-Alive模式(又称持久连接、连接重用)时, Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。4 \5 i8 {2 U5 A n" Z2 @' q; p5 i
1 p- Z4 Z% F0 S+ L# u
使用了持久连接
6 W' @/ b, S1 h, [) |& P# J
# _) m) o G/ U( ~; g请求1->响应1->请求2->响应2->请求3->响应3% j) ^" }$ P; d& `% }9 w
" K& D, s: e2 N: d6 K {$ y" Y
变成了! s. ?. p. Y% j; U
3 x) f0 v7 O/ E2 Y请求1->请求2->请求3->响应1->响应2->响应3+ C5 q, B' R9 Y- D- d
' G0 V7 m" t) Q, F7 J& \* G
什么是管线化
' E) }+ p' L* E. g [( i- \; O
" U& _0 A {0 p5 B# A2 j$ v# {管线化通过持久连接完成,仅http/1.1 支持此技术
, \& {8 I' B3 j( j- h, Q+ n1 i* _# \只有get和head请求可以进行管线化,而post则有所限制* R3 ]6 u; F: y2 r
初次创建连接不应启动管线机制,因为对方(服务器)不一定支持HTTP/1.1版本的协议
7 R }+ ~- f: G6 T0 _: {…
) V% `& ]0 Y! S# f' N0 T. `安全) g0 `# J! B4 o f
1 h: j4 Z' D/ E, m5 }' { |$ \CSRF/ s* Y9 O2 N; ]$ h5 Y
基本概念和缩写
/ Z: x6 b! R1 r$ A: a& I0 oCSRF, 通常称为跨站请求伪造,英文名Cross-site request forgery 缩写CSRF。9 F' C$ z7 z2 \7 ]0 R3 w6 L
攻击原理4 @" X, [& G8 }" t+ Q2 I) K4 S
访问网站B时,网站B引诱点击链接,用户浏览器携带的cookie就被网站B的某些代码访问了。$ H0 \( m d& y$ S7 c
这利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。: p0 k. |7 k, }9 [2 O
XSS* }, k& \4 J$ }$ i" H
基本概念和缩写
9 K% m7 \1 c+ t- `9 m& n: UXSS, 跨站脚本攻击, 英文名Cross Site Scripting 缩写XSS。
( {2 \3 U; L$ M8 F攻击原理# H6 S7 m- ~; c; V C
输出脚本code
* M& e2 g) x" h+ j/ _跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
9 E8 {5 X& x3 {4 W; E9 V" I, xxss漏洞通常是通过php的输出函数将javascript代码输出到html页面中,通过用户本地浏览器执行的,所以xss漏洞关键就是寻找参数未过滤的输出函数。. k0 D+ D) A) m; r0 Z' K- w
渲染机制类! P( r& m' S% q3 s) I& p$ e, }7 a
" X3 K( }0 R) f5 i( \2 M+ L什么是DOCTYPE及作用# h2 F& A5 x! X) e. r. Q
; v5 R7 X, _8 l `9 H: k- }
DTD (document type definition, 文档类型定义)是一系列的语法规则,用来定义XML或HTML的文件类型。3 G2 y( u% G" ~/ y2 K4 v
作用:浏览器会使用它来判断文档类型, 决定使用何种协议来解析,以及切换浏览器模式。6 X# ]" P1 [, G
DOCTYPE是用来声明文档类型和DTD规范的,9 V& ?4 ?6 w4 C1 H
作用:一个主要的用途便是文件的合法性验证。如果文件代码不合法, 那么浏览器解析时便会出一些差错。& g2 h8 E0 J/ H7 P8 C
HTML5的DOCTYPE:- ]( R3 j5 ^2 X. p ?
+ }" s# [$ r% H$ R( ^8 DHTML4有严格模式和传统模式
5 E3 w( R5 w2 F* C9 X& V8 y+ A5 h! c# ~
浏览器渲染过程
; c, W# g% Z% w# `8 D! k7 s& e6 u: G( _4 y
一些概念
" _! j ?7 s( g6 e: _* Q6 e: o$ C+ X. l# _
名称 概念8 B; O3 b- G5 `; U
DOM Tree 浏览器将HTML解析成树形的数据结构。
2 Z% T1 W0 ^. m$ U& [) w. w2 |CSS Rule Tree 浏览器将CSS解析成树形的数据结构。/ i* \% |1 q$ G* F% }
Render Tree DOM和CSSOM合并后生成Render Tree。6 O- d- Y9 q( C, h J: U
layout 有了Render Tree,浏览器已经能知道网页中有哪些节点、各个节点的CSS定义以及他们的从属关系,从而去计算出每个节点在屏幕中的位置。
% M# Y J* @/ b7 f8 r' T5 O- Y* jpainting 按照算出来的规则,通过显卡,把内容画到屏幕上。0 G7 m+ m5 g9 T
1。当用户输入一个URL,浏览器就会发送一个请求,请求URL对应的资源* G9 J* N5 `9 z# G
2。HTML解析器会将这个文件解析,构建成一棵DOM树
3 D2 f+ ]) Z# H8 S8 }. V3。构建DOM树时,遇到JS和CSS元素,HTML解析器就将控制权转让给JS或者CSS解析器3 {6 s* ?" R* T
4。JS或者CSS解析器解析完这个元素时候,HTML又继续解析下个元素,直到整棵DOM树构建完成8 B, }/ ^0 u% W8 f2 b; m5 G6 p
5。DOM树构建完之后,浏览器把DOM树中的一些不可视元素去掉,然后与CSSOM合成一棵render树
/ m( m" b0 }: n3 @1 m( |0 D6。接着浏览器根据这棵render树,计算出各个节点(元素)在屏幕的位置。这个过程叫做layout,输出的是一棵layout树
) c8 D8 l. \! x* F7。最后浏览器根据这棵layout树,将页面渲染到屏幕上去
! r; @( K, y; c* B% u- y1
0 I+ Z3 o- U, x- L2+ L2 E9 F( _0 w& i
3
0 R& l/ s- ]: K: r4 W43 W7 K+ L. m2 I8 m1 h
5
7 G. r/ }4 J! {) G5 v* G66 D! v7 C; k7 x
7 [+ Q) c+ Z6 I7 U1 Q4 V9 ]% [
重排Reflow' l8 t, [$ H6 f0 w7 o2 q
9 T, }; A7 h: q3 o* Y9 c& O定义:当浏览器发现某个部分发生了变化影响了布局,需要倒回去重新渲染,内行称这个回退的过程叫 reflow。$ |, Q$ p1 q4 a, @5 x0 _
触发Reflow:3 a# W- ?' [% |" M* T2 C% B9 D
当你增加、删除、修改dom节点时,会导致Reflow或Repaint
6 L! s& u7 |% T4 W7 X0 p$ N当你移动DOM的位置,或是搞个动画的时候' Z# j3 }9 O; c0 U% K' m" b
当你修改CSS样式的时候( P$ m5 W. k/ x/ V
当你Resize窗口的时候(移动端没有这个问题),或是滚动的时候* k9 Q5 e$ ^! K1 b$ ]
当你修改网页的默认字体时
. i6 o- W$ O' i, T/ K; N重绘Repaint) w2 O& b. D( r" P( B
/ H5 r2 j) ?$ L, z# j- H
定义: 改变某个元素的背景色、文字颜色、边框颜色等等不影响它周围或内部布局的属性时,屏幕的一部分要重画,但是元素的几何尺寸没有变。; h7 P! ?) u8 T& s& N4 I
, x7 {5 z4 y5 s触发Repaint:& p- J9 ^# P0 G& X
3 i, |! s2 h; `' q7 }DOM改动
& Q( \, A% b; p$ m6 M* u" PCSS改动
/ J) P/ B7 s% i3 O( P4 \* Z————————————————- h& h& ]" I5 q! X: F, ^# i3 h ~
版权声明:本文为CSDN博主「ton365」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。+ B) C+ M- X8 c ~$ F
原文链接:https://blog.csdn.net/u012015672/article/details/105931291
4 R2 L5 k U# n% E1 K5 f5 `
: n5 X* O% C& F' ?) F% d- v' O! I6 ^& Z
|
zan
|