数学建模社区-数学中国

标题: HTML 知识点(未完) [打印本页]

作者: 杨利霞    时间: 2020-5-5 14:53
标题: HTML 知识点(未完)
HTML 知识点(未完)
/ K5 L$ E, T' m. X1 g0 h% f( J6 Z* `
HTML 知识点5 ~" x  W' r0 ^3 Q' ^8 R* h

* ^6 C5 }% [6 r/ [. R: F8 n三列布局- (高度已知,左右宽度固定,中间自适应)8 @# O+ d/ c5 \" y* P2 v& k# s$ o
' `6 h7 d, |7 F/ u/ x
布局方案        优点        缺点
9 Q2 J# A/ s5 R6 h浮动        兼容性好        脱离文档流,需清除浮动5 b; L" J$ U! A
绝对定位        比较快捷。        因为其本身脱离了文档流,导致了其子元素都脱离了文档流,使用性较差。) r) i2 c, H1 t1 R" T
flex布局        目前是比较完美的方案。        只兼容到ie9。
/ D8 c- w+ ]. L# d8 l表格布局        兼容性好,当需要兼容ie8时可以用表格布局。        多栏布局时,某栏高度增加,会使其他栏高度一起增加。8 D. W) b2 p4 J" T" n
网格布局        新技术,代码量少       
, k8 J: e. f) j<!-- 网格布局 -->
% q9 E8 o+ \& i$ H<body>
. o3 u/ M# p5 [" D* r    <section class="layout grid">
1 M# T4 _$ K& g; D3 Q: Q7 `        <style media="screen">
9 ]; K0 N8 Y" V4 y9 h            .layout.grid .left-right-center{% T4 d: Q8 l* q; L' S
                display: grid;2 X" L3 k& W, g, b8 K) D
                width: 100%;& ~- D+ _$ [# P6 {$ ?2 v0 a% r+ k
                grid-template-rows: 100px; // 设置行高* n( o8 V3 b. S3 l& c1 V
                grid-template-columns: 300px auto 300px; // 设置每列的宽度
8 x: b) R& Y8 y9 L% B% P5 b8 P& p% E/ Y0 v
        </style>
" S6 z+ h2 T% S  s: I/ o0 J            <article class="left-right-center">
' O+ p' n- o2 i" a" i, K            <div class="left"></div>
+ ?0 F5 E( T7 T: d- p            <div class="center"></div>
" F5 N" S) M# i            <div class="right"></div>* e' l& u; @& l
        </article>
