- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 565618 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174908
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
HTML 知识点(未完)
! R- U6 ~9 E1 }) K$ V2 U7 h3 c5 z2 ?$ X
HTML 知识点
! k% V3 J$ b+ d: P3 T# n; o
' D2 Q& e% N, u1 a三列布局- (高度已知,左右宽度固定,中间自适应)$ A7 I2 i. \5 V! ^: P
5 w9 g6 M+ _/ L布局方案 优点 缺点* x6 `7 g% _" a- V$ I6 H
浮动 兼容性好 脱离文档流,需清除浮动
9 j' b$ j; v9 n4 ^) i5 h. B绝对定位 比较快捷。 因为其本身脱离了文档流,导致了其子元素都脱离了文档流,使用性较差。
" V& x! R: l& I4 N9 T$ _flex布局 目前是比较完美的方案。 只兼容到ie9。
0 k1 R1 g8 F. o5 P" `表格布局 兼容性好,当需要兼容ie8时可以用表格布局。 多栏布局时,某栏高度增加,会使其他栏高度一起增加。
% e7 E3 E, F/ Y) Z5 D |网格布局 新技术,代码量少 * |3 r: [8 j- N5 m" W$ Q
<!-- 网格布局 -->
+ @" E7 v! _% s<body>
/ m* ?" c% j2 `6 V& a, g- T' h9 v <section class="layout grid"> ' G8 [* N: J0 c7 F( \
<style media="screen">* t2 B" ^9 m; C6 a
.layout.grid .left-right-center{
1 T8 T( R: \; X x display: grid;- Y+ U/ \8 a) d9 O( X9 F) \7 h: l
width: 100%;
) s3 q# Y0 c0 T, N& [9 y3 p grid-template-rows: 100px; // 设置行高
3 T- a% }; E9 [' A4 u1 } grid-template-columns: 300px auto 300px; // 设置每列的宽度
3 [# C) Z7 w1 H. p& q
/ D: C' B/ l$ ]: B1 O </style>4 @$ h/ X8 ~* r3 Z
<article class="left-right-center">) \" w; ?9 `1 k5 T
<div class="left"></div>3 B5 T b# Y( \1 Z
<div class="center"></div>
& E& P% U- y# @/ f/ |* |- }$ y+ u7 ` <div class="right"></div>* r! ~' D$ @7 x S
</article>
: e j( {* ` F4 H1 G" X5 X- ^ </section>+ o9 f4 V5 o8 {
</body>) c5 y% t4 u$ D$ U$ j: |
# {7 \; f2 n: U5 K! g. a% o5 K: w
css盒模型
: S9 n1 e( j) V7 h& x0 f! U* S- r
CSS盒模型的认识& z0 |! D, M) Q+ z- j
& w0 E5 a; a2 b/ Q9 w
css属性: content padding border margin
- X' h) z! l' E; Z2 j& q5 X* m: a/ x- F- |' M& w1 P% [8 m
两种模型:IE盒模型(怪异盒模型)和 标准盒模型
7 n' `' T- I- h# N
4 G& t# e; p- W) I. N! ~1 U' R8 C两种模型的区别:计算高度和宽度的不同
5 Q7 n/ ~* l) ?/ f5 Z# a+ ~3 u& {2 n5 p. N; z8 D1 N0 F& X' b
两种模型如何设置:box-sizing: content-box(标准盒模型); box-sizing: border-box(IE盒模型)
# A- v0 W* L8 P5 N$ _
( E; b( A5 E0 ~0 U4 dJS如何设置获取盒模型对应的宽和高
0 t+ ~- f, ^1 `2 b( T, C5 {( O i$ o0 e( b
获取方式 优缺点
6 P: s) P/ m; f/ S" D5 udom.style.width/height 只能获取内联样式设置的宽和高
' U5 X. }& B odom.current style.width 获取浏览器渲染后的宽和高,只支持ie% ?7 u; A( e% n4 k0 L+ L, i4 [. }
window.getcomputedstyle(dom).width 兼容性更好% X) ?' j# `0 e7 \2 }
dom.getboundingclentreact().width 适用于取元素的绝对位置。能取到 left top width height 四个属性 。// 获取浏览器渲染后的宽和高一般用于获取元素绝对位置5 w3 C. F! Y j& U" |/ j: c1 g
实例题 (根据盒模型解释边距重叠)子元素边距成了父元素边距! J) G- C, n3 v" p
0 s/ e4 X, |; ~- r' g块级元素包含了子块级元素,子元素是100像素" h% E: q6 U3 K: b, Q% D: |. T
子元素与父元素上边距是10像素) u) ~! S- t# D& ~% k" ?. y
父元素是110px还是100px (100px, 设置了overflow:hidden就成了110px)6 k$ [7 r( I4 h. H, ^. _
另一种兄弟块级元素-1 ^* k1 S5 W. l5 p9 [
5 i' [3 M" d9 X# l
挨着每个都有上边距或每个都有下边距。-5 t: O, H f2 x8 a5 t9 i' |
该重叠的原则就是取最大值
4 i( {/ o4 R' S9 @; t) A6 r+ f空元素的边距-取margin-top和margin-bottom的最大值
" \9 G# G a% R# R解决方案:4 U" S3 Z5 m$ \9 v1 S
2 M8 f5 u; H4 p9 p; [父元素创建成一个BFC (无论父子,兄弟情况)
- W, A3 G$ h, ?) D# U' c# v2 T2 i$ y: f2 a% j2 T( r
4. BFC (边距重叠解决方案)5 F v/ I" e9 l; F
5 e6 E/ j( m8 O) G' A6 LBFC(边距重叠解决方案)
" ~" n, i) z: h' d" R5 b4 G- W! N4 g4 k A, U: E7 d7 O2 \1 C
1、BFC的基本概念: 块级格式化上下文;
$ O* M9 V& A: A0 ~& d
$ h. V. l+ V/ K& \* E9 k2、BFC的原理:BFC的渲染规则。8 f' d- {+ X3 U& f' ` e0 }& L a- i
/ ]2 _- W5 r, b. J①:在BFC这个元素的垂直方向的边距会发生重叠。(同一个BFC下外边距会发生重叠). ?. G2 N, D) H& |1 O. {) y. i$ [) |8 g \
( g2 {) m7 Q' w8 Q6 [) f②:BFC的区域不会与浮动元素的box重叠。(清除浮动)
8 d4 G1 K5 F% d& t9 V% b. l1 ?) @9 Q0 P* V
③:BFC在页面上是一个独立的容器,外面的元素不会影响里面的元素,里面的元素也不会影响外面的元素。5 L: O- N7 r8 |! [2 i: X6 l
* l+ j7 v" N6 @2 Y④:计算BFC高度时,浮动元素也会参与计算! {0 y4 f2 A. g; g
/ f: C" }" R0 M6 k3、如何创建BFC
8 d& H5 e3 K6 n( T+ Z. l; m
8 `0 N* G z- X- w3 {4 q7 U) E2 k: }①:float不为none。
0 c9 P# p0 p: P! L5 r, [: F; R8 h+ u% J% v( p; u. x/ A
②:position不为static或者relative。5 a8 i1 x/ Q7 G/ e! }" e! M
+ A* Q& j4 K% `③:display为inline-block或者是table相关的。% E- b# q9 j8 Y; }
7 ~) e w0 m! R( c
④:overflow不为visible。
( U2 `# [ G8 d+ Q$ F" m" h9 K& X+ a2 C6 S* w0 m1 c' c, M/ h
⑤ : body 根元素
( {1 X* ^; C1 Z- C) W& p* s+ t% T- P8 T- y; m2 N
应用场景: + R# z; k3 j6 q0 K1 I4 [/ I+ l
左右布局时,float ^" ?: u& H3 ] T: d
相邻div使用margin产生边距重叠
k0 a( e% K- J- zdom事件8 Y m- a5 i8 w }. e8 N! ?
6 `; H5 f: i2 U! W! y* E1 r* _
基本概念: DOM事件的级别
% o ?2 t" j* u
4 W) s' y4 U: v L. u+ \DOM0: element.οnclick=function()% m/ p3 _+ ^4 v( b3 m& P8 f( f
$ G, w! @% c7 j! {DOM2: element.addEventListener(‘click’, function(){}, false) s( R* a2 P" z% c1 Y: ~/ X7 i
$ @& X6 k% q; r) E( ^' m6 J/ ~
DOM3: element.addEventListener(‘keyup’, function(){}, false)5 y9 P/ {; R* ]6 k4 _
$ J. A* X5 ?! `: y
DOM事件模型
* s& S! Q, S+ u" U: y$ K5 P9 a: ~2 Z9 Z7 U @( X4 b1 X3 b
event.target 2. event.currentTarget7 o0 {1 A6 {' O) D/ g8 P
event.target指向引起触发事件的元素,而event.currentTarget则是事件绑定的元素
$ X# B% C* v8 FDOM事件流1 Q3 q0 `% Q4 u. G
" Y9 F, Z+ @; A: _. \" C/ o( S事件流 -->《捕获》 2. 目标阶段 3. 冒泡
, X7 z9 t# p/ |描述DOM事件捕获的具体流程
- Z5 i7 d. K- h* V. R8 r3 `, O) h. H- ]
window 2. document 3. html 4. body 5. 按html结构 6. 目标元素
, T8 A0 Y+ T! C# a# k/ O wEvent对象的常见应用
; B6 G3 k+ R3 b/ ~) S N& ^% Y& b. f9 y! y
e.preventDefault() 2. e.stopPropagation() 3. e.stopImmediatePropagation() 4. e.currentTarget() 5. e.target()! K+ x( r4 c' G. T5 l! X, A1 o
自定义事件! p2 V9 S9 `# U5 C" ?
& B; e( x6 D8 U5 s& t5 f0 `! Svar eve = new Event('custome');
1 b: |6 Z, _. h4 t* Z2 jev.addEventListener('custome', function() {1 {0 j; I# ]1 P* z% M: s/ O' M( z
console.log('custome');5 g. r% I4 t" j- c A; G3 ?
}); Y9 M- t j% g# D) G
ev.dispatchEvent(eve);- U" d: b0 }0 |
1
# g6 l& S8 f$ V20 N! p% G: B% c0 ?, A- X/ n6 k K N
3# e6 d6 B& E% p2 v$ }
4
# X9 w4 k6 ]! A1 T8 H; u0 d# r) z5
7 t+ t* n9 ^" e; W5 u( ohttp协议' C& O* q0 R5 n! W7 j
0 V7 y# x7 i8 O4 q8 uHTTP协议的主要特点9 |5 A) d; T6 z# M" V6 O
+ H8 C3 L \# i# }4 W6 i4 c- K7 h& n
简单快速(资源的URI是固定的,输入URI)、灵活(头部分有不同数据类型,一个http协议不同传输)、( v: |9 g" z; @; G( w
2 E$ l8 \$ h( l( I- l. @4 d6 c' h无连接(连接一次就断掉)( k3 n& H* ^7 \5 Y5 @
无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。: a A" ~0 J+ `& C- ~* U
无状态(两次连接身份)
6 n/ @7 t+ C/ F* o- f. r* z是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传1 z' R1 g, M Y
HTTP报文的组成部分& H' |3 O# \, g; A
6 i: R6 O) M0 q' L
请求报文
F* k, h, X, V5 u" u' C, j) O* N3 P3 r/ Z% w8 ]! Q5 N
请求行 请求头 空行 请求体
h4 q1 P. V/ K" t7 R
1 G- ^0 W" h1 [) \1 |* k响应报文; ?4 i" w, D( ]! ~% v2 Q! o4 v
8 j* w/ P1 h/ c# ]; R状态行 响应头 空行 响应体# d) i9 }! g1 _, _$ W& S% T, F$ V
5 ~/ @- n* }7 `( E( v" Z' a5 GHTTP方法' Q1 X" I' Z% x/ {; [
* h3 M0 |& H; y& T: r7 Q/ x) G
方法名 方法作用 注意5 Y, y7 `9 c- Z+ }7 g# s; d' {' M
GET 获取资源
* a$ e+ K8 C8 M6 x. fPOST 传输资源 8 m5 ], V* U6 g+ h( s' b
PUT 更新资源
/ W9 r2 v$ i% G, K4 `DELETE 删除资源
+ _! O" Z: {$ L1 Z2 EHEAD 获得报文首部 % O% O& @7 D! ^* M+ Z
POST和GET的区别
1 z1 ^% z, ~0 R4 D5 y) E. L8 j- m& P. o' S$ E; j
get post
0 Q' t' q# v; q0 c& ~2 O. R在浏览器回退时是无害的 会再次提交请求
+ p) v4 ~) I; ~" ` s7 F# G: C产生的URL地址可以被收藏 post不可以" g- i8 G& n7 R
请求会被浏览器主动缓存 不会,除非手动设置
+ [' e; p: p6 }只能进行url编码 支持多种编码方式
& C; F9 ^2 V! U, D% [ g+ B请求参数会被完整保留在浏览器历史记录里 参数不会被保留6 g0 E, l; V Y' |
请求在URL中传送的参数是有长度限制的 没有限制
$ N0 d5 N, Y8 x4 D7 ] K6 M1 m5 b对参数的数据类型,get只接受ASCII字符 没有限制
; w, j5 e J h d$ q1 n! Z3 `) W更不安全,因为参数直接暴露在URL上,所以不能咏柳传递敏感信息 没暴露0 U% Y, {: B7 m' K7 D/ V
参数通过URL传递 放在Request body中+ s5 q; D3 Y! _* s5 a
HTTP状态码
1 p" u3 _( T( B9 c/ _! D( X9 {9 N$ X5 b7 D1 O7 }# Q) o" N9 O
状态码 意义* F8 z" ^6 t6 \3 W( S, t
1xx 指示信息 - 表示请求已接收,继续处理。2 J: S" A$ Z+ o( l4 u- c% W
2xx 成功 - 表示请求已被成功接收。
4 D }/ P. Z! C- X2 y- Q! T3xx 重定向 - 要完成请求必须进行更进一步的操作。' _; i* K4 n+ x5 Z" F
4xx 客户端错误 - 请求有语法错误或请求无法实现。
3 G) T8 X4 I! w/ q6 v$ e6 |2 h7 Z: B5xx 服务器错误 - 服务器未能实现合法的请求。+ ^) J k3 Q5 C8 Q' d6 {# j
状态码 意义' M# f! w& X( `4 V
200 OK 客户端请求成功
& @8 C) F4 T5 i* N- v+ `206 Parital Content 客户发送了一个带有Range头的GET请求,服务器完成了它& k U$ Z7 ~( w0 J( J5 H: K
301 Moved Permanently 所请求的页面已经转移至新的url. b( ~0 o& K8 ~3 U/ Q3 K& R4 w' g
302 Found 所请求的也么已经临时转移至新的url0 }. E t! e- H! p0 {! Y. ~* t
304 Not Modified 客户端有缓冲的文档并发出了一个条件性的请求, 服务器告诉客户,原来缓冲的文档还可以继续使用
: I7 _; Z2 g: `7 W& `4 G4 S: Y+ }400 Bad Request 客户端请求有语法错误,不能被服务器所理解. O* r( }1 o1 j& \1 O' Y
401 Unanthorized 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
" E# F2 l2 P7 u$ u [; S5 O$ U' s9 Y& D403 Forbidden 对被请求页面的访问被禁止
& {* b$ n- T# K4 i9 C w404 Not Found 请求资源不存在
9 n5 c ?) M- q4 J9 s$ p500 Internal Server Error 服务器发生不可预期的错误原来缓冲的文档还可以继续使用) M; r8 H8 n" O1 ?/ s( k& s9 ]
503 Server Unavaliable 请求未完成, 服务器临时过载或当机,一段时间后可能恢复正常
0 e2 ^' x I5 J" k8 b8 s2 D什么是持久连接: m% t, A1 y8 V" g
I8 W1 T* u( v1 e% k3 UHTTP协议采用“请求-应答”模式,当使用普通模式,即非Keep-Alive模式时, 每个请求/应答客户和服务器都要新建一个连接,完成之后立即断开连接(HTTP协议为无连接的协议)
) Q- \3 g( S/ p' f1 }- v5 f. ^$ E9 @& o! ^$ } ]0 t+ G* d
当使用Keep-Alive模式(又称持久连接、连接重用)时, Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。. U( t$ t1 g( B' I
: q3 \6 {2 M/ b; a( z
使用了持久连接% Q, B; U R; A' Y/ p6 q [
4 x9 z/ \0 T, Y# B3 o! R: z
请求1->响应1->请求2->响应2->请求3->响应3
& g8 z( u" p M4 ~, D6 ~# w# d! t( H/ Z& S/ `
变成了
2 _' V C! O# R$ A) g; a- U& y- L$ U& x+ |% B
请求1->请求2->请求3->响应1->响应2->响应3
) P4 X; y9 r7 F( @. _- d* ?
2 y! i& {' t6 p. s+ F" h7 u什么是管线化
7 U; A. V- ^7 p( d9 K. K! e& I3 p9 ?) c1 e/ Q, e: T" o
管线化通过持久连接完成,仅http/1.1 支持此技术' b+ C$ b/ C6 I: x5 E; d1 z
只有get和head请求可以进行管线化,而post则有所限制3 F5 q6 ?5 C ]$ C5 I2 a5 ^7 f3 |
初次创建连接不应启动管线机制,因为对方(服务器)不一定支持HTTP/1.1版本的协议
" Z% r2 C$ T8 A/ b…
- O- W8 q. \1 [4 V! e安全+ U8 t0 F3 L. D4 \% |( @0 W
6 m# a! O. y" L! g1 A5 Y
CSRF q$ Z4 \7 V1 c8 D! x
基本概念和缩写 a+ V o1 \3 `. e9 C% }
CSRF, 通常称为跨站请求伪造,英文名Cross-site request forgery 缩写CSRF。
% ]- r0 y! s; Q# S, E) n攻击原理
9 E0 b, r7 [# F& k; _: p+ k( L访问网站B时,网站B引诱点击链接,用户浏览器携带的cookie就被网站B的某些代码访问了。
7 C/ i# g$ r% z3 V: Z/ v" h这利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。
6 N+ z! `- W2 |2 l$ x1 \4 ?/ NXSS& {+ J3 l$ B9 X# f' _3 @& `- X; w
基本概念和缩写. V& E2 m& X; ]( a1 x
XSS, 跨站脚本攻击, 英文名Cross Site Scripting 缩写XSS。
# K8 W( m1 d" j攻击原理( `. _! S7 Q5 Z& A- W& G/ ?( c
输出脚本code
( n8 y4 i! F& l9 X: B( B0 p跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。9 M8 F( w. E2 J7 D
xss漏洞通常是通过php的输出函数将javascript代码输出到html页面中,通过用户本地浏览器执行的,所以xss漏洞关键就是寻找参数未过滤的输出函数。1 j+ ?/ s; _: h I: K
渲染机制类& j( T7 h) N2 K- ~9 y B
3 K( N4 C6 G& e+ ?) J* ~
什么是DOCTYPE及作用. V8 j5 m% g9 W3 ~7 f E v X |
4 ~* j1 B8 P) ]1 e' k9 m2 h
DTD (document type definition, 文档类型定义)是一系列的语法规则,用来定义XML或HTML的文件类型。2 E' ~% m* v( Q& c. b
作用:浏览器会使用它来判断文档类型, 决定使用何种协议来解析,以及切换浏览器模式。
" m5 L) d* i+ n) g# nDOCTYPE是用来声明文档类型和DTD规范的,9 J6 E* h+ a3 O5 D
作用:一个主要的用途便是文件的合法性验证。如果文件代码不合法, 那么浏览器解析时便会出一些差错。1 t) H$ x; O9 }3 j( |- m) d6 \
HTML5的DOCTYPE:& R; ^( D- ~2 F$ v' v A# g
$ ^8 Z4 c" z+ e) yHTML4有严格模式和传统模式
4 C* q9 w9 D& h7 q% }) Z$ B
$ s& m$ G4 a q1 v% p% O+ W浏览器渲染过程( N1 w2 J# b& W6 Y$ |8 q
+ A/ z" V+ o" _' e+ g* z一些概念
1 M- B- x3 J; M J6 W- q/ n# k& J7 U
名称 概念
# P; p& ?- t; N8 M2 i9 ?DOM Tree 浏览器将HTML解析成树形的数据结构。 \4 ?9 ]' N$ y9 ?+ Q+ M4 o
CSS Rule Tree 浏览器将CSS解析成树形的数据结构。
7 Y) _ U1 h) c0 `% T0 hRender Tree DOM和CSSOM合并后生成Render Tree。1 Y9 a( B5 m: O" P# d: v
layout 有了Render Tree,浏览器已经能知道网页中有哪些节点、各个节点的CSS定义以及他们的从属关系,从而去计算出每个节点在屏幕中的位置。
* V8 u1 M8 G! o9 I8 @. f7 Epainting 按照算出来的规则,通过显卡,把内容画到屏幕上。% r/ M( x0 K8 V j% F$ {5 _
1。当用户输入一个URL,浏览器就会发送一个请求,请求URL对应的资源* L6 n' |$ e- Z% a. ~
2。HTML解析器会将这个文件解析,构建成一棵DOM树
" { t$ m( s1 M% F7 {3 Y. }3 ~/ [3。构建DOM树时,遇到JS和CSS元素,HTML解析器就将控制权转让给JS或者CSS解析器8 t8 ~9 _! c/ L& O- J$ h
4。JS或者CSS解析器解析完这个元素时候,HTML又继续解析下个元素,直到整棵DOM树构建完成3 T: l% W1 K0 [$ F2 V/ l1 l* s' C
5。DOM树构建完之后,浏览器把DOM树中的一些不可视元素去掉,然后与CSSOM合成一棵render树$ T( v. J, ?9 g4 o* K. A) N
6。接着浏览器根据这棵render树,计算出各个节点(元素)在屏幕的位置。这个过程叫做layout,输出的是一棵layout树
' u. b) w4 {4 N* y$ o! E1 z; ~7。最后浏览器根据这棵layout树,将页面渲染到屏幕上去4 {' ]: v, g1 ?
1, q& k4 q3 a, W% A: o3 k( x
2
8 w( m+ P7 t( F/ ]6 i$ D8 o32 c# |) I& Q! Y/ v, l9 {# l1 ?
4' |& R+ D( g! B- t u# ]
5
5 q) m% _. i% d/ [5 L60 t; T" v* T. M% Q7 o: n& E/ T
76 F/ F5 \% P9 k" z# y. B! B2 u* p# ]7 v8 q
重排Reflow
9 p4 a$ Y' ~ V& ~1 @3 ?$ D" x4 e7 P4 U7 e
定义:当浏览器发现某个部分发生了变化影响了布局,需要倒回去重新渲染,内行称这个回退的过程叫 reflow。5 X1 E8 ^: [7 D! y) X
触发Reflow:
8 T3 v: o& b) L4 t) f: H D当你增加、删除、修改dom节点时,会导致Reflow或Repaint# j! e P6 W0 G, \& N( F
当你移动DOM的位置,或是搞个动画的时候4 v* }, `5 \" j
当你修改CSS样式的时候' B' e8 e7 L1 V: o( A. S+ h
当你Resize窗口的时候(移动端没有这个问题),或是滚动的时候
$ F" c& }4 t% x- o' n当你修改网页的默认字体时3 U& i1 D, o: b
重绘Repaint
0 D" h% L! {( m( U, {5 L
" P3 q4 ]2 X: U' D% g4 K定义: 改变某个元素的背景色、文字颜色、边框颜色等等不影响它周围或内部布局的属性时,屏幕的一部分要重画,但是元素的几何尺寸没有变。/ S8 X" r" v( P
* R# v) p% h9 T, m) e
触发Repaint: U; G( p+ v+ i' }% b2 u/ f0 D
' T* W( z- j0 I/ ODOM改动1 h% f: b( C! V
CSS改动
- n9 b D2 L7 ~; [% h9 _3 u( p7 u+ G————————————————9 j/ ^2 ]/ u! T0 N6 i/ y: X/ I
版权声明:本文为CSDN博主「ton365」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
+ K$ I8 S k2 o原文链接:https://blog.csdn.net/u012015672/article/details/105931291
6 ~+ g; E; s+ q) X$ o
* d, _( f& Z3 D* v. T7 H& L
+ g! N; _* }5 S0 } |
zan
|