QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2228|回复: 0
打印 上一主题 下一主题

HTML 知识点(未完)

[复制链接]
字体大小: 正常 放大
杨利霞        

5273

主题

82

听众

17万

积分

  • TA的每日心情
    开心
    2021-8-11 17:59
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    网络挑战赛参赛者

    网络挑战赛参赛者

    自我介绍
    本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。

    群组2018美赛大象算法课程

    群组2018美赛护航培训课程

    群组2019年 数学中国站长建

    群组2019年数据分析师课程

    群组2018年大象老师国赛优

    跳转到指定楼层
    1#
    发表于 2020-5-5 14:53 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    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
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-7-29 02:43 , Processed in 0.524009 second(s), 50 queries .

    回顶部