9 U$ f3 R& D, M$ g, e" f0 W/ G    </section>
8 \" Y/ N) L/ S7 b</body>
, L$ A  b; ^& m" ], e/ Q1 f; ?
( F. y! b3 |, X0 E6 L) Tcss盒模型( K8 H( f! Z' y6 d' F0 V% g
9 V% Z: Y" z2 Q  N
CSS盒模型的认识+ j- m" M2 q4 T, _
6 F9 ~% Y1 B4 S* J
css属性: content padding border margin
" V9 M( P) C8 e2 R. W
& u' e8 I/ P8 ~. y+ \2 P两种模型:IE盒模型(怪异盒模型)和 标准盒模型
0 o, W8 Z' Y1 `7 K% z7 }4 X0 w0 p8 i, R. O/ V
两种模型的区别:计算高度和宽度的不同
& K! e) \' Z# l$ ]% z
4 d' y' G# ^2 k  m! F: U两种模型如何设置:box-sizing: content-box(标准盒模型); box-sizing: border-box(IE盒模型)
7 }; |6 D; p$ T0 Z2 O# N- B3 M) `! l4 _! x- @
JS如何设置获取盒模型对应的宽和高! L7 x: k+ q4 [' n2 v9 s& q: r! t

. ~+ ]4 C- r. X* e9 Q2 L! {获取方式        优缺点8 l0 g/ h$ _( w6 _, [+ c# ~
dom.style.width/height        只能获取内联样式设置的宽和高7 S# f9 ]" r6 S& ]) N
dom.current style.width        获取浏览器渲染后的宽和高,只支持ie
# T) G+ \$ G$ Z2 P  ]$ ]window.getcomputedstyle(dom).width        兼容性更好
$ ~5 \0 o/ Z) Y. a7 k. G/ tdom.getboundingclentreact().width        适用于取元素的绝对位置。能取到 left top width height 四个属性 。// 获取浏览器渲染后的宽和高一般用于获取元素绝对位置0 Q9 z% I& i& \1 c' a" R
实例题 (根据盒模型解释边距重叠)子元素边距成了父元素边距
* g7 @& |1 S8 W: P7 u4 [( d
& \2 T( ], k7 B: n6 `) I块级元素包含了子块级元素,子元素是100像素
! V1 ^) u0 }) I& w! B& k3 y1 @* W子元素与父元素上边距是10像素
) x' p) l! }4 ?  p父元素是110px还是100px (100px, 设置了overflow:hidden就成了110px)
6 q- L9 B( s/ p另一种兄弟块级元素-
& b1 t+ n1 z/ e7 ^! |! q" b( M! \0 q
挨着每个都有上边距或每个都有下边距。-! O1 Z2 Z2 ~( P( W0 e
该重叠的原则就是取最大值
( g6 ~& S# `& K; t空元素的边距-取margin-top和margin-bottom的最大值
, S- ]& H+ X! J0 u. r6 A解决方案:, D! P+ I$ X/ i4 r2 s
2 U, u+ j9 b8 G1 j( k6 ~
父元素创建成一个BFC (无论父子,兄弟情况). H3 I* v. Z' z0 z

4 W! ]1 D- X" S1 I4. BFC (边距重叠解决方案)
: J7 d$ H& H8 l+ {) ~4 v8 ~
' y, ]: E' d* J$ T/ wBFC(边距重叠解决方案)3 J2 I5 y- e5 x( w

  C; L2 v* [+ A8 E$ T1、BFC的基本概念: 块级格式化上下文;# j1 z/ o: i& z3 l2 ?
: |. D( \% _+ d' I0 `) s) K+ C
2、BFC的原理:BFC的渲染规则。$ w- a' c/ X& f" [" {* Q: S. C

+ t+ q- j' R) K( v. Y! ?( \①:在BFC这个元素的垂直方向的边距会发生重叠。(同一个BFC下外边距会发生重叠)
/ ]5 K% \2 |' o. r- \% \" y' i
# T2 K4 [8 Y) T. J) t) A( p) _# u②:BFC的区域不会与浮动元素的box重叠。(清除浮动)
5 z" ]/ f3 J8 O% ~3 p- i3 _' i5 c1 Z7 ~# D+ z
③:BFC在页面上是一个独立的容器,外面的元素不会影响里面的元素,里面的元素也不会影响外面的元素。+ E8 h1 _5 R# A9 [! Y2 s" o; V
( N5 f7 ?! @9 [/ J- _
④:计算BFC高度时,浮动元素也会参与计算
  `. y" U3 @5 k( E- \' R% {' j* I% t) R1 s8 |9 w
3、如何创建BFC3 {/ x8 u7 }' Z1 `- l+ p# I, [
% S# n2 y6 t1 B# _6 u8 W  z
①:float不为none。0 c' E0 w3 c. S5 A- }# i6 B
) T$ ^7 g9 q) K% V/ a
②:position不为static或者relative。, X2 G# j6 g& m

3 e1 W  j) y0 u4 Y7 G) i③:display为inline-block或者是table相关的。
/ ]$ k3 L' X  ^) g; r" c; V* T, W# G' c0 f1 [/ q* T0 R7 u% h, ~
④:overflow不为visible。
0 q$ U6 U0 X" h) c3 M0 t8 J$ f, u7 ~# N2 z3 s
⑤ : body 根元素/ x2 K3 v  `2 W) {* t
5 O9 N. p& O. k/ {5 T8 `7 z( d" `3 d
应用场景:
$ w$ }+ R+ q3 o8 t4 ?1 J左右布局时,float
/ e8 v- b( t- N0 I7 F相邻div使用margin产生边距重叠& D0 d" s! q& Q
dom事件! @: l% I8 n0 Q, M1 `5 R
2 Z4 s1 ~! E1 a; M) Z2 M
基本概念: DOM事件的级别
" W& N9 d+ p* Y6 l- y2 T$ |  Z7 H
DOM0: element.οnclick=function()
  w) K- k9 ~+ n' i+ j9 t7 b4 m# z- B$ }! `' c! U, i
DOM2: element.addEventListener(‘click’, function(){}, false): q! V, k' |: i) \5 u

( C5 B- H- K2 m$ V& v; yDOM3: element.addEventListener(‘keyup’, function(){}, false)
: k4 a7 b( a3 Z1 J; V% h( t
0 o+ P# h/ X" t! {. J% c& C6 P3 oDOM事件模型
2 m. }, K. b4 j4 @* s
+ x7 W& K5 Z( @: u5 Eevent.target 2. event.currentTarget
* S+ P  A/ k' Qevent.target指向引起触发事件的元素,而event.currentTarget则是事件绑定的元素; P! E. ?9 M4 Y5 l, @
DOM事件流
" u9 q) ^3 F: T3 G0 B8 w
8 @2 ]' w/ S& m& g3 p; T事件流 -->《捕获》 2. 目标阶段 3. 冒泡
, }0 z% i5 r5 ], y3 U* z; o描述DOM事件捕获的具体流程& n) A, O9 z; k8 C
) }  w1 e+ t& K9 F: R
window 2. document 3. html 4. body 5. 按html结构 6. 目标元素& t8 V4 B% r5 f3 s% Y1 F  r: u$ g# o
Event对象的常见应用
! l0 j7 e6 S( W  u5 g6 q, u+ C2 h2 Y' U
e.preventDefault() 2. e.stopPropagation() 3. e.stopImmediatePropagation() 4. e.currentTarget() 5. e.target()
: l3 X/ K2 d' h4 _2 o- ?自定义事件+ I  [0 m: S5 T0 {# o4 |9 ^

) _% a) U3 v- q  e7 z) z1 e9 Qvar eve = new Event('custome');
5 {3 E+ L* t+ r8 M+ yev.addEventListener('custome', function() {( j5 d  \: N% r- B. [& x; }
    console.log('custome');: E  P& D  O) Q& p
});' A2 q8 \) w" l/ s2 p
ev.dispatchEvent(eve);
6 U2 q- T; u9 L- `/ }3 G+ B( b% ^' j3 ?19 x! S% N5 D9 ~8 p' q9 ~: U5 G5 p
2
0 _/ D9 [$ C" w# r- t1 P3. P- H2 O4 q$ n! b; C! Z
4
2 H' I8 Q" X5 o0 e/ a7 P( A5- ^* G, R) b- b! @# c, \) v4 H  m* E
http协议
" @, I$ [1 i1 d
! Y- @( C* m2 n3 s# c6 [; B) \HTTP协议的主要特点
6 I0 |- ^" e3 i& I- {( e+ ~: Z8 q) v5 _8 U3 l+ l+ ^- |" k# R$ y2 A
简单快速(资源的URI是固定的,输入URI)、灵活(头部分有不同数据类型,一个http协议不同传输)、
* Y; ]2 j2 U! y$ N
6 K0 I+ S* j$ }4 O4 l3 Q; D无连接(连接一次就断掉)3 o6 ^9 w1 }. j. E) `
无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。8 _9 r$ v) E  s1 r5 ?
无状态(两次连接身份)8 a- {" o& w7 [. L
是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传1 D) ]* m/ X7 W8 `# r
HTTP报文的组成部分7 j1 c/ \0 `9 o# ~& m
4 e  N/ `. i' v/ G
请求报文( {  a) l7 D, s, U2 W

/ J, ~5 d  a. Q: q( \' G1 W请求行 请求头 空行 请求体
# h6 w; t7 F/ z% k. j# l
. e& O$ N) f+ B. ~* Z( H/ o+ k响应报文
! X) H1 d- v& X. `! ~* n' L' G' A; ~4 P- C
状态行 响应头 空行 响应体; _8 o& V* T" q
1 U/ `' q4 s% v' k7 v/ @
HTTP方法$ d. d' G( }' [2 c" F' |- g& N
, C5 a/ X5 T1 l6 x, M4 }& [5 o1 t
方法名        方法作用        注意4 }4 D, O2 Z& ?8 G4 |+ m5 b
GET        获取资源       
" E8 K9 _  S- S- b8 L+ A$ x" UPOST        传输资源       
/ S7 d* j' l! n+ V. yPUT        更新资源        * G+ L+ Z+ b* Y+ ~/ H7 R
DELETE        删除资源        7 {/ d, X. G8 u  a5 V; y1 m
HEAD        获得报文首部        " z6 l5 o% r" \& Y4 m/ n
POST和GET的区别
; _7 a8 X* v( @9 g/ Q, O: x8 a" Y. q" w& f9 F5 l% D4 n# z
get        post% h4 T* K' A2 y. t- W4 ?0 v
在浏览器回退时是无害的        会再次提交请求
5 O' f) R  b  z+ I$ [4 |  @产生的URL地址可以被收藏        post不可以/ T9 }& |0 [8 G; ?2 ?7 a
请求会被浏览器主动缓存        不会,除非手动设置
) t9 D$ @, p# n% F! H( s  c: ?只能进行url编码        支持多种编码方式7 W# E2 Q4 I) x) d5 S' i
请求参数会被完整保留在浏览器历史记录里        参数不会被保留9 U+ N$ u# d8 c( r' N' g
请求在URL中传送的参数是有长度限制的        没有限制
& K# K6 v1 S* }/ K% B! n对参数的数据类型,get只接受ASCII字符        没有限制
  _# S# Y1 R; Y$ k% g8 r5 F更不安全,因为参数直接暴露在URL上,所以不能咏柳传递敏感信息        没暴露3 ?( `4 F, o1 l3 \
