- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 563294 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174211
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
HTML 知识点(未完)
* o& _) Z# q7 t
9 r( n4 ^: P% t+ C: y( f7 V7 f* N2 c# I& GHTML 知识点
3 S9 _0 d/ `% ^ J/ r1 [/ K4 s
5 D. H. e. K( t9 V* T三列布局- (高度已知,左右宽度固定,中间自适应)
. ?6 D% x$ h `$ T
1 h+ W" C7 b k7 w/ n4 n7 P布局方案 优点 缺点
2 D6 l! F) t2 V4 }! e9 g7 ~. ~浮动 兼容性好 脱离文档流,需清除浮动
' } Y$ b: O4 B' Z绝对定位 比较快捷。 因为其本身脱离了文档流,导致了其子元素都脱离了文档流,使用性较差。4 e t+ P3 _3 z2 \! s, g
flex布局 目前是比较完美的方案。 只兼容到ie9。
3 c. G$ P" ?" `2 `, f5 f: l( L表格布局 兼容性好,当需要兼容ie8时可以用表格布局。 多栏布局时,某栏高度增加,会使其他栏高度一起增加。! ]% @8 @2 J. \
网格布局 新技术,代码量少 5 b+ W/ u \' j% s
<!-- 网格布局 -->; R, b/ j0 W% n+ G6 Y% T
<body>4 A1 o. B$ y: G% \! a, p2 H
<section class="layout grid">
9 R U3 W1 ?% H# D) g <style media="screen">
/ @& C" @/ h P) u4 m) {5 A) V5 J3 r1 d .layout.grid .left-right-center{5 S* r( Q E, Y
display: grid;
, Y$ l# F8 K N+ P width: 100%;
* S2 H+ n8 k, u' Z! j$ ~- {4 E. J grid-template-rows: 100px; // 设置行高
) T. g- k$ \+ R- l grid-template-columns: 300px auto 300px; // 设置每列的宽度- o7 l9 m& }" ^3 @: |: R
( t: K; V' L; q9 j* {8 G- E3 G
</style>! k1 @: }2 K8 |5 T
<article class="left-right-center">8 k2 {+ W4 T$ c" [' _+ p* D
<div class="left"></div>
) v0 ^& |1 h c9 S$ p, X <div class="center"></div>' ~8 s% H1 L4 i$ n2 d- {, O! H
<div class="right"></div>8 }0 R3 u, n {: j) e$ W P
</article>
) z% @2 N" L9 d9 x9 r8 a+ j1 N/ P# Q6 A </section>
8 M; u8 _$ V) F</body>
8 p3 A% t6 R# c2 x" D- L0 U7 j8 u* t
css盒模型
# {" H; Q+ a K6 Z6 D3 u' Z6 B5 \' j+ ~
CSS盒模型的认识$ X: c+ M% t" s3 X: i7 ]9 L( Y
* |+ {9 x) e4 Y0 J4 O5 P0 N
css属性: content padding border margin
! @9 {( O" P) W% o$ @/ N* s- c* h9 n* O% C+ @
两种模型:IE盒模型(怪异盒模型)和 标准盒模型
8 e2 i ?: [ D6 N, X
?# C2 R! T0 s9 v* R两种模型的区别:计算高度和宽度的不同
# o: g: a/ \% q8 Y" d" G( |* }. C7 A2 ]( ~ N `- F
两种模型如何设置:box-sizing: content-box(标准盒模型); box-sizing: border-box(IE盒模型)- ]5 u. [7 f& H# n
7 I4 G2 ]+ z. d6 E
JS如何设置获取盒模型对应的宽和高3 l! n) I$ W( s
" _- t$ `* G3 A6 }
获取方式 优缺点! d. ?- v8 U; r) `' K
dom.style.width/height 只能获取内联样式设置的宽和高0 X) g( o& d! G, t( w$ ^3 R! l
dom.current style.width 获取浏览器渲染后的宽和高,只支持ie( A7 V" l/ b% {; ?
window.getcomputedstyle(dom).width 兼容性更好! a1 Z4 J4 X0 w0 {9 ]7 D7 F, B
dom.getboundingclentreact().width 适用于取元素的绝对位置。能取到 left top width height 四个属性 。// 获取浏览器渲染后的宽和高一般用于获取元素绝对位置
' u. P+ ^3 K. U9 r实例题 (根据盒模型解释边距重叠)子元素边距成了父元素边距# d2 y* D% @* Y/ z/ I: F. f
$ ]# z F; M) f1 Y: _
块级元素包含了子块级元素,子元素是100像素6 l3 y3 c. m" i/ W0 Z: I
子元素与父元素上边距是10像素# `# r# `" I: _% ]
父元素是110px还是100px (100px, 设置了overflow:hidden就成了110px)7 _& h6 ?* ?1 e9 G* J
另一种兄弟块级元素-
) j9 I+ b5 G, n8 y4 ~$ C
5 ^* g% [) \* K, x8 O: I; U挨着每个都有上边距或每个都有下边距。-2 |, x; o( v: E1 O! @
该重叠的原则就是取最大值0 h3 r: R/ U8 E& P: f
空元素的边距-取margin-top和margin-bottom的最大值
4 J$ t5 s) p* N) `解决方案:
" O. |' r! V$ k6 X
& K6 @% a7 d/ N" k0 N' @0 \( L父元素创建成一个BFC (无论父子,兄弟情况)
2 `8 O- Q3 X" T- h; H" q7 E F* I/ C/ J5 c2 V% U& h# [
4. BFC (边距重叠解决方案)
0 V% a+ }) N1 ^" ~4 \! @3 u+ O7 h- n" X8 O, `
BFC(边距重叠解决方案)3 Y6 |4 C) F' Y/ E5 z, r
, ^# H K3 h* P- x
1、BFC的基本概念: 块级格式化上下文;
% e2 A. y0 C! W( N& p1 t; ?! a5 j+ `3 l7 A1 F1 m9 q2 Q7 z& E
2、BFC的原理:BFC的渲染规则。
D) g/ L7 m4 Q" W9 i$ Z- p3 C% X# t
①:在BFC这个元素的垂直方向的边距会发生重叠。(同一个BFC下外边距会发生重叠)
! R' M( k+ J8 L+ O3 Y' U4 k" c [
6 F( O% v( z, G+ b. F②:BFC的区域不会与浮动元素的box重叠。(清除浮动)2 q3 C! V; A1 i! c) g
- `' z) F- R/ k/ f
③:BFC在页面上是一个独立的容器,外面的元素不会影响里面的元素,里面的元素也不会影响外面的元素。
# O5 L* n% K3 f5 j* i4 }7 ~
& F2 V, K- A9 I9 I④:计算BFC高度时,浮动元素也会参与计算
2 g: i& k. z7 N/ {# |8 Z3 \6 T# _( I# _. Y, k
3、如何创建BFC t" V! h) O5 n) e7 U9 a
4 k" G) R3 y( q# k7 K1 c6 Q1 v①:float不为none。! w4 |5 D* X* @3 N W' V; j) s0 v
0 e6 T* b$ @ i1 ?6 ]
②:position不为static或者relative。0 C8 P9 A7 A" f5 G0 L: C" {
" z1 V: d, y6 [/ ?③:display为inline-block或者是table相关的。
; X( {; ^) |" ?+ F# k3 \0 o$ f. g" d$ I
, [* ~! N; J7 G1 `5 s$ _) z. w④:overflow不为visible。
6 x- H3 d7 d) w+ r0 x, M. n
) \9 B+ F9 `( R( g) b. k⑤ : body 根元素0 t8 {: D% w. e y0 U+ f
4 K" |4 ?" j9 S, g4 m
应用场景:
R4 z7 E, {$ } Z( W% g8 _0 X左右布局时,float
" Y8 S2 D5 U0 `6 H7 h相邻div使用margin产生边距重叠
! q' Y+ p& f6 j# q5 wdom事件
) x7 Y$ \# x( Q+ q( F2 _, l0 i) K' u1 k, B1 s8 Z
基本概念: DOM事件的级别
9 Y- C& d& f1 v. m
. t ^9 i$ w8 J1 e- k- Z/ l7 _DOM0: element.οnclick=function()
5 ?* L0 J3 |5 V0 u$ b( z6 W* F* q. a4 o* j% f
DOM2: element.addEventListener(‘click’, function(){}, false); N6 k- C4 B1 ?' X& b
, k$ q& G) k- n# {6 _8 l+ G. P
DOM3: element.addEventListener(‘keyup’, function(){}, false)/ g$ y; o4 y5 v
% S2 ~# M8 K3 ^. f9 U; eDOM事件模型
& F6 P5 w$ ?1 l a- h' u$ L! j; H) ^: R5 ?! U9 b
event.target 2. event.currentTarget
- F% S9 q' q* h; Wevent.target指向引起触发事件的元素,而event.currentTarget则是事件绑定的元素: Y: _7 e: h2 X" v, v" |7 e$ D* F" R
DOM事件流1 m# o/ O% ^1 p- [
$ ^. i) B7 ?% s S
事件流 -->《捕获》 2. 目标阶段 3. 冒泡* f3 x9 m& ?$ @+ Q$ @0 L
描述DOM事件捕获的具体流程
& V, Y$ z/ T: u& ~6 B4 B$ K, F5 i" Q! I. ]+ v) J- p
window 2. document 3. html 4. body 5. 按html结构 6. 目标元素
$ }+ J8 O7 Q ?0 NEvent对象的常见应用
$ i) r+ _5 _/ B- _/ ~9 M, |6 o* j# E, D# X- d
e.preventDefault() 2. e.stopPropagation() 3. e.stopImmediatePropagation() 4. e.currentTarget() 5. e.target()% U2 v3 g8 {+ w6 M2 m
自定义事件3 Q# i q5 L; }8 A4 T/ E/ }6 f, a P
+ `1 X: \. }8 o$ x
var eve = new Event('custome');
/ o3 c& }, B6 ?( {ev.addEventListener('custome', function() {+ U. x3 ]5 p* S
console.log('custome');" I. p( t4 h: q' |; |
});) m. b$ g/ v! T0 R
ev.dispatchEvent(eve);
) V, Z z! T& \7 q, W1% X2 r4 O6 I5 s8 _7 ^& H* u
2
7 r' C% f$ ]9 Q$ K34 s# E- t; q( ^7 k8 v- E# y
4: u* ~ V7 v# I5 Z% P; C
58 P/ O7 G: D. k8 ?6 I, P" S1 K* i
http协议# E# n8 M; G o" [8 N
3 z2 H/ Z- ?4 R. ]) pHTTP协议的主要特点 [, Y/ x! V7 R, f2 {
2 o4 B0 b9 D2 h9 J$ q
简单快速(资源的URI是固定的,输入URI)、灵活(头部分有不同数据类型,一个http协议不同传输)、. E% C$ K; \1 R4 G" C. v; E
) [ I* w1 h' L: t* C6 u% F
无连接(连接一次就断掉)& a8 l( H3 ~1 S5 o' J& v
无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。
$ K4 `( P- v3 X0 q1 y; b7 @无状态(两次连接身份)
3 ^7 L! G- }7 O9 [2 H, P1 S" x是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传+ v' E9 ~- `' ^" Q8 e* B
HTTP报文的组成部分1 A! f# Z2 u E1 `- E( o. ~( `
) q' V, k' `0 X* k! E; X
请求报文) J% `9 K) H" p, P7 E
3 V6 e8 s- L% i0 h$ N, C3 d请求行 请求头 空行 请求体% v6 m# ?$ L- X6 ]& X+ r- O5 K
/ K8 \, ^+ \$ F
响应报文
9 y! R" W$ x6 n* t5 n8 r/ N$ q' j- q2 q( c& A3 H: f! i: W: W
状态行 响应头 空行 响应体
8 _4 I0 q5 \ S4 t
. d; I. Q; Q) }0 c$ Y dHTTP方法" f2 u* a4 l" g8 o
~9 k2 Y$ N$ B4 y
方法名 方法作用 注意
8 t, F0 ]" V, R0 |! v; p4 YGET 获取资源 6 k8 Y# C- b [+ U9 Y7 A
POST 传输资源
! _3 I5 t: s7 a% [, e$ UPUT 更新资源 % m4 \4 t. T' e7 [6 ?! ^
DELETE 删除资源 " ~7 v) }6 e# v8 x- f F: D
HEAD 获得报文首部
0 E! i& ~: l/ T5 C. U9 r8 ?$ ?POST和GET的区别/ y$ g$ P0 z, Y6 P1 L8 G
* {7 |* Z4 U! T4 Q1 k2 g Y# ]' w! Sget post
* D4 n" q- q9 h2 W) |在浏览器回退时是无害的 会再次提交请求
4 L6 |, L; t) g9 F" L2 E$ ~产生的URL地址可以被收藏 post不可以' X1 J- ?( U7 K# o3 x
请求会被浏览器主动缓存 不会,除非手动设置 d2 m6 t. M4 V3 L9 P& }7 y
只能进行url编码 支持多种编码方式, z. ^ y# a/ _- z: q
请求参数会被完整保留在浏览器历史记录里 参数不会被保留4 n. @7 j. l/ d# Q* {: ?- C
请求在URL中传送的参数是有长度限制的 没有限制
- [% t2 S6 R* T! U P) n" \- f6 @对参数的数据类型,get只接受ASCII字符 没有限制
4 U4 Q: E# f1 ~更不安全,因为参数直接暴露在URL上,所以不能咏柳传递敏感信息 没暴露8 W' M2 y8 w, ^ o6 u. J
参数通过URL传递 放在Request body中& t' Y' R3 n* i {1 G3 j+ W
HTTP状态码
( i* E; a8 n# z' Y- P$ }( N) w t' ^9 O# O
状态码 意义8 C9 t2 A, C; d @# j) W5 F. }9 j
1xx 指示信息 - 表示请求已接收,继续处理。
+ L! I. r( ~2 d& G2xx 成功 - 表示请求已被成功接收。% ? Q: J9 e6 T* V) E* V
3xx 重定向 - 要完成请求必须进行更进一步的操作。1 {& x7 l3 n( e/ y0 _) Z# D
4xx 客户端错误 - 请求有语法错误或请求无法实现。- @( y% X J% g1 L& V
5xx 服务器错误 - 服务器未能实现合法的请求。& I+ c( B) I4 N( t
状态码 意义
$ \/ Y+ L( Z! D3 S+ a# X* o200 OK 客户端请求成功
. n; k! n, A8 ~; s4 f' ]206 Parital Content 客户发送了一个带有Range头的GET请求,服务器完成了它+ Q9 o' _& @# G- u/ P
301 Moved Permanently 所请求的页面已经转移至新的url
2 f4 K3 h5 [9 ?302 Found 所请求的也么已经临时转移至新的url
( I3 M- J% R* Z304 Not Modified 客户端有缓冲的文档并发出了一个条件性的请求, 服务器告诉客户,原来缓冲的文档还可以继续使用
3 b1 @9 p8 h ~4 l* @# C& q400 Bad Request 客户端请求有语法错误,不能被服务器所理解4 d- k: }8 G8 W* C1 D& O& V- f
401 Unanthorized 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
% P/ h7 l. F }$ {# b! c6 q# Z403 Forbidden 对被请求页面的访问被禁止
6 v4 [7 _, C) S& O404 Not Found 请求资源不存在
9 Q4 s/ ?' B3 O) z500 Internal Server Error 服务器发生不可预期的错误原来缓冲的文档还可以继续使用1 O) t. D: @6 J5 [' G
503 Server Unavaliable 请求未完成, 服务器临时过载或当机,一段时间后可能恢复正常# G% Y. e( K* y5 a# k8 q; Z& S
什么是持久连接
, d8 z' a7 I2 I6 n: l k; i# r7 P- X+ ?( ]8 O- f& X, g6 u- A! J
HTTP协议采用“请求-应答”模式,当使用普通模式,即非Keep-Alive模式时, 每个请求/应答客户和服务器都要新建一个连接,完成之后立即断开连接(HTTP协议为无连接的协议)
/ K3 |0 C/ ?$ a4 v6 C- e# W1 n9 R7 N7 U: h" @
当使用Keep-Alive模式(又称持久连接、连接重用)时, Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。
! b2 W9 O# x: v! F9 p
W7 V: n5 Y. `8 f/ u使用了持久连接$ U/ ]# a4 Q; e4 Z3 P3 e
) d; u3 }; T$ Z- G7 U
请求1->响应1->请求2->响应2->请求3->响应3
7 K9 p2 C* u. m: Q# P( o( w1 z
变成了
/ `: y/ P5 U+ U. {6 _1 g4 p. M$ H% t6 o% V5 \' X
请求1->请求2->请求3->响应1->响应2->响应3+ M1 o+ g# p; y2 J; B/ i) n$ @+ X
, G7 U6 G; d" L3 y6 l
什么是管线化
+ x1 `3 j' X: T, M
$ m- ~, c, |8 P' c% p4 O; e管线化通过持久连接完成,仅http/1.1 支持此技术
3 E- m' L* ]( q: t只有get和head请求可以进行管线化,而post则有所限制. Q: x; P4 P7 n6 J7 y! e4 H
初次创建连接不应启动管线机制,因为对方(服务器)不一定支持HTTP/1.1版本的协议' R8 e: g3 ~0 X
…; `5 j0 {- _- ]4 r6 O& P; Z* w
安全& Q" M% R ~% d- {( z6 ?; c- b# h
7 p2 c" I, v+ A8 k& h8 y6 lCSRF
( Y9 G8 N3 M6 c! x( P; y* Y2 e8 G基本概念和缩写
; H, k. W( I4 H( QCSRF, 通常称为跨站请求伪造,英文名Cross-site request forgery 缩写CSRF。3 X9 ]# q* J! L
攻击原理( S) |8 A, N/ l: Z
访问网站B时,网站B引诱点击链接,用户浏览器携带的cookie就被网站B的某些代码访问了。
* r j D) X$ y* ~这利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。
t6 c7 V( a7 Z. i/ DXSS
% X, o: \( J! g, D( \$ J4 C基本概念和缩写0 S$ B, a% s& R+ i
XSS, 跨站脚本攻击, 英文名Cross Site Scripting 缩写XSS。9 s8 Z: }0 u$ n2 |
攻击原理( h: G1 r0 p7 A0 `5 Z# L* h
输出脚本code
- [8 S0 y; e3 {. e- h跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
/ E: W# y1 E' Dxss漏洞通常是通过php的输出函数将javascript代码输出到html页面中,通过用户本地浏览器执行的,所以xss漏洞关键就是寻找参数未过滤的输出函数。3 j% b% ]# ]6 S+ S' X$ l
渲染机制类# B6 o7 P% u/ X4 f; U" X8 i
' h1 s/ h. M" }; v什么是DOCTYPE及作用
: _0 l" n# R6 z2 F
5 n- S, {; I4 V( x; E1 qDTD (document type definition, 文档类型定义)是一系列的语法规则,用来定义XML或HTML的文件类型。
: @- p1 i7 v/ e* }; C作用:浏览器会使用它来判断文档类型, 决定使用何种协议来解析,以及切换浏览器模式。
! z; Z& H* a0 ?DOCTYPE是用来声明文档类型和DTD规范的,
8 j g* Q" H2 S作用:一个主要的用途便是文件的合法性验证。如果文件代码不合法, 那么浏览器解析时便会出一些差错。
# | m, [+ ^# Z# i7 aHTML5的DOCTYPE:- ?, A4 o) H' w& T4 c! a1 c* {, s
9 I/ |1 `. _9 E5 bHTML4有严格模式和传统模式2 s ^# z! j2 E! y9 |7 @8 F
+ w5 C7 t$ T/ A
浏览器渲染过程
4 `; n3 O- M3 o* m
0 m8 y' g+ T" g G6 d" N一些概念
+ \/ d& N& a) r& ]& I! h, D- [) a/ P9 R4 W
名称 概念1 u- Y4 l. c2 L" ]$ r- c$ ^
DOM Tree 浏览器将HTML解析成树形的数据结构。& ^) A% T; o+ T7 L7 a
CSS Rule Tree 浏览器将CSS解析成树形的数据结构。
, c" J d4 T+ x6 w( i8 ERender Tree DOM和CSSOM合并后生成Render Tree。
8 S0 m& O! T5 G- i1 e0 c; O0 rlayout 有了Render Tree,浏览器已经能知道网页中有哪些节点、各个节点的CSS定义以及他们的从属关系,从而去计算出每个节点在屏幕中的位置。9 F5 a) t/ a7 a! R; p. X
painting 按照算出来的规则,通过显卡,把内容画到屏幕上。' t2 }' Q9 T) k: }! B
1。当用户输入一个URL,浏览器就会发送一个请求,请求URL对应的资源: q0 ]$ b' D U4 ~% h, {
2。HTML解析器会将这个文件解析,构建成一棵DOM树& W. X3 k0 M S8 v7 r9 \
3。构建DOM树时,遇到JS和CSS元素,HTML解析器就将控制权转让给JS或者CSS解析器
! ]( g0 M+ c# ~* y1 s1 j: H; i4。JS或者CSS解析器解析完这个元素时候,HTML又继续解析下个元素,直到整棵DOM树构建完成
8 R: X& l' r% H$ f# x" `! I$ j% f5。DOM树构建完之后,浏览器把DOM树中的一些不可视元素去掉,然后与CSSOM合成一棵render树5 y/ M% ?& U6 V, N) P
6。接着浏览器根据这棵render树,计算出各个节点(元素)在屏幕的位置。这个过程叫做layout,输出的是一棵layout树
3 p& X- U7 W, S$ g0 Z- j! e7 D7 @3 ?7。最后浏览器根据这棵layout树,将页面渲染到屏幕上去
) H8 Q. Z/ j6 [! k* Y6 }$ j1( `& r h9 H5 w7 N/ q& X
2
& \. o' d7 L2 {6 X0 K5 L, ?3& C- s/ y6 }4 s! u" H8 q! h% k
45 n5 y! B! v. H3 ]5 w$ P) M( H
5
/ _2 G. t! h0 T$ d6
& t& w6 Z) q+ M. X8 x! G1 h6 W7
`* U* ?0 A0 M7 k7 @, n; F3 F重排Reflow+ L+ }9 \% W' R+ J3 U
2 m/ ~9 S. o1 l定义:当浏览器发现某个部分发生了变化影响了布局,需要倒回去重新渲染,内行称这个回退的过程叫 reflow。
4 y- v% l+ y8 K- E触发Reflow:2 X, o" k4 O+ W
当你增加、删除、修改dom节点时,会导致Reflow或Repaint
. Z6 ]$ U1 P0 @- M" W5 V当你移动DOM的位置,或是搞个动画的时候
3 U: P" ]2 U- W+ o" a当你修改CSS样式的时候8 p' D; |- Q9 ~% a) F! p1 T: V
当你Resize窗口的时候(移动端没有这个问题),或是滚动的时候
! ]3 b& R' x d' H+ I当你修改网页的默认字体时# y, u# S" h+ E q
重绘Repaint5 f/ n1 D/ b$ Z o" i% [6 b
8 L$ B7 V. X. C8 `. d) i6 x# V. g( e
定义: 改变某个元素的背景色、文字颜色、边框颜色等等不影响它周围或内部布局的属性时,屏幕的一部分要重画,但是元素的几何尺寸没有变。
* x* V4 o& R( ~+ Q; L: S* }
+ v* S$ m8 \/ |- u; A触发Repaint:
( i( A: W9 r* e" R# x9 G
( F8 ^8 h% J- G% F; D% dDOM改动
, z( Z3 `- w8 C; y4 ]& lCSS改动
; W0 n: ?1 w& T( {/ o————————————————
$ \: ^, F1 S/ @2 c版权声明:本文为CSDN博主「ton365」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。% @! m- H/ V8 ^( x% ?6 O; B
原文链接:https://blog.csdn.net/u012015672/article/details/1059312915 y* t. L2 i6 p' Z9 ]4 ?. O; c
4 x" A- F, w% Z Q# t2 `
( s3 @+ F2 A2 J) ~
|
zan
|