QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2213|回复: 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 知识点(未完)6 n1 s0 q( O1 R% }) ~- P1 E# V
    . f2 g. ?: k4 z- K1 s4 O1 F
    HTML 知识点0 J( w! ?* \  x" x  s, G* G
    9 k. y2 ?3 v. r
    三列布局- (高度已知,左右宽度固定,中间自适应)
    * Y& Y. Y( e7 L1 u7 |0 G1 Z. |% x9 L! j0 N
    布局方案        优点        缺点# o6 O1 F; S/ ?, {$ V" t
    浮动        兼容性好        脱离文档流,需清除浮动; i9 a% R  E  Z
    绝对定位        比较快捷。        因为其本身脱离了文档流,导致了其子元素都脱离了文档流,使用性较差。5 F7 n2 @' |: s2 F$ w
    flex布局        目前是比较完美的方案。        只兼容到ie9。
    + ?% L8 g3 w5 c! Z  b9 j7 ?/ p1 R表格布局        兼容性好,当需要兼容ie8时可以用表格布局。        多栏布局时,某栏高度增加,会使其他栏高度一起增加。
    % q5 W. l9 o7 E2 ]网格布局        新技术,代码量少        9 @5 f7 y+ J( r3 Q1 d8 w
    <!-- 网格布局 -->
    - ^5 S2 N0 B% _; a0 `1 A<body>) w" Q) f  ?3 R+ _2 S' g! p4 ?
        <section class="layout grid"> 7 X0 ]/ X' e; |2 s7 ~1 s
            <style media="screen">4 e8 z& @" P& {' D- \
                .layout.grid .left-right-center{
      g" W1 o0 h5 W1 i; S4 ]7 |                display: grid;
    3 i8 s$ ?* I( r                width: 100%;
    7 S; Y: P! l! L/ O' K0 F8 \                grid-template-rows: 100px; // 设置行高
    , c8 P0 R4 A9 a3 c# N+ r$ Y                grid-template-columns: 300px auto 300px; // 设置每列的宽度
    6 H: q% q' m8 o- _* O2 q4 A
    8 c. |( o( B8 Q5 s5 p9 K        </style>
    : R8 G( c% Z3 H6 m            <article class="left-right-center">
    ' i0 w" t4 ~1 C4 f+ e7 A# E3 q            <div class="left"></div>  p1 B+ B5 [* k" `  x4 r0 X& Y9 ?
                <div class="center"></div>! c9 n* K  O/ x+ K9 e: `
                <div class="right"></div>
    ( j" z. P' G) A* y$ B. ~) V        </article>1 d6 O, j" ^  U. s  N
        </section>
    # S( a6 M. Z! I7 L7 C</body>' i: ^9 t0 f. l, c1 U
    # C; H8 f4 Y! v! n& m- K1 x# |5 E
    css盒模型. P! C1 m- P% o

    ' V* Q, N& I( ^. a! B2 }! P/ o( YCSS盒模型的认识
    " N* J% N4 R4 S. j5 O( @; E# T% j
    css属性: content padding border margin. u1 V) R/ S' S

    ( e' G. W, U9 h0 t& q9 J$ B两种模型:IE盒模型(怪异盒模型)和 标准盒模型3 ]! N& `8 t* b1 M: K

    3 e! G3 G5 l5 O: ?2 \) h  E0 n两种模型的区别:计算高度和宽度的不同! b( v0 I3 K9 F( `1 g; V0 a. p
    2 w6 i' V6 \6 g! E  @$ e5 \! g
    两种模型如何设置:box-sizing: content-box(标准盒模型); box-sizing: border-box(IE盒模型)
    $ d, n# K/ R% {! E+ v4 {# _! u+ l
    % Y% b% J$ q& Z" PJS如何设置获取盒模型对应的宽和高' l, r5 h2 V  P  h

    ' f. p& s$ v# y8 O2 U. g3 a获取方式        优缺点
    ' q8 a; d, a9 N3 Sdom.style.width/height        只能获取内联样式设置的宽和高
    1 _8 Y9 R% `* k+ \$ V0 m& S4 xdom.current style.width        获取浏览器渲染后的宽和高,只支持ie6 ?1 d0 ^' C  z1 \0 _3 C* e
    window.getcomputedstyle(dom).width        兼容性更好
    ' v; y3 S+ ]: K+ b( g  J+ t4 ~dom.getboundingclentreact().width        适用于取元素的绝对位置。能取到 left top width height 四个属性 。// 获取浏览器渲染后的宽和高一般用于获取元素绝对位置
    , ~; r! c; ^% ^  x实例题 (根据盒模型解释边距重叠)子元素边距成了父元素边距  `" \) m1 q& a4 C1 Y; I5 g% I

    6 K3 V8 o0 K+ A* f: Y块级元素包含了子块级元素,子元素是100像素( P  L$ P- S3 S6 a% O/ V7 n  A; U
    子元素与父元素上边距是10像素$ W4 o9 H6 w, F  P! M* W
    父元素是110px还是100px (100px, 设置了overflow:hidden就成了110px)
    % B6 p5 ~. }2 T另一种兄弟块级元素-
    7 a  u* t) y. H
    4 q/ ~2 J" t. m; r6 _8 d# B6 T挨着每个都有上边距或每个都有下边距。-
    8 f" g$ i$ e, I, s4 E" B! W2 _, O该重叠的原则就是取最大值
    ) n/ i- M, W  Y* d4 ]: j. d空元素的边距-取margin-top和margin-bottom的最大值7 f* v8 a0 j/ q& L
    解决方案:0 a' k  H) Z- Y, l/ c  O

    : y% c4 e) D9 Y1 ?8 }  y父元素创建成一个BFC (无论父子,兄弟情况). r0 U4 X& k; {$ f
    % c3 R( c8 ]3 H: Q7 h
    4. BFC (边距重叠解决方案)
    / d! A! ^/ {0 @/ [% [3 @9 U. l. |- j: K+ u
    # u3 b- Q# l3 `0 V$ u' Q7 T, mBFC(边距重叠解决方案)/ M7 u7 E' o/ X+ d

      N5 O8 t7 g7 S( l- Q# i2 q1、BFC的基本概念: 块级格式化上下文;2 u; t0 c  Q  Q- d) n

    - o' x- U; p7 y4 W/ S! N( D5 P9 [2、BFC的原理:BFC的渲染规则。
    8 E6 N' j& h/ H
    * O' P  I( C# E8 S①:在BFC这个元素的垂直方向的边距会发生重叠。(同一个BFC下外边距会发生重叠)
    $ m4 L* [% w9 Y5 Y" P9 p6 e! c* R, A3 o/ t
    ②:BFC的区域不会与浮动元素的box重叠。(清除浮动)9 {. x! I3 U* Q3 L$ h
    9 H+ n  @. Y0 Q! |
    ③:BFC在页面上是一个独立的容器,外面的元素不会影响里面的元素,里面的元素也不会影响外面的元素。
    9 K( f# Z$ J( Q: ~, _4 y8 P: k7 f" x; j3 e7 s# W" E- z
    ④:计算BFC高度时,浮动元素也会参与计算7 g5 A7 U1 Q' Q) c
    9 Z! Q4 \7 Y" @7 C6 r8 z# t# V/ P) I
    3、如何创建BFC
    5 N& s" u# e& i& K: a! J
    ! u- A" ~8 E% ^5 C6 p' b①:float不为none。5 d; j" Z4 B- V1 }+ r- o3 m/ {

    9 _" R, \, H, Q! r②:position不为static或者relative。5 J( O0 ~/ S9 h8 H/ p- `

    , e! {* z' A. M. a" l③:display为inline-block或者是table相关的。( L/ {5 y5 q! E% e$ {
    . s7 R3 L. B8 c* p% `- G7 c
    ④:overflow不为visible。
    " {& H+ e; W0 [8 R, T
    + I. u' K' D- y& `8 M⑤ : body 根元素6 g& u6 G+ o! d3 a+ \

    / P# q/ E5 K9 K7 V应用场景:
    " k; q5 y' V; w5 r, n0 \7 T  R: K左右布局时,float
    2 Y9 Y% t, t  o3 u% U相邻div使用margin产生边距重叠
    $ i: ~. N) N1 Q8 b- P: `dom事件
    & S" I6 n9 K: Y. q. ]( s+ a# m" `2 D' j  L3 Y
    基本概念: DOM事件的级别+ ?" R  |9 Y' I8 b1 w; @

    & n7 X- M  C  H7 Y* S: T) r) Y! @DOM0: element.οnclick=function()
    7 v) ], h# e3 y: U( m: H  h5 R9 F" x: d6 k1 Q& v
    DOM2: element.addEventListener(‘click’, function(){}, false)) o5 J% h, P4 J1 }* a! U
    / b/ n+ R5 w9 D4 [
    DOM3: element.addEventListener(‘keyup’, function(){}, false)
    7 ~* _% w" R; C' q& t8 S6 y
    $ o! U: P- c& ]DOM事件模型8 q& q8 q/ [& s( m  Y, W
    + j2 B4 [# y2 Q* ?$ Y
    event.target 2. event.currentTarget1 m: E8 j' e. q$ d1 o; x+ j. L
    event.target指向引起触发事件的元素,而event.currentTarget则是事件绑定的元素' B3 B. K1 Y8 G' `3 }# k( j+ V
    DOM事件流8 _- E  \* h& m" t; J+ r

    % n! _- v9 ~8 e2 A: [  R+ K事件流 -->《捕获》 2. 目标阶段 3. 冒泡2 K$ R  _. V& {
    描述DOM事件捕获的具体流程
    ; j$ ]4 i& W5 d  \, h' U* a# `' [& F4 L( R
    window 2. document 3. html 4. body 5. 按html结构 6. 目标元素
    ' M2 M0 f- v- H5 \+ w. pEvent对象的常见应用
    * A9 q0 q' K( K/ U7 E# w7 k4 U) l2 Z3 i; d! z$ `- J9 X$ w/ M, x+ o: ^
    e.preventDefault() 2. e.stopPropagation() 3. e.stopImmediatePropagation() 4. e.currentTarget() 5. e.target()! a8 r; N. {3 I/ I7 |0 l
    自定义事件
    ; ^# }; @; e! X; D2 V
    ! ?- i3 C; o% c  N9 s+ Avar eve = new Event('custome');
    ' |$ z( p5 k, k  x5 z4 ^7 q! F, J9 G; dev.addEventListener('custome', function() {
      q! @4 W, m, f    console.log('custome');3 h: t1 j* r! \! {) K( b1 U% B
    });7 f) p. T1 ~3 z' U  c. L  \
    ev.dispatchEvent(eve);  Y: g. X3 U% F; i+ c9 Y
    17 Z' M( g% B: u
    20 r6 n! |' H+ j" ~' f# }
    3
    8 v: E1 p8 L  R$ Z42 c5 b) X. n% o4 A, q7 ~+ y% ^; |
    5. H& O# x  T- ]: a# U
    http协议: `' W' u5 }2 v# G5 F* E/ J
    3 Y8 e0 L; ^) O& ~$ p  k
    HTTP协议的主要特点0 ~8 R$ ]: h0 c5 s% E- H
    / ~6 R+ X4 T. ]1 M4 E( r( R; |+ Z
    简单快速(资源的URI是固定的,输入URI)、灵活(头部分有不同数据类型,一个http协议不同传输)、+ V. |; V4 G$ [. k/ T0 P: s

    5 A: `5 l% R4 o& g0 ?无连接(连接一次就断掉)
    7 A( D- _8 F/ S/ B  }& I  @! x* m无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。
    ; K  p4 Q) ?/ d( K无状态(两次连接身份)
    0 C$ P  Y+ X. t" K是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传
    , c8 o! q% x5 h2 {+ PHTTP报文的组成部分
    ! `* D1 e# ^; s: A! s3 a& Z* \
    7 M& k0 W: S7 z( B! X4 C请求报文
    3 F; T5 @) S4 H: \! A7 @4 e: U. k6 h6 }. w% u# Z- o
    请求行 请求头 空行 请求体8 s. U' Z9 t+ l% L) h4 ~% w. N

    ! D# \9 B: o% W5 x& K9 B响应报文1 ~! b6 ~) e. r" v# D. X
    " |) u/ s' S# [4 a% `3 j2 R, d
    状态行 响应头 空行 响应体
      i5 H- q1 l2 A' x# p9 ^
    6 q% p: T% b$ P, ?, p) pHTTP方法- |' Q  ]% Y/ N0 z' u" B

    * }& m1 j7 L. ?% ~方法名        方法作用        注意8 L, e5 h8 [" k; v
    GET        获取资源        ) @, K- d9 K8 b! [" N; {
    POST        传输资源       
    - }  w* B) ^. L; R# V3 Q3 S- f8 f% OPUT        更新资源        7 T& o7 C# T6 \5 B6 d0 F
    DELETE        删除资源        7 f+ _% f$ D; b# F) B' g
    HEAD        获得报文首部        - _3 d3 I! B" N! C2 e  c
    POST和GET的区别
    / e- ?4 ?" P. K9 Y- T) d& x1 o1 N1 c5 H6 K" A; _# W0 T# s
    get        post
    . a# S( g4 c4 ?% D+ K2 m' E在浏览器回退时是无害的        会再次提交请求# X7 s% F' l! m+ h* F* ?  G
    产生的URL地址可以被收藏        post不可以0 j2 g: Z& A# g. s
    请求会被浏览器主动缓存        不会,除非手动设置+ Q/ N2 N) z+ p
    只能进行url编码        支持多种编码方式+ q; h" J4 B+ K" ^+ c
    请求参数会被完整保留在浏览器历史记录里        参数不会被保留2 g8 Y4 I: G6 N  a/ }2 q2 g% i
    请求在URL中传送的参数是有长度限制的        没有限制& k7 `3 k' y  S" I0 {
    对参数的数据类型,get只接受ASCII字符        没有限制
    . b0 Y3 }1 d, j- D2 h* c: B; W/ K更不安全,因为参数直接暴露在URL上,所以不能咏柳传递敏感信息        没暴露
    ' E7 P+ J! `* c8 Q+ O参数通过URL传递        放在Request body中
      Q( ]. p/ @* W0 N' _( @HTTP状态码
    . G8 C, \) `. T2 |+ L9 f1 Z  M
    + e2 X) a, j; O状态码        意义
      ^! g0 c) k/ F; L- L1xx        指示信息 - 表示请求已接收,继续处理。
    4 p6 m  D- `7 b1 {3 J2xx        成功 - 表示请求已被成功接收。
    0 ~8 \2 t0 j( {' w/ _+ [! D3xx        重定向 - 要完成请求必须进行更进一步的操作。
      C6 S! ?) O5 }/ @$ C0 ]4xx        客户端错误 - 请求有语法错误或请求无法实现。
    / Q; M, Y9 a0 R' v& `3 f5xx        服务器错误 - 服务器未能实现合法的请求。
    $ y0 c( W0 ~* j' [( I' T状态码        意义8 R# g, N1 H: ~2 d
    200 OK        客户端请求成功0 W" g# G) u6 W* @) n
    206 Parital Content        客户发送了一个带有Range头的GET请求,服务器完成了它. V4 N% R+ H% n- F& B! A
    301 Moved Permanently        所请求的页面已经转移至新的url
    4 P1 P1 H+ Y6 H302 Found        所请求的也么已经临时转移至新的url# M" A/ M3 m# V/ C0 n! d
    304 Not Modified        客户端有缓冲的文档并发出了一个条件性的请求, 服务器告诉客户,原来缓冲的文档还可以继续使用
    - Y( w) @, u# u# y( I9 Y2 A400 Bad Request        客户端请求有语法错误,不能被服务器所理解
    ; m' X4 S( W! j7 G! W" o2 r/ a401 Unanthorized        请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
    0 s1 J/ u- @3 v& w3 m  k: _" \403 Forbidden        对被请求页面的访问被禁止: g- X5 l" Y* m5 f, h( Y6 n4 g
    404 Not Found        请求资源不存在) y  i4 _& T# ?; D( k
    500 Internal Server Error        服务器发生不可预期的错误原来缓冲的文档还可以继续使用2 H; x1 H# ?/ X, u2 G# r( U  g
    503 Server Unavaliable        请求未完成, 服务器临时过载或当机,一段时间后可能恢复正常
    : I/ n+ V3 `4 ^什么是持久连接
    1 `0 a4 p! }* G1 W5 d* V+ S! l) c$ ?6 Y. o5 e! W* _
    HTTP协议采用“请求-应答”模式,当使用普通模式,即非Keep-Alive模式时, 每个请求/应答客户和服务器都要新建一个连接,完成之后立即断开连接(HTTP协议为无连接的协议)) I- e# W6 P0 E1 B: ]2 p
    ( d7 W: |1 W3 [0 t! ^
    当使用Keep-Alive模式(又称持久连接、连接重用)时, Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。( x: i$ V- i& s$ ~) W

    3 M$ ]7 ^% j3 K/ W7 \, A使用了持久连接7 a! P$ K* t- W$ f  D5 R5 O% l9 y" N
    3 V. t6 e0 c5 m0 N$ C+ e
    请求1->响应1->请求2->响应2->请求3->响应3
    # Z2 O+ y) ]: Z" N' ~" U8 b6 }6 e7 D% b& I# E
    变成了- ^. R# V! }/ p: x& H3 L, I
    ) f, c) z9 S% |3 f+ _6 d1 M& \; k0 S
    请求1->请求2->请求3->响应1->响应2->响应32 B7 V9 {; O: h3 F7 K# U8 H

    8 s4 g# m" p9 ]' r: Y8 @什么是管线化
    5 v* W' X0 t7 s2 F( ?* k: ~8 U0 d: G
    4 q- J" V* L; K6 P6 |管线化通过持久连接完成,仅http/1.1 支持此技术
    0 i3 f/ |- s$ e' ?1 b3 f+ E# R只有get和head请求可以进行管线化,而post则有所限制. @: m  f! ]( Y! ^, [0 ]
    初次创建连接不应启动管线机制,因为对方(服务器)不一定支持HTTP/1.1版本的协议$ Y2 p- U  T  a

    . o  Q! v$ |$ G4 x5 p, ~5 |5 |# R; p安全
    ! Y* c/ x+ q: }, f, S# X5 I( q
    # x, @9 q$ B2 SCSRF
    6 Q: z. C2 {8 b- m2 L% D  \% F基本概念和缩写9 L) z0 O, i, A5 L0 I' S" f
    CSRF, 通常称为跨站请求伪造,英文名Cross-site request forgery 缩写CSRF。- U+ ~; q2 [! I$ J4 M/ d
    攻击原理& T5 N/ [$ l" H; i/ i' `& ^
    访问网站B时,网站B引诱点击链接,用户浏览器携带的cookie就被网站B的某些代码访问了。8 Q: ?! }9 u# |- r& X8 E# R
    这利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。  K5 T" z1 M) l: y# L' s* w
    XSS
    5 Z. }1 ^1 K. Q1 p3 p* {9 X. h基本概念和缩写  [  p* _; ~, H4 H4 g
    XSS, 跨站脚本攻击, 英文名Cross Site Scripting 缩写XSS。
    - a/ ]" Z9 q: v" ?1 y' }攻击原理
    * k% H; C- s7 R& R- K输出脚本code
    " A; R( U) x1 s3 l1 J$ W9 i2 k2 J跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
    . p1 d1 Q  |3 \/ o7 e1 v3 Nxss漏洞通常是通过php的输出函数将javascript代码输出到html页面中,通过用户本地浏览器执行的,所以xss漏洞关键就是寻找参数未过滤的输出函数。
    : V- W  m$ V/ N5 A1 o: X渲染机制类
    " a# s1 x) y' ~& O: _$ [4 T! @% g2 ~4 t% E5 f* m- n- n* G3 _
    什么是DOCTYPE及作用
    3 Y: E: j8 g: Z4 {; R7 X1 N& U8 P5 Y# z
    DTD (document type definition, 文档类型定义)是一系列的语法规则,用来定义XML或HTML的文件类型。  T5 Y0 h3 a# g$ ]. p. g$ t
    作用:浏览器会使用它来判断文档类型, 决定使用何种协议来解析,以及切换浏览器模式。
    ) Q7 W+ D, D0 U9 N: ^! K" e  oDOCTYPE是用来声明文档类型和DTD规范的,
    9 w6 x! A% |9 @. g( Z作用:一个主要的用途便是文件的合法性验证。如果文件代码不合法, 那么浏览器解析时便会出一些差错。
    8 E$ S" H, U3 U* HHTML5的DOCTYPE:
    1 K( u$ x, |' [/ l. K8 O/ j  Q& ?' v9 O6 h2 t
    HTML4有严格模式和传统模式
    / k& W9 |9 `" g; ?3 H  C' @5 I( V# _
    浏览器渲染过程8 W0 A; ^/ P+ [3 T, v0 |2 w% g, ^7 |5 a6 R
    5 n* l% f* z7 n3 S
    一些概念1 P5 x0 x$ l: R0 h' ~4 u  T
    6 n  b) r0 T0 D, {2 X1 f, J7 g
    名称        概念  @, Q3 Q+ B! F: l/ X# x
    DOM Tree        浏览器将HTML解析成树形的数据结构。6 s/ G4 P9 L  ^/ \% t
    CSS Rule Tree        浏览器将CSS解析成树形的数据结构。! _" Z3 o$ J# i8 b* H- J5 K% G
    Render Tree        DOM和CSSOM合并后生成Render Tree。' i. g  g1 x  ^+ G' I6 w8 y2 ]' f
    layout        有了Render Tree,浏览器已经能知道网页中有哪些节点、各个节点的CSS定义以及他们的从属关系,从而去计算出每个节点在屏幕中的位置。1 n3 n- G1 P8 k
    painting        按照算出来的规则,通过显卡,把内容画到屏幕上。4 ]+ g, ~8 |5 Z# y; P
    1。当用户输入一个URL,浏览器就会发送一个请求,请求URL对应的资源  k! b- g7 C3 }/ i& W
    2。HTML解析器会将这个文件解析,构建成一棵DOM树
    6 \3 Y+ t. {% |, o! i; O3。构建DOM树时,遇到JS和CSS元素,HTML解析器就将控制权转让给JS或者CSS解析器
    : a  ]2 E* x9 ?. ]% ]6 N% W: w% \9 w4。JS或者CSS解析器解析完这个元素时候,HTML又继续解析下个元素,直到整棵DOM树构建完成
    * e/ {; ?8 ]4 o5。DOM树构建完之后,浏览器把DOM树中的一些不可视元素去掉,然后与CSSOM合成一棵render树' k0 f5 w) @4 Y* h
    6。接着浏览器根据这棵render树,计算出各个节点(元素)在屏幕的位置。这个过程叫做layout,输出的是一棵layout树% A6 j) _6 D1 \2 K2 G& Z
    7。最后浏览器根据这棵layout树,将页面渲染到屏幕上去0 h5 _( u! V* B
    17 f, V; ]: j! C( g
    2- d' l- A* p( \# l* X- O0 W% p
    3
    " o5 s: d8 O( q! j# |, q4 S( @+ w4
    + @7 a/ K- o/ H+ L* P/ R56 U! l7 u( A$ ^; u
    64 ]$ h0 m1 e7 p0 m
    7
    , @  K6 E. H# C( d重排Reflow+ z9 @6 y$ \, \; M. \( A

    $ P5 L+ E! U3 T9 V* a定义:当浏览器发现某个部分发生了变化影响了布局,需要倒回去重新渲染,内行称这个回退的过程叫 reflow。( U- q; A0 P% ?- J% k: J+ v+ |
    触发Reflow:
    8 l% x) S, f" b9 _7 N# w/ K当你增加、删除、修改dom节点时,会导致Reflow或Repaint
    , B2 h" u; _" f% C  f( ]9 Q8 r+ I! h当你移动DOM的位置,或是搞个动画的时候
    6 D: _9 R6 G2 s当你修改CSS样式的时候
    - F6 T; i2 M. o当你Resize窗口的时候(移动端没有这个问题),或是滚动的时候# X2 s5 H( @# ~# X& a
    当你修改网页的默认字体时
    ( N: {3 Y6 T5 `. h, m重绘Repaint: }" _9 H- Y( N( N

    % `& J: p2 g4 C# d定义: 改变某个元素的背景色、文字颜色、边框颜色等等不影响它周围或内部布局的属性时,屏幕的一部分要重画,但是元素的几何尺寸没有变。. q( S2 z. H6 ]& E; f

    + I0 |, ~- \7 B& a9 X  o触发Repaint:" _' C, o. }' R2 `. x5 g7 {
    ; @5 f7 U, i) V
    DOM改动( F4 o8 l2 m6 Y) o' k
    CSS改动0 L1 s8 i: c9 E
    ————————————————% n* V* Z+ V% |! j8 ]. ?& o$ h
    版权声明:本文为CSDN博主「ton365」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。* ~- s4 i4 l) h: J0 i  s/ H" o
    原文链接:https://blog.csdn.net/u012015672/article/details/105931291
    ! A/ k0 J1 f# m! B' O( W3 E, x7 t* Z4 P2 b! A
    # x! f  F( e' R# b5 E
    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-6-14 15:14 , Processed in 0.445813 second(s), 51 queries .

    回顶部