- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 564692 点
- 威望
- 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 知识点(未完)
7 [8 ]5 `! J- O" `
4 K5 r- W/ Q" I; dHTML 知识点. b9 v; o7 D2 g6 j* ?& \5 A+ p
" b1 S& E( i% i; h1 N8 a
三列布局- (高度已知,左右宽度固定,中间自适应)! {6 l, u X$ v9 p, E0 G
6 I% D; W- N6 @& W! j0 d布局方案 优点 缺点, Z2 Q; E4 Q% h' }
浮动 兼容性好 脱离文档流,需清除浮动
; ~5 F* q$ a: _6 `% c绝对定位 比较快捷。 因为其本身脱离了文档流,导致了其子元素都脱离了文档流,使用性较差。
; O/ d/ ~0 y7 r4 K& \" T" Qflex布局 目前是比较完美的方案。 只兼容到ie9。
_# I+ E; k0 I; b表格布局 兼容性好,当需要兼容ie8时可以用表格布局。 多栏布局时,某栏高度增加,会使其他栏高度一起增加。7 Q# i4 V. `* P& E5 f# t
网格布局 新技术,代码量少 & o2 q u0 O8 W
<!-- 网格布局 --># x! Z8 C' S7 J, | g2 ^7 q1 q
<body>- D* k6 T! X% Q
<section class="layout grid"> 9 P4 E0 I& c( l0 `8 d/ {
<style media="screen">6 e& E- M( z+ a& U. I$ P
.layout.grid .left-right-center{
2 C! C6 E4 V* q5 { M: P$ K! W% q display: grid;
7 A; c5 x0 N g% R) P$ [7 s width: 100%;
6 o- y3 R: W+ A: [8 @ grid-template-rows: 100px; // 设置行高
! n) `; t" p& L, H* A grid-template-columns: 300px auto 300px; // 设置每列的宽度
3 Z/ n9 s( [% C$ `. w: C
2 b( W( _4 u, O, `' W; Y$ J8 ` </style>4 V2 b; W$ }- e! r" B: G
<article class="left-right-center">8 w+ N# U! T: |7 \1 y6 q; l
<div class="left"></div>
5 O" [$ ]; d- ?# Z V; z+ L: v: M# U <div class="center"></div># a* I( X6 P2 a S, O9 J5 c, j
<div class="right"></div>6 b0 ~& q' p, Y
</article>
3 l# O8 m; N: A, E# i, l </section>0 `" N. s3 p8 }6 E3 p8 y
</body>
+ n# A8 @3 }# Q! }- P f' w3 C7 g) h5 c* _
css盒模型
( ]7 W3 [1 q( m, y/ O' m' w, a, H& {! K- y, d/ A- q
CSS盒模型的认识
0 v3 D5 L4 |" S* p& w4 X
) I3 F) `! p: Z- T! ocss属性: content padding border margin% C1 ~3 T, V" J. `# w8 X
% [, i+ W7 `$ X: P: f0 H
两种模型:IE盒模型(怪异盒模型)和 标准盒模型- u) \! h" |& {; J: Y/ b7 n0 s9 Q& Z
" l! y- V3 j! ?6 R) k2 c两种模型的区别:计算高度和宽度的不同6 l* k, t4 }4 n$ r% `' {9 K' t
. ~6 K: B3 _+ O; v$ h# d两种模型如何设置:box-sizing: content-box(标准盒模型); box-sizing: border-box(IE盒模型)
$ Y' s9 ?/ b2 T! ^8 m; x, ~8 q( V. u! k0 g- v: n: v% r
JS如何设置获取盒模型对应的宽和高: v0 t+ p1 ] J# X9 I; b
) P2 S# m* E, C. a& s! D* a获取方式 优缺点$ z( b v* }3 L, `. G6 s
dom.style.width/height 只能获取内联样式设置的宽和高1 Y" d/ }0 I. g" p( j/ n$ P0 ]0 |
dom.current style.width 获取浏览器渲染后的宽和高,只支持ie5 ^6 P1 }9 R! _. \; m3 X1 e
window.getcomputedstyle(dom).width 兼容性更好' k* ~$ [+ Y) I/ y0 T
dom.getboundingclentreact().width 适用于取元素的绝对位置。能取到 left top width height 四个属性 。// 获取浏览器渲染后的宽和高一般用于获取元素绝对位置3 a& ]* D& H% {# h. ~- E- x x
实例题 (根据盒模型解释边距重叠)子元素边距成了父元素边距
: \/ s# R" H( K! I- a7 j; `# Z0 @
块级元素包含了子块级元素,子元素是100像素, q7 t: M9 o: ^. Y6 C: }& w; M: r
子元素与父元素上边距是10像素
: X& J0 U6 l. S; d7 Q父元素是110px还是100px (100px, 设置了overflow:hidden就成了110px)
( i+ J/ ?* V, W另一种兄弟块级元素-
2 A4 i0 k7 J6 U5 N
7 _* u4 J) G( `8 D5 O" p, ~9 Z挨着每个都有上边距或每个都有下边距。-) P! k" t6 u2 x& W" Y* d3 o
该重叠的原则就是取最大值# d+ |' [1 S* _; Z3 X: j0 U
空元素的边距-取margin-top和margin-bottom的最大值8 f. T$ y- M, E
解决方案:% o& r8 |4 ]% Q2 V, n
+ }; T% u, ^% l: E2 r2 a父元素创建成一个BFC (无论父子,兄弟情况)
; z, }$ k, S# u( S8 D/ ~ [- ~8 o/ @4 W7 U0 S0 q9 ]
4. BFC (边距重叠解决方案)
+ `$ c C9 [' t6 J
" `) P/ b5 u1 U/ W' o' g! SBFC(边距重叠解决方案)
|% u ]5 h3 E" R/ Y- O. {. W" ~- S# {6 U9 i: b
1、BFC的基本概念: 块级格式化上下文;
- X0 [" w+ | R1 @+ g8 C, ]
: J0 C! S7 i9 G* F( p( ?2、BFC的原理:BFC的渲染规则。
: J$ R" m2 n, B% m3 }, d1 k
5 U }0 F" Q1 O- e①:在BFC这个元素的垂直方向的边距会发生重叠。(同一个BFC下外边距会发生重叠)+ B1 f9 N% L' Q- f; k# }
, X) v. Z" n% J
②:BFC的区域不会与浮动元素的box重叠。(清除浮动); W# i, G n0 o# u. l
, a& Y1 v* u1 L6 C9 q③:BFC在页面上是一个独立的容器,外面的元素不会影响里面的元素,里面的元素也不会影响外面的元素。5 W4 l6 w c& w4 D
7 }9 L- R4 H& N0 Y④:计算BFC高度时,浮动元素也会参与计算0 |$ ~2 H7 I' b, L% K2 k/ u
# Y1 |! V3 L( h* b% x
3、如何创建BFC3 y" f* r7 Q- [3 X& I
6 l" z) |& ^0 G$ @
①:float不为none。$ T5 V6 N0 [7 n5 A% {+ }. B6 K
( p7 ^1 m3 W) z) ]) L②:position不为static或者relative。- H( R) m+ I! u* Q
$ Q" \+ W7 \0 O- U: F+ M) G. k③:display为inline-block或者是table相关的。
% [7 B* G% y; f. N+ T5 C3 s: }( R. W8 u1 Z: z$ P
④:overflow不为visible。
4 P; K$ C2 f- B2 x) Z) h' l7 r: v/ A1 Q8 V, l6 }
⑤ : body 根元素
2 u9 m- u3 \( I Y. {4 G0 g6 d2 e R' v" W1 e
应用场景: & L% n7 | @4 f- Q5 d. o
左右布局时,float
3 `' M# E, |4 U相邻div使用margin产生边距重叠5 R! _. P) U/ d6 A( r
dom事件
! S! S1 c3 _, ^: c, J( S
. J- }0 G3 w5 ?; E& Z基本概念: DOM事件的级别6 o( Q6 K) z! ?" g! b: Q w
* t1 c1 Y- D( E$ v
DOM0: element.οnclick=function()( S: A8 C% U+ V) }: c$ p: N, `! h
% ]+ T) Z8 W5 l2 zDOM2: element.addEventListener(‘click’, function(){}, false)4 \+ y/ ]1 d$ e: H# E$ _3 S+ @
3 I9 i* _% g; h& o7 q: A% m
DOM3: element.addEventListener(‘keyup’, function(){}, false)
; p% L/ f$ H0 Y r* ^2 g0 p* c6 z. c* U& L z9 k G
DOM事件模型
- Z' K, v! R! s# U/ ]
9 y9 k& F9 M" T0 K! i ^event.target 2. event.currentTarget
4 M1 T- S- n8 C' [6 i8 bevent.target指向引起触发事件的元素,而event.currentTarget则是事件绑定的元素
1 D5 F) Z! U# U3 ]0 e9 ?: K) MDOM事件流
& h! y" Y0 d6 I! [9 ^% f# Y4 Q5 a# y1 A& q( t
事件流 -->《捕获》 2. 目标阶段 3. 冒泡
: O7 U) p# T+ G: z6 l描述DOM事件捕获的具体流程
; M" o0 P1 a. o" l' }1 E F7 d* D, d# R+ t! a& Z/ l; ?
window 2. document 3. html 4. body 5. 按html结构 6. 目标元素
+ W0 A0 m- ]+ q+ cEvent对象的常见应用. `2 q# V% E% B ^3 d" Y
! H5 q& K% p. G$ U1 D
e.preventDefault() 2. e.stopPropagation() 3. e.stopImmediatePropagation() 4. e.currentTarget() 5. e.target()
5 F2 }+ H% P8 y- b( b" i6 h9 [自定义事件8 }% k' E/ V6 j) r: {3 z
9 |! B6 m/ t: a1 q m7 v& svar eve = new Event('custome');$ G4 ^( D7 ?2 U+ q6 D+ t
ev.addEventListener('custome', function() {
+ C: B. l, ^ V console.log('custome');
5 s4 E: C4 O8 T0 i# X});
/ f. n% v" M2 w* zev.dispatchEvent(eve);' l6 V, Q+ w1 d2 S8 x& r
1
$ ?: V( f3 u) E- G' A5 k2* h& j: ?' W& A$ q* r
3$ _$ H) \. J5 S' D* F8 a' S
40 _$ {5 v- R9 Q7 q
5. ~+ ^$ |( C+ ~" j
http协议7 s' H2 J8 z* o2 A& S1 ?
- F Z/ }- X6 ^5 A: @8 I, _HTTP协议的主要特点
) b4 Z2 i. X& v: T
4 V1 }9 k; V: A$ m; [' D简单快速(资源的URI是固定的,输入URI)、灵活(头部分有不同数据类型,一个http协议不同传输)、$ q1 L; W# N+ h
) D2 E8 w1 I( m1 B* o/ Y
无连接(连接一次就断掉)3 B; P1 e9 Q/ i; I
无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。2 }0 L" ~; p& O$ H1 B- o- Q
无状态(两次连接身份)
; C% u: `/ b0 ~) a; W" l9 f是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传" k* G) D& `* G# l
HTTP报文的组成部分
8 X- t5 |( q0 O* k; o6 \6 [& h7 `, @" ^2 O" L, Q H) ?( f
请求报文) i* K2 J4 `( }* y3 [% V
+ ^0 _2 s; p6 `( @. |2 b, b4 _
请求行 请求头 空行 请求体+ w: w) C" A: T& }( k6 x
4 @5 y# D" y" s/ ^响应报文
# C5 ~# e# ~/ ]6 |0 _9 y; a2 a4 I" @/ Z. C; W
状态行 响应头 空行 响应体9 P5 D! m( Z2 Z a' y5 j& i3 `3 Y5 V
& X% X8 d: V5 E/ K5 Q g
HTTP方法: {9 _9 e: I, C6 E/ k! J
. J9 Z9 a) s" [9 p9 }5 ~ ^: [方法名 方法作用 注意
3 x6 U( v1 n9 Z& w. L! \, OGET 获取资源 7 I) H: c5 j7 G* z
POST 传输资源 ' w3 j. T7 M2 ~* I9 ]8 z0 b5 C+ N* N
PUT 更新资源
3 g2 X; N; t/ i- d2 nDELETE 删除资源 / V7 V5 C6 D, |) D
HEAD 获得报文首部
% A' v: @+ x4 a% U$ W1 APOST和GET的区别
/ P* u6 E8 t( r; D m: ]. M
6 b0 z/ j9 \9 a! a" z4 e/ J4 Fget post
% g% D* d5 k, j4 {在浏览器回退时是无害的 会再次提交请求
) z+ M* i3 u4 l4 n! h" o* `产生的URL地址可以被收藏 post不可以
: W' l- r0 W( \/ |$ R* E' E3 G( U请求会被浏览器主动缓存 不会,除非手动设置
: ^7 A+ K( u5 r# C8 a$ X; K只能进行url编码 支持多种编码方式5 ~/ ]. B1 i/ \% T) G+ E) z+ K
请求参数会被完整保留在浏览器历史记录里 参数不会被保留
) q4 I% w# j* d. _请求在URL中传送的参数是有长度限制的 没有限制5 p% N2 U. c7 P/ k1 W$ o
对参数的数据类型,get只接受ASCII字符 没有限制: g& l% Z, N o- t4 _
更不安全,因为参数直接暴露在URL上,所以不能咏柳传递敏感信息 没暴露
/ s! D m4 T+ P参数通过URL传递 放在Request body中7 Z& H, R0 y5 J+ J8 H, s. x/ h, U
HTTP状态码
; }+ V/ t4 q8 o3 J/ P2 K/ |' w! V/ V
状态码 意义# z0 f& H, j3 d5 R
1xx 指示信息 - 表示请求已接收,继续处理。- F" T8 h* Z" O3 U: O( i! E; J
2xx 成功 - 表示请求已被成功接收。4 p' I5 ~" l; H" Q' }8 Q0 E' b
3xx 重定向 - 要完成请求必须进行更进一步的操作。5 Z4 K4 u( |8 O- Z9 t" ` Y
4xx 客户端错误 - 请求有语法错误或请求无法实现。
0 \8 _9 B/ h) R" Y5 R5xx 服务器错误 - 服务器未能实现合法的请求。1 X5 j# |7 E& [" n
状态码 意义0 ^4 h: {+ I. [# m5 T; \& P
200 OK 客户端请求成功" N+ O6 Y+ s5 g" P: M: v. ]# ?
206 Parital Content 客户发送了一个带有Range头的GET请求,服务器完成了它
1 b# @5 Z: Q2 c; J301 Moved Permanently 所请求的页面已经转移至新的url
1 U) B/ |" {% |7 I302 Found 所请求的也么已经临时转移至新的url0 u7 P" q& |4 n2 s) C
304 Not Modified 客户端有缓冲的文档并发出了一个条件性的请求, 服务器告诉客户,原来缓冲的文档还可以继续使用
$ i2 y5 U. C7 Y- u; J% W9 W400 Bad Request 客户端请求有语法错误,不能被服务器所理解: y% `& i4 N2 [2 Y# ]! t* Z" T; y
401 Unanthorized 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
* \" z$ e% {& R, l( p403 Forbidden 对被请求页面的访问被禁止: j/ j' x6 h* _. K4 V$ p6 V
404 Not Found 请求资源不存在
" Z9 C2 O |% @6 s3 ?1 }: y, C. g6 E( I/ X500 Internal Server Error 服务器发生不可预期的错误原来缓冲的文档还可以继续使用4 j/ B6 r( A* @* E% j
503 Server Unavaliable 请求未完成, 服务器临时过载或当机,一段时间后可能恢复正常
0 |- x- Y0 K6 G8 r. s, X什么是持久连接; g+ f4 `, O) W. \: r/ j) J
5 t4 B3 n' s5 E% t3 d- k2 [HTTP协议采用“请求-应答”模式,当使用普通模式,即非Keep-Alive模式时, 每个请求/应答客户和服务器都要新建一个连接,完成之后立即断开连接(HTTP协议为无连接的协议), \5 O1 E' h; ], [
( O/ r$ k8 b% F) K; ~- X) o+ `# \
当使用Keep-Alive模式(又称持久连接、连接重用)时, Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。% K9 d' a- a* E: n% Y2 Q
5 o1 e% e: W% {4 I3 ]$ R使用了持久连接% _: g( |* w# E U
1 b5 B8 E, j7 j0 C
请求1->响应1->请求2->响应2->请求3->响应3) b2 n; k$ K$ m R
7 _) |( k8 V# H2 v* N0 x, W变成了, `' j8 Y# ]) J1 x
* Y* g, |0 {5 ~请求1->请求2->请求3->响应1->响应2->响应3
9 u- ^8 a. g! r+ i7 V @( ?9 \ O$ g2 L' a1 M9 ?8 d1 a
什么是管线化
, d: [$ O k7 v/ @( N6 H# F! X( S8 V6 R7 k! _0 O
管线化通过持久连接完成,仅http/1.1 支持此技术
# r' K, v- n1 q( N只有get和head请求可以进行管线化,而post则有所限制
8 W3 I! S; o) P( D' q0 ?1 b+ I" y初次创建连接不应启动管线机制,因为对方(服务器)不一定支持HTTP/1.1版本的协议* `' A% P! D6 [# m* {
…
" W; C+ t, c5 l& z1 C安全; {! O& i0 p- L7 `' c: }8 R
6 g. q, E, l5 X; l5 b& C/ z8 xCSRF% _' e. \4 q, C. X" t7 P- ]1 n) q
基本概念和缩写* n% ]$ F A# M* O' z
CSRF, 通常称为跨站请求伪造,英文名Cross-site request forgery 缩写CSRF。4 c1 C& G! Z% ?9 L; c+ a
攻击原理- A& g5 J! q! B/ K2 S2 n0 o
访问网站B时,网站B引诱点击链接,用户浏览器携带的cookie就被网站B的某些代码访问了。
4 D3 @" {/ X+ n+ s! G# Y这利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。; x; I0 [+ x' G+ R% d4 e9 H- P4 H
XSS
1 A. A; }7 s/ r+ r基本概念和缩写
/ D5 S( w& z6 o* I+ Q' g. o3 cXSS, 跨站脚本攻击, 英文名Cross Site Scripting 缩写XSS。* Y1 R) h5 O/ ^& K
攻击原理
5 `# _8 D5 r# \9 U3 `: t输出脚本code
! |( u2 |+ Y M" H, x" E2 K跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。9 V$ d! G1 X7 x- F! ~! a
xss漏洞通常是通过php的输出函数将javascript代码输出到html页面中,通过用户本地浏览器执行的,所以xss漏洞关键就是寻找参数未过滤的输出函数。
# x+ X& k/ S: p4 w; ^% D渲染机制类( t/ {3 s! a* E2 w/ S
6 {+ l3 y/ z, N4 s什么是DOCTYPE及作用
" z' R6 G- q1 `) s$ I1 |, u) G) c8 h1 Q, \ c" J
DTD (document type definition, 文档类型定义)是一系列的语法规则,用来定义XML或HTML的文件类型。
; J. e& A6 B9 O9 A6 r; A) p# ?3 q作用:浏览器会使用它来判断文档类型, 决定使用何种协议来解析,以及切换浏览器模式。. x4 ^" x( v9 h4 s
DOCTYPE是用来声明文档类型和DTD规范的,
: K7 O/ ~9 y# S8 e' `: w5 d作用:一个主要的用途便是文件的合法性验证。如果文件代码不合法, 那么浏览器解析时便会出一些差错。
5 ]+ @) Z$ x$ v4 f) H# AHTML5的DOCTYPE:
: M. m1 \- O- b' A1 q- P
* h5 g6 D" K/ f- U6 ~9 L5 r8 BHTML4有严格模式和传统模式
& t) @3 k1 C: A, Q& b5 K
! f4 }/ h2 Q9 t: X2 @3 u4 H$ r浏览器渲染过程
4 \) F& n* q- U/ M M) [/ _
, a5 o, }! {( X一些概念7 E, `" Y/ M( y5 U" B. \- c; V
3 |/ O: G) E8 t$ b, V名称 概念
; f9 s h( s4 e; w3 y. ADOM Tree 浏览器将HTML解析成树形的数据结构。
) ^( U) N n/ e, ECSS Rule Tree 浏览器将CSS解析成树形的数据结构。
6 v! |! s* Q, `( T5 n6 {9 b: N& VRender Tree DOM和CSSOM合并后生成Render Tree。1 o) l/ ^& _* s. L- }8 q7 |
layout 有了Render Tree,浏览器已经能知道网页中有哪些节点、各个节点的CSS定义以及他们的从属关系,从而去计算出每个节点在屏幕中的位置。3 E- P- V' g- D+ E
painting 按照算出来的规则,通过显卡,把内容画到屏幕上。% {) @4 ^# z; Z
1。当用户输入一个URL,浏览器就会发送一个请求,请求URL对应的资源- S" e6 X* f. F& R" @
2。HTML解析器会将这个文件解析,构建成一棵DOM树
* p2 U" ~/ y4 `6 G- T: f3。构建DOM树时,遇到JS和CSS元素,HTML解析器就将控制权转让给JS或者CSS解析器2 V; J9 _3 t, ?; f5 Q
4。JS或者CSS解析器解析完这个元素时候,HTML又继续解析下个元素,直到整棵DOM树构建完成8 V0 r! U: x7 T" o% K& I |' M$ _
5。DOM树构建完之后,浏览器把DOM树中的一些不可视元素去掉,然后与CSSOM合成一棵render树
/ x- c7 T! I9 r& c2 \( ^6 l6。接着浏览器根据这棵render树,计算出各个节点(元素)在屏幕的位置。这个过程叫做layout,输出的是一棵layout树) @7 B$ c2 w, w' G
7。最后浏览器根据这棵layout树,将页面渲染到屏幕上去/ ~0 y; z( H1 I2 p
19 J7 d7 N' U: R8 j8 ?" M
2
& y# c0 x8 t1 r3
; I* b; P2 q5 x$ F4 R4; T3 q8 U0 x5 e* X
5
* J9 k3 M$ ]9 h6
4 Z2 t! k$ b8 C: G" s2 J7% C# f4 Y, f) y7 J6 e# h
重排Reflow
5 d- X( z' L$ d$ g" _! M+ k( @0 D- C1 ^/ `
定义:当浏览器发现某个部分发生了变化影响了布局,需要倒回去重新渲染,内行称这个回退的过程叫 reflow。
6 M) W4 T% F) z, | f5 ]4 c' K( F触发Reflow:2 ~1 a: X+ E9 v; S2 Q. l' v
当你增加、删除、修改dom节点时,会导致Reflow或Repaint
, y+ F/ `, y1 Y& q" o2 j当你移动DOM的位置,或是搞个动画的时候
7 b4 X0 m0 K, _+ W& j% J8 Q当你修改CSS样式的时候2 O- Q9 N$ e4 m
当你Resize窗口的时候(移动端没有这个问题),或是滚动的时候- f5 l- G) I& _
当你修改网页的默认字体时, S9 r' b2 v1 u2 C
重绘Repaint
( l/ \; G1 v/ B3 C" w5 J
0 g" |4 p7 k& I9 C定义: 改变某个元素的背景色、文字颜色、边框颜色等等不影响它周围或内部布局的属性时,屏幕的一部分要重画,但是元素的几何尺寸没有变。
! e- A0 t' K( K z5 Y% B2 H5 w7 D1 g' ^; o( L( o2 e
触发Repaint:( W5 Z) \9 C$ X! c% T1 W
( ^; d$ D6 L( e7 [DOM改动$ W6 X5 m) w: ^. T7 r
CSS改动8 v! H4 X" \( k3 @7 _' H
————————————————8 S" x0 W, B+ `, U) H+ F! J( J
版权声明:本文为CSDN博主「ton365」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
e" E' v/ v2 O原文链接:https://blog.csdn.net/u012015672/article/details/105931291) _* Q; `# j: ?! u. W5 B
8 `6 l! m6 \& @! R6 m
) E, j! u0 v# J4 M |
zan
|