- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 564690 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174630
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
HTML 知识点(未完)
% H2 j3 `( y5 i4 t! Q0 G2 T: J6 x+ ~6 m3 h0 K9 k
HTML 知识点
# z* g6 f2 H4 J5 ~6 c- J. p% \5 l( L+ x* D' d# \, L9 K
三列布局- (高度已知,左右宽度固定,中间自适应)
& M: T3 n! n& E% P% o% w) z1 g3 ^$ e" Z7 ^( j6 F6 a- Q# w
布局方案 优点 缺点8 t5 w G2 I& o) Y( X6 H
浮动 兼容性好 脱离文档流,需清除浮动
* I' o& Q3 p1 q, I, D! z绝对定位 比较快捷。 因为其本身脱离了文档流,导致了其子元素都脱离了文档流,使用性较差。: [+ ` c' {. p. E/ E0 L
flex布局 目前是比较完美的方案。 只兼容到ie9。! }1 @+ n' l w4 J
表格布局 兼容性好,当需要兼容ie8时可以用表格布局。 多栏布局时,某栏高度增加,会使其他栏高度一起增加。
& q5 j1 L/ o# t! g8 m网格布局 新技术,代码量少
% Z& j0 P @; L* h7 x2 }<!-- 网格布局 -->" s+ x2 l( k0 W& Q5 Y, `
<body>
7 _4 e8 q/ z) t) l <section class="layout grid"> ) k& E0 R9 t7 Q1 Q( {
<style media="screen">
3 c' K$ {7 s- p3 \ .layout.grid .left-right-center{2 `8 ~& p$ x; Y1 y
display: grid;
! E- p6 s- t8 M/ A1 h; w7 w0 N8 i width: 100%;2 q3 f* @- n) L- j( I
grid-template-rows: 100px; // 设置行高7 @, ?7 Q! y" V, Y: W/ p
grid-template-columns: 300px auto 300px; // 设置每列的宽度5 ]. ?! C) A# M$ ^: T. {5 u+ I
, _$ _' `* ~9 t </style>' l# K: l! I/ R" |5 B- E2 X+ B
<article class="left-right-center">: k( ^9 V% h& e) n/ `9 j* U. M+ T
<div class="left"></div>6 Y' I# W5 j! H$ h" S
<div class="center"></div>
3 V; Q4 }, k9 @( V3 P <div class="right"></div>) s' k# T" }& f; r0 v
</article>4 n+ }# \* K0 e: |+ B0 a
</section>
0 u6 Y1 ^" _) U+ n! w</body>
, v. p6 H2 Q4 V. e) M
' h( A0 j2 m4 [+ `7 j6 M @1 I9 Kcss盒模型; R% h8 I; x2 C# U: \; j4 K- i
6 m3 w: l4 T7 z+ ~, |, {, j: u* R
CSS盒模型的认识, ^. j2 E2 A+ L7 S9 y- j: J( d, A
* p1 ~6 G, j; U6 G9 Y8 x5 m ^( L+ m, ^css属性: content padding border margin
( G9 l; H7 \+ u& C: c6 S: C
* A. q, ^' _: v5 {3 w9 c. ~+ D0 x两种模型:IE盒模型(怪异盒模型)和 标准盒模型, B& Q6 E6 e+ ~( O$ Y
2 P, F" v* T+ |2 n) N- |
两种模型的区别:计算高度和宽度的不同( ^( X5 L( h+ a# [( r
8 e9 A. L- G5 \. p
两种模型如何设置:box-sizing: content-box(标准盒模型); box-sizing: border-box(IE盒模型)
+ ~$ W" W, ~( d+ Z& I# X/ ^6 h4 ?; ~) k! m9 M
JS如何设置获取盒模型对应的宽和高 j: [- k. A: G1 e0 G: G4 z/ P1 c, T$ K
! P4 f+ `# B5 |. g; [9 A
获取方式 优缺点2 f2 x B, O; c1 z
dom.style.width/height 只能获取内联样式设置的宽和高% n {% |8 \/ {- P+ X# J) q. I. [
dom.current style.width 获取浏览器渲染后的宽和高,只支持ie
& i S; S h6 t# Rwindow.getcomputedstyle(dom).width 兼容性更好6 W- K( v' S2 M4 l
dom.getboundingclentreact().width 适用于取元素的绝对位置。能取到 left top width height 四个属性 。// 获取浏览器渲染后的宽和高一般用于获取元素绝对位置
+ T1 J A( a: v, L; q, I+ J实例题 (根据盒模型解释边距重叠)子元素边距成了父元素边距6 i; P" M7 c" J: a% T u8 T
: }) w, h/ j8 l$ L% F" `
块级元素包含了子块级元素,子元素是100像素; `1 A7 t( @4 _' b& Y
子元素与父元素上边距是10像素; V6 {- n/ C3 L ^2 c: ]# j
父元素是110px还是100px (100px, 设置了overflow:hidden就成了110px)
/ S! {, L; n" Y. n4 [3 `: E另一种兄弟块级元素-
% n+ [3 y0 H$ l: h0 h! T' W
E8 [2 N# [+ R( g# m挨着每个都有上边距或每个都有下边距。-
1 P0 Q$ Q$ N, I6 s4 E该重叠的原则就是取最大值8 b( b; ~0 [; Q. W# |5 {
空元素的边距-取margin-top和margin-bottom的最大值" f c n& H- C
解决方案:5 [2 h4 }5 D8 ]# }8 x
; D7 K$ F0 t4 M* a5 r5 l# ]
父元素创建成一个BFC (无论父子,兄弟情况)" `% @- n L2 [; j$ C/ [3 n5 B
. x3 _: U6 z6 j) V: g- A
4. BFC (边距重叠解决方案)1 M& f) t* r$ j9 u1 C( m8 P
" D- j6 }* E; |# S6 v6 h5 W# l8 C
BFC(边距重叠解决方案)
" K$ f; Q9 E b% d$ f4 D' }. U
* V0 w4 d5 T; v7 I+ M! H1、BFC的基本概念: 块级格式化上下文;8 e! o% N9 W+ u1 n: s8 J1 Z- C! }* n
/ m$ j2 |! p/ }0 l* w2、BFC的原理:BFC的渲染规则。
; c2 [+ I6 i: Z" L' ?8 P% N* J, M- A4 Z) Q; ^4 r, I7 a) j& s
①:在BFC这个元素的垂直方向的边距会发生重叠。(同一个BFC下外边距会发生重叠)
8 v9 @2 n) c9 k
4 x) e9 d* s, H②:BFC的区域不会与浮动元素的box重叠。(清除浮动)
9 I! S" y' Z, _8 |- O' X# g% n, J' |. c/ h/ K0 ^
③:BFC在页面上是一个独立的容器,外面的元素不会影响里面的元素,里面的元素也不会影响外面的元素。# d; ?! b2 T9 H/ u Z7 j$ t
) I" {# b2 `8 L- u% l. ]1 Q, I
④:计算BFC高度时,浮动元素也会参与计算
( k* E- D$ C Y2 O( `
2 a* F! l2 A' p) u6 f6 d3、如何创建BFC
$ \! s [ A4 R( U
" d I. I4 V/ j; v①:float不为none。
8 N9 Z; T! x# T% D4 f! U
/ Q' ~) A. Z8 n+ q) b: u4 g Q* l②:position不为static或者relative。& Z2 E# o* c) B6 t
9 y$ p2 w4 I# W5 Q& q6 T③:display为inline-block或者是table相关的。/ Y/ X1 `9 O) Q+ r4 \( K
& }& F& V: x! V5 N④:overflow不为visible。
3 Y! b5 B9 x, Y5 n* X7 k$ v+ U3 e8 u* V) F
⑤ : body 根元素
" A, x+ X/ S7 L C; m: i1 R: Y& \- V r: H( d, M0 ?- O( b
应用场景: & B0 e: h" Z3 b$ d& L( F& \
左右布局时,float " K% |4 G a" M1 z, U
相邻div使用margin产生边距重叠3 u. J" @" Z9 G
dom事件
. h/ s& z) I2 v3 d f E
4 v n8 H8 ~7 c/ c9 b8 a( D: j基本概念: DOM事件的级别# Z5 w( O8 a; k& ~- g G
; D1 Y* o) d& [: p* m8 h' w nDOM0: element.οnclick=function()+ D; b& H5 P! }" e
# Z$ `9 U0 h/ D- ~* D5 g- iDOM2: element.addEventListener(‘click’, function(){}, false) S, e" A- t' c
# ^0 } B3 K& Q1 v$ tDOM3: element.addEventListener(‘keyup’, function(){}, false)
7 y! M) i. p1 y& Z
* c$ Z6 F0 k9 z& R8 IDOM事件模型. p$ N" r1 B) r2 z9 v
( M: Y# n0 @4 J E* kevent.target 2. event.currentTarget5 u5 S8 ?4 R9 n
event.target指向引起触发事件的元素,而event.currentTarget则是事件绑定的元素
V8 ~( j$ R H" L7 t& X% S' SDOM事件流
) T" x5 `0 E- y# [: D8 W& l$ Z) F d3 }, Q' |; I9 q3 _9 t" Q
事件流 -->《捕获》 2. 目标阶段 3. 冒泡1 {- s3 ~: Z' E7 ]
描述DOM事件捕获的具体流程+ J. w% { l( v/ R1 L
( x4 j) h7 c, }5 ^9 N2 cwindow 2. document 3. html 4. body 5. 按html结构 6. 目标元素
# }, m# c, n) t: uEvent对象的常见应用7 T$ c" r8 p7 P7 j6 _% @$ Q% R
6 V( n' a7 Z& L. q" ie.preventDefault() 2. e.stopPropagation() 3. e.stopImmediatePropagation() 4. e.currentTarget() 5. e.target()
8 H+ T$ r& \- L7 A自定义事件4 t# J* R' q& b' N" l3 }
* j0 O# ~6 l: Lvar eve = new Event('custome');3 G! \0 r0 o. p% @ _
ev.addEventListener('custome', function() {) H5 ]9 O P/ Z* w& W/ |& K3 i* p
console.log('custome');
) K m) j% U+ R- R X});
! X+ c) ?# s* jev.dispatchEvent(eve);
M" Y5 N) c" ~* v5 b/ K1/ O- S. k( Z2 M/ ~- M# {3 z
2' T5 V+ U% x# {4 t2 {: J& j
3
% F. [1 B: o1 C$ e4$ Q, k; L8 B$ d$ z
5" i# B& q# \$ ], ^- o/ }" B+ n
http协议0 c* w5 A7 ?5 Q. ]: I, O& y7 |
& C5 S+ ], i6 j( T4 uHTTP协议的主要特点
' d0 i) P W! c* O7 ~1 \9 g1 p
简单快速(资源的URI是固定的,输入URI)、灵活(头部分有不同数据类型,一个http协议不同传输)、
$ O* c) v f! i- S$ y- b0 g5 N9 C
无连接(连接一次就断掉)
; O! [+ S: M* `8 z7 |7 C) v; r无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。
6 L/ R f% B. ?: }1 p无状态(两次连接身份)
_/ g( T e( q) e2 k+ w是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传8 {" [2 @- K7 y% f5 q: @
HTTP报文的组成部分
# N: D* l" o" B& I( [! y% {' a5 \
请求报文1 W8 }: S4 \' P. R' m8 z
7 E$ s! x6 A* U请求行 请求头 空行 请求体
0 I* Z- n. j$ @6 Z3 n, T* w- d7 b2 W) V. A! Z' I% x8 {
响应报文
: Z7 w/ d! g A, j: F% s# }5 C7 L# z2 E& H
状态行 响应头 空行 响应体: Q3 Z0 c k) J+ W. @5 d; w
6 s! G5 w5 J3 ^6 u- a% |
HTTP方法
* n5 o* b) A6 D' U+ y+ d
! m M' R u8 D, ` @! { b; x, m! O方法名 方法作用 注意+ K- [$ ?" L( G6 Y
GET 获取资源 % l" A! q5 ^5 |2 y- K8 O, q" c# \
POST 传输资源 ' Z- d+ N/ R8 n; B0 O4 x
PUT 更新资源 $ I2 u9 { m2 I0 @! c p
DELETE 删除资源 5 @$ W$ P/ G- p- T1 l; Q% E
HEAD 获得报文首部 i3 J) r4 d! b- S
POST和GET的区别- h& g( B9 l! i- X- X
0 `4 C/ C, R S% M- Y Fget post
6 r$ `3 J; G a8 X8 S在浏览器回退时是无害的 会再次提交请求3 z$ d8 t' K9 G3 x( q7 I
产生的URL地址可以被收藏 post不可以
/ {# C8 C$ y' ]: ]. s请求会被浏览器主动缓存 不会,除非手动设置# i! i( h3 _7 \4 |) J5 E
只能进行url编码 支持多种编码方式' d+ S9 y0 M" c: `0 t
请求参数会被完整保留在浏览器历史记录里 参数不会被保留8 F! f7 f7 ]- e0 g# K, N2 @% L
请求在URL中传送的参数是有长度限制的 没有限制
* t9 Y8 s' p2 ?. W5 }对参数的数据类型,get只接受ASCII字符 没有限制! z7 }7 i8 I0 g( v2 j! v
更不安全,因为参数直接暴露在URL上,所以不能咏柳传递敏感信息 没暴露: ]9 W4 O9 n# L e. |: p
参数通过URL传递 放在Request body中
# z h1 K, A1 oHTTP状态码
: u9 Z5 A2 [) }" ^
! ^8 G7 i: T6 ]# J状态码 意义
' `) I1 k6 q. M# T9 { ?7 t% S1xx 指示信息 - 表示请求已接收,继续处理。' P& z4 ^3 Q* H4 v4 e% y* C5 L7 D) N
2xx 成功 - 表示请求已被成功接收。" e) P/ }) g5 t, i$ t
3xx 重定向 - 要完成请求必须进行更进一步的操作。
7 v' H/ t5 ~, @' T& z$ K; v4xx 客户端错误 - 请求有语法错误或请求无法实现。/ G8 s' T+ ?% W
5xx 服务器错误 - 服务器未能实现合法的请求。
& }9 n# R y; Y [- ^状态码 意义 A) h+ W" |" Z: Z5 B/ S7 f! g
200 OK 客户端请求成功+ p# y5 ?! B0 r% B
206 Parital Content 客户发送了一个带有Range头的GET请求,服务器完成了它% B) F' ~4 @; o3 i5 J
301 Moved Permanently 所请求的页面已经转移至新的url
& X( ?# B- x' w1 T# H302 Found 所请求的也么已经临时转移至新的url
; |) j# `7 Z$ ]304 Not Modified 客户端有缓冲的文档并发出了一个条件性的请求, 服务器告诉客户,原来缓冲的文档还可以继续使用) s+ T, u: {. L1 _- |
400 Bad Request 客户端请求有语法错误,不能被服务器所理解
2 ]) [% R' w" M$ x9 `+ x401 Unanthorized 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
( y' P# x: y4 K- v, H; W% Z# z# I. l403 Forbidden 对被请求页面的访问被禁止) \: p( c5 a# F7 _; H
404 Not Found 请求资源不存在
Y5 s1 G2 q- K500 Internal Server Error 服务器发生不可预期的错误原来缓冲的文档还可以继续使用 ?# f A! m6 w
503 Server Unavaliable 请求未完成, 服务器临时过载或当机,一段时间后可能恢复正常
; i3 ~7 ?, i7 c1 s什么是持久连接; x( A0 X. h/ c# y6 L: v) _
, W+ G% P* D- J( U/ y8 f' o
HTTP协议采用“请求-应答”模式,当使用普通模式,即非Keep-Alive模式时, 每个请求/应答客户和服务器都要新建一个连接,完成之后立即断开连接(HTTP协议为无连接的协议)8 O. g! S+ c- k+ w# {- _+ }
/ Y! ?! a. Y4 N1 E9 G当使用Keep-Alive模式(又称持久连接、连接重用)时, Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。
% {; `" P/ l5 G' y I( ]; O6 X4 e4 I' T# x5 w3 S! X; O7 @
使用了持久连接
2 ~: {" v4 F0 D) T& D) R+ `5 g2 T* C
请求1->响应1->请求2->响应2->请求3->响应3
+ e. s! }3 i3 O* y1 ]; _6 [) I7 C D, A1 c y ^9 M
变成了2 r( b5 @: h( Z
8 i0 K# e2 t; T8 C9 y- }+ C4 T
请求1->请求2->请求3->响应1->响应2->响应3
- N/ C/ Y# u, J2 ~+ g/ G5 N) F* D: C0 C6 \
什么是管线化
9 ]# l5 Y: M, H' }8 |. B* K& `9 Y6 ~* k! {% l6 ^1 Q Q
管线化通过持久连接完成,仅http/1.1 支持此技术
$ J/ k7 u0 X: Z! T只有get和head请求可以进行管线化,而post则有所限制( G/ W+ L% K# t! z- D& J: ` `
初次创建连接不应启动管线机制,因为对方(服务器)不一定支持HTTP/1.1版本的协议
6 A' x1 g2 Q7 V4 E8 X9 q5 R…8 n/ R |6 F9 c% G
安全! @: \: n% E3 D- I" }
' A* w- M; [- z# c) F fCSRF
) r& N; D0 n* Y1 h( {1 P* s0 g基本概念和缩写
; l$ L8 P6 o; R5 O Z! ECSRF, 通常称为跨站请求伪造,英文名Cross-site request forgery 缩写CSRF。, n9 @ g5 G: s3 P) h
攻击原理6 P) k w& w" F9 z
访问网站B时,网站B引诱点击链接,用户浏览器携带的cookie就被网站B的某些代码访问了。
S% K5 Q3 ~: r( ~9 ]; h( z1 X这利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。
( W) `% [: y' F- g" p! pXSS+ P0 g( y* l$ X3 E* {
基本概念和缩写
4 Y% H5 n6 \7 j8 u# sXSS, 跨站脚本攻击, 英文名Cross Site Scripting 缩写XSS。
8 H, P. H& m- z( {! C! p攻击原理 W) c) m; J, p* l6 r6 `/ f9 ]6 }
输出脚本code
- D. @ p, F# q$ \- e' @, S跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
n9 ^/ c2 w; _( ?+ N/ D# Xxss漏洞通常是通过php的输出函数将javascript代码输出到html页面中,通过用户本地浏览器执行的,所以xss漏洞关键就是寻找参数未过滤的输出函数。9 e" b4 }$ A+ o0 S' v9 v8 C, ]+ ]5 x
渲染机制类" _( t, U( U" k. t4 _
1 }1 d; ]- Y. J ~' W
什么是DOCTYPE及作用3 w0 c. R5 M0 y5 V
" s% U; A' o1 Q7 nDTD (document type definition, 文档类型定义)是一系列的语法规则,用来定义XML或HTML的文件类型。
* z) q5 v' h9 `8 }作用:浏览器会使用它来判断文档类型, 决定使用何种协议来解析,以及切换浏览器模式。/ _0 {" C: i" L- n3 Q+ n6 }% v7 e
DOCTYPE是用来声明文档类型和DTD规范的,
+ C9 w) w, M% ?# [+ Z3 Z; {作用:一个主要的用途便是文件的合法性验证。如果文件代码不合法, 那么浏览器解析时便会出一些差错。
$ C: ]7 [; z6 ?9 ~HTML5的DOCTYPE:
2 l8 ~& V' o; I1 F7 x! r
; L4 C$ i+ ?7 t% E1 g/ _8 k$ l1 g$ eHTML4有严格模式和传统模式' I: [1 X" M) f ]0 o
( `+ y4 x2 K* I$ v& Q浏览器渲染过程+ r* }; |4 [, a8 l! k- T) i
' r0 p/ P* ~2 _+ v& [( Q, Y一些概念
5 m Z, D) B+ U
% y9 i9 `* x/ ]) `: E3 R9 C名称 概念
" r9 A) f2 ^* n& [. E' MDOM Tree 浏览器将HTML解析成树形的数据结构。3 K* S* [- ]. E% N- q B' _" T; R
CSS Rule Tree 浏览器将CSS解析成树形的数据结构。# h( v5 p) \! r: r) n
Render Tree DOM和CSSOM合并后生成Render Tree。
8 i$ F- \! O* K6 Z) h4 j" L' T$ ylayout 有了Render Tree,浏览器已经能知道网页中有哪些节点、各个节点的CSS定义以及他们的从属关系,从而去计算出每个节点在屏幕中的位置。: ]# o b5 u% R# [" Y, ] _
painting 按照算出来的规则,通过显卡,把内容画到屏幕上。% {" q- E1 m1 V& z
1。当用户输入一个URL,浏览器就会发送一个请求,请求URL对应的资源
/ v. p+ K3 M7 q) f+ L7 j2。HTML解析器会将这个文件解析,构建成一棵DOM树
" B! j" n! h* }1 t2 g* g& z0 _3。构建DOM树时,遇到JS和CSS元素,HTML解析器就将控制权转让给JS或者CSS解析器6 s7 c V9 J0 C7 }
4。JS或者CSS解析器解析完这个元素时候,HTML又继续解析下个元素,直到整棵DOM树构建完成 m3 |) n$ Y/ n Y" a- J3 Z/ y& |
5。DOM树构建完之后,浏览器把DOM树中的一些不可视元素去掉,然后与CSSOM合成一棵render树+ o) d+ N: y# w6 `
6。接着浏览器根据这棵render树,计算出各个节点(元素)在屏幕的位置。这个过程叫做layout,输出的是一棵layout树: u: F1 S% U4 I) T
7。最后浏览器根据这棵layout树,将页面渲染到屏幕上去6 d0 T% w# d4 s$ i9 X% v
1
7 d4 D6 m9 X! u: N1 E5 M24 D6 U% j0 D% V
3
+ O* W9 c& v* k5 Z1 ]+ F47 ^/ W3 I+ v4 A! o) C5 r
5' ]9 p H9 s/ V, X
6
2 U9 G6 a8 ^$ s0 Z/ o7% b% O" n. G3 I3 U1 ^' i2 A
重排Reflow% J/ t6 t$ {4 G' N4 n8 ]
$ x' L( }4 [' i8 L定义:当浏览器发现某个部分发生了变化影响了布局,需要倒回去重新渲染,内行称这个回退的过程叫 reflow。
0 Z6 E& U' r/ [4 Q/ E触发Reflow:; L) c- M! s; S7 u
当你增加、删除、修改dom节点时,会导致Reflow或Repaint
8 W7 F# e9 ^3 L' D; z+ e k5 ~9 Y n当你移动DOM的位置,或是搞个动画的时候
9 {1 b3 r3 T( j/ |( j当你修改CSS样式的时候
" C6 x5 f, i/ o+ Q) H当你Resize窗口的时候(移动端没有这个问题),或是滚动的时候" }! N" f% J) [- q
当你修改网页的默认字体时
% h) j7 o! g7 g# M& ~6 Q重绘Repaint7 u$ F) f6 h. T. }& [; Q
+ |0 {8 M/ H5 X3 p: v0 h定义: 改变某个元素的背景色、文字颜色、边框颜色等等不影响它周围或内部布局的属性时,屏幕的一部分要重画,但是元素的几何尺寸没有变。
) T2 K* Y+ j% L' H$ V6 E1 n
& [6 u* K; m% W& Q' A8 U触发Repaint:4 L( M$ L! z) D
|; X! q T: C$ @DOM改动 o; k2 n; l; x8 X4 H. l) Y
CSS改动" b$ b7 t$ L. b, o) {8 E
————————————————
% Z* J/ I. n% k/ Y, z版权声明:本文为CSDN博主「ton365」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
' v: K' T9 ^5 a7 s6 y! P, A原文链接:https://blog.csdn.net/u012015672/article/details/1059312914 q4 W/ V' i& k" P) q6 p( J
, S i& ]. V; }% q3 Y' o* p
* I9 n/ u' [0 u* e! T
|
zan
|