###冒泡排序
1.第一遍 两两比较 结果:最大的跑到最后
2.第二遍 两两比较 结果:最后两个准确
代码:
1.第一次把最后一个值确定为最大
1 | for (let i =0 ; i< array.length - 1; i++){ |
2.确定每次都是-1的两两交换的个数
1 | for (let j = array.length - 1 ; j > 0 ; j--){ |
###选择排序
###插入排序
###冒泡排序
1.第一遍 两两比较 结果:最大的跑到最后
2.第二遍 两两比较 结果:最后两个准确
代码:
1.第一次把最后一个值确定为最大
1 | for (let i =0 ; i< array.length - 1; i++){ |
2.确定每次都是-1的两两交换的个数
1 | for (let j = array.length - 1 ; j > 0 ; j--){ |
###选择排序
###插入排序
1.默认情况下都是按照标准流排布
1.static: 默认属性
2.relative: 相对定位,相对于原来的位置.但是原来的位置还是不会改变(类似于opacity:0).不会影响其他元素,没有脱离标准流
left的百分比是相对于包含块
margin左右的百分比也是相对于包含块
transform:translate的百分比是相对于自己元素的
3.absolute: 绝对定位,冒泡寻找根元素,如果不是static则从当前元素的0,0开始.如果都是static则从最外层0,0开始
4.fixed: 固定定位,直接相对于浏览器定位
浏览器的展示大小叫视口
浏览器的可展示大小叫画布
脱标元素:fixed,float,absolute
1.可以随便设置宽高
2.宽高默认由内容决定
3.不再受标准流的约束
4.不再给父元素宽高数据
5.其实脱标是把元素转为block,而不是inline-block.但是因为是脱标不好规定父级元素,所以改为包裹内容.
###立即执行函数
1.js不允许在一个函数的声明后面加()执行
function test(){
}()
2.所以要加东西把函数变成表达式!,()等
3.IIFE执行完后,立即销毁,所以不需要名字
1.div>span (div内嵌套span)
2.div+span (div兄弟span)
3.div>p*5 (div内嵌套5个p标签)
4.div>p+span^h1+strong
1 | <div> |
5.div>(p>span)+h2来代替^
6.div#main>div.box+p.p1+span.title^div#footer>div.box2
1 | <div id="main"> |
6.生成内容用{}
7.#main
1 | <div id="main"></div> |
8.w20+h30+m20-30-40-50+fz20+lh50px+bgc#333+dib(没成功,但可以单个写)
###网页的显示过程
1.通过服务器返回html+js+css>浏览器解析
2.发送至少一个请求
3.网页的组成:
html:网页的结构
css: 网页的视觉体验
javascript:网页的交互
4.浏览器的内核:解析html+css+js
(渲染内核+js引擎)
trident(三叉戟):ie、uc、360
gecko(壁虎):firefox
webkit:safari、移动端浏览器控件(webview控件实际上是webkit内核)
webkit->blink:google chorme
5.为啥有html和htm:因为早期dos只支持3个字符
6.HTML全称:hyper text markup language
7.元素(element):标签(img)加内容
8.css画三角形,参考triangle.html 利用border,border的长度都是和div元素做比较
9.html元素
1.doctype是表示html5的方式
2.html分为head和body 属性为lang
3.head里属性有title,meta,link(引用css和icon)
1.目标伪类: 主要应用于锚点
:target(选中的锚点添加状态p:target是交集选择器)
2.目标状态伪类
:disabled, :enabled, :checked
3.动态伪类: 有顺序要求
a:link(未访问), a:visited(已访问), a:focus(tabindex属性=-1来去掉tab), a:hover(移动放上去), a:active(手指点下去)
4.结构伪类
1 | span::before{ |
1 | span::before{ |