参数通过URL传递        放在Request body中! I1 I, ?2 {# c; t3 L
HTTP状态码. R; L4 o  Q+ B" }" Q/ k! ^, s

- _% _9 Y+ a6 F) z状态码        意义
) d7 h7 [5 `( u5 J, L- C1xx        指示信息 - 表示请求已接收,继续处理。
1 ^/ W9 r2 R' p+ d/ |, n4 a/ x2xx        成功 - 表示请求已被成功接收。4 ^$ U2 X. D3 A& a. I& p3 u
3xx        重定向 - 要完成请求必须进行更进一步的操作。0 q7 Z- L' n0 T1 O: U! E. s1 A. `
4xx        客户端错误 - 请求有语法错误或请求无法实现。
" k7 \9 o  j- x' n, d0 x5xx        服务器错误 - 服务器未能实现合法的请求。7 R& @+ Z# i/ R. X7 Q
状态码        意义
! p) C7 N1 ~' a) A( d200 OK        客户端请求成功
6 K) S  F. {) [4 Z% a, }206 Parital Content        客户发送了一个带有Range头的GET请求,服务器完成了它4 S$ @9 E3 l; S1 Y. j
301 Moved Permanently        所请求的页面已经转移至新的url
  q: }6 s9 ^& {( t+ E) O302 Found        所请求的也么已经临时转移至新的url
  V- V" q( @) n- Z, B& J. F5 D304 Not Modified        客户端有缓冲的文档并发出了一个条件性的请求, 服务器告诉客户,原来缓冲的文档还可以继续使用- [" R) w  ~6 d' H6 z: Z5 m; X" E. p4 Q
400 Bad Request        客户端请求有语法错误,不能被服务器所理解8 U1 O. i9 N$ \& a0 f) [% W
401 Unanthorized        请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用0 e9 G0 M- d& g4 ^
403 Forbidden        对被请求页面的访问被禁止
+ R7 j0 Z! D- h2 @/ H404 Not Found        请求资源不存在
8 ?9 t" q3 z! W9 B: n- F500 Internal Server Error        服务器发生不可预期的错误原来缓冲的文档还可以继续使用
0 K. Z3 H4 T! @+ x1 k503 Server Unavaliable        请求未完成, 服务器临时过载或当机,一段时间后可能恢复正常
& ^7 @  {. x0 ]( c什么是持久连接
8 v$ ]( Z/ D5 \  v3 A9 J, [) E
: H4 G2 G  m6 M  h7 Z, r; \  tHTTP协议采用“请求-应答”模式,当使用普通模式,即非Keep-Alive模式时, 每个请求/应答客户和服务器都要新建一个连接,完成之后立即断开连接(HTTP协议为无连接的协议)9 i5 R' D5 W4 @

: T5 I! c: v7 f3 ?3 g当使用Keep-Alive模式(又称持久连接、连接重用)时, Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。$ K! @0 `' G4 Q, x3 z
& u; b/ P& q0 D# Z( a
使用了持久连接
: ~/ I. a: h) Z" k( g3 h' b
  U5 _$ \0 c4 Z7 T+ f请求1->响应1->请求2->响应2->请求3->响应3
5 c$ {. T1 i1 q+ b- N2 J) R' _* {  j: l, G& u$ ]
变成了. `8 s/ |% l; C9 v- K" R& D7 u

: t% T  ?! V+ s# p: c- q3 \: s请求1->请求2->请求3->响应1->响应2->响应3
" {7 e# [2 s6 @1 N9 o) q7 v/ H
+ H$ v7 z  b% B) G( K什么是管线化# t# w5 q  R7 t' u$ r

6 d9 H/ N4 A* D+ g) y/ I- G" Q管线化通过持久连接完成,仅http/1.1 支持此技术
, v! |6 q1 B) v3 i; s+ X  I只有get和head请求可以进行管线化,而post则有所限制8 r( J; r0 h5 I& m' ^( `
初次创建连接不应启动管线机制,因为对方(服务器)不一定支持HTTP/1.1版本的协议
' e/ T, U% G' ]3 @
/ {+ J0 B% h3 \, D安全4 O+ {4 W, A/ x+ {2 R4 I
$ I0 e- C( Q1 S! c+ t
CSRF
8 I- ^- R' J% N7 y2 a( N基本概念和缩写7 c: C; O4 w, Y* g# g2 |
CSRF, 通常称为跨站请求伪造,英文名Cross-site request forgery 缩写CSRF。
9 T) [. {1 ^. K# {: O6 ~攻击原理1 o9 q* F  _+ _
访问网站B时,网站B引诱点击链接,用户浏览器携带的cookie就被网站B的某些代码访问了。
& s/ d4 b4 h% J5 f; S这利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。
8 Y& P- Q$ x, J/ s* HXSS3 d% U* o9 c7 N3 j! m% n
基本概念和缩写$ h' B/ B9 {# @, E6 s% S9 k
XSS, 跨站脚本攻击, 英文名Cross Site Scripting 缩写XSS。& K8 k! e# O& ~( D
攻击原理2 i1 W6 {8 K6 A
输出脚本code
' q$ N* i2 ]& [+ T: K1 P跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。4 r% t" b2 Q! K' \1 D0 o7 L
xss漏洞通常是通过php的输出函数将javascript代码输出到html页面中,通过用户本地浏览器执行的,所以xss漏洞关键就是寻找参数未过滤的输出函数。# \, z2 N  m- d9 v, D
渲染机制类
; j! z6 l) S6 y( n% g& P- W7 B0 M* w7 T1 a- v6 b# [  V
什么是DOCTYPE及作用
6 q% {, z9 ~. Q5 n9 {7 n8 C# b; j8 ]5 E$ S
DTD (document type definition, 文档类型定义)是一系列的语法规则,用来定义XML或HTML的文件类型。& a+ w0 j; J1 o' Z/ O7 H
作用:浏览器会使用它来判断文档类型, 决定使用何种协议来解析,以及切换浏览器模式。6 F4 o* P5 I: M2 q* Q& b  q
DOCTYPE是用来声明文档类型和DTD规范的,
' j" V2 p( N$ q2 n- u作用:一个主要的用途便是文件的合法性验证。如果文件代码不合法, 那么浏览器解析时便会出一些差错。% Z+ J$ H, w/ w! y. K0 e, S6 j- c' m- J
HTML5的DOCTYPE:2 k* Z- o' ^( _6 }7 t, Z
8 d+ L: n7 l" ~
HTML4有严格模式和传统模式1 g9 }& e; F( Q, Z$ K3 f
7 |2 }4 m) b8 V4 P) d
浏览器渲染过程: \0 f! L" B/ ?; @5 q0 E* Z: F% Q

+ F" D; t1 ?0 Y一些概念
# f' t# F! k- ~3 @% P9 _# }: d! ]3 W' V4 x; j# y$ B" D" }# q
名称        概念
% q! `; L7 `. R# LDOM Tree        浏览器将HTML解析成树形的数据结构。0 R6 G2 m  P& `0 E% u4 B0 S% ]1 S
CSS Rule Tree        浏览器将CSS解析成树形的数据结构。! B1 I8 i. _; d8 {) \0 j
Render Tree        DOM和CSSOM合并后生成Render Tree。
% s; |* Y0 r' l! d: dlayout        有了Render Tree,浏览器已经能知道网页中有哪些节点、各个节点的CSS定义以及他们的从属关系,从而去计算出每个节点在屏幕中的位置。
, `" f$ w# o8 mpainting        按照算出来的规则,通过显卡,把内容画到屏幕上。/ c: v0 k% E8 Z* b& D% }
1。当用户输入一个URL,浏览器就会发送一个请求,请求URL对应的资源! S( U8 Q' M" i
2。HTML解析器会将这个文件解析,构建成一棵DOM树
* x9 a( ^6 K9 z1 k' Y' a9 Y8 X3。构建DOM树时,遇到JS和CSS元素,HTML解析器就将控制权转让给JS或者CSS解析器
3 Z( m- a2 R& y4。JS或者CSS解析器解析完这个元素时候,HTML又继续解析下个元素,直到整棵DOM树构建完成2 G8 C2 q6 q$ Y* l
5。DOM树构建完之后,浏览器把DOM树中的一些不可视元素去掉,然后与CSSOM合成一棵render树- j8 G/ w0 ~, w1 ~1 m6 Y. z; g
6。接着浏览器根据这棵render树,计算出各个节点(元素)在屏幕的位置。这个过程叫做layout,输出的是一棵layout树: h" u! ^, u& [% A( E$ j( f
7。最后浏览器根据这棵layout树,将页面渲染到屏幕上去
( J) e: |6 ?3 N; c! G1; i7 K4 C/ y0 ~' i  G3 D# \
2
1 B; I) F$ r4 G* m% j3
8 R. P4 Q9 U! L; h4
$ t  R4 n, s6 ^; |: W2 }5
/ ?. D! `9 l* X! Y# J1 `6
, {4 N( i. B+ T7! n. E% ]; W3 q3 f3 h
重排Reflow- I, N* j& n9 c0 a  o$ o, L
7 }- y  ?+ |& w8 k1 C* a: X3 n
定义:当浏览器发现某个部分发生了变化影响了布局,需要倒回去重新渲染,内行称这个回退的过程叫 reflow。/ }, q  ?6 D  W5 D! g
触发Reflow:
% w( [( v" ?: L# e9 p当你增加、删除、修改dom节点时,会导致Reflow或Repaint( l. E# b9 m& }$ C  C) C4 b
当你移动DOM的位置,或是搞个动画的时候0 a6 N6 B  `: ?7 f! l
当你修改CSS样式的时候$ K+ }+ R8 \, v: }7 o
当你Resize窗口的时候(移动端没有这个问题),或是滚动的时候0 h$ Z, r' U# i" N; c
当你修改网页的默认字体时
8 p2 a6 _+ g2 N0 e) ~% c8 V, G; j& E重绘Repaint8 z- V9 P! K* @* {7 \
; ]& u) }1 H% t
定义: 改变某个元素的背景色、文字颜色、边框颜色等等不影响它周围或内部布局的属性时,屏幕的一部分要重画,但是元素的几何尺寸没有变。
' u* ~' M2 L4 t2 o5 D  L1 _, {
2 v4 Y& j) [9 H( H: s3 ]+ b触发Repaint:# B' X, u& I" B- g7 @' M, D
+ ]# S0 L& J0 o% E0 r
DOM改动
) p6 g6 H! }1 _# Y2 V# V) nCSS改动
/ o! h7 w$ O4 Y2 P% R————————————————
, a% ^8 k% z: o  a9 ~  @! _版权声明:本文为CSDN博主「ton365」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。+ M5 E; m5 B) J$ ~" e0 V- W' C: x
原文链接:https://blog.csdn.net/u012015672/article/details/105931291
0 G8 u. d5 u9 n9 K- O
' ~) }  P  {0 y& _- H
7 d* `' z& d; A" b




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5