一、html5 新特性,语义化?css
新特性:html
语义化:html5
语义化就是用合理、正确的标签来展现内容。语义化的优势有:易于用户阅读,样式丢失的时候能让页面呈现清晰的结构;有利于 SEO,搜索引擎根据标签来肯定上下文个各个关键字的权重;方便其余设备解析,如读屏器;有利于开发和维护,语义化更具备可读性,代码更好维护,与 CSS3 关系更和谐。
二、浏览器的标准模式和怪异模式css3
标准模式:此模式下,浏览器按照 HTML 与 CSS 标准对文档进行解析和渲染;
怪异模式:此模式下,浏览器按照就有的非标准的实现方式对文档进行解析和渲染。git
三、使用 data- 的好处github
四、什么是渐进式渲染web
服务端渲染局部,客户端渲染局部。(参考: https://segmentfault.com/a/11...)canvas
一、盒模型,box-sizing segmentfault
盒模型:Every element in web design is a rectangular box。
CSS3 的 box-sizing 属性:promise
二、CSS3 新特性,伪类,伪元素,锚伪类
CSS3 新增特性主要有(使用比较频繁的):过渡(transition)、动画(animation)、形状转换(transform)、文字超出省略号、弹性布局(flex)、栅格布局(grid)、多列布局(column-count)、媒体查询。
(参考:https://segmentfault.com/a/11...)
三、CSS实现隐藏页面元素的方式
四、CSS 实现水平居中和垂直居中
本身最经常使用的三种:
.box { position: absolute; top: 0; bottom: 0; left: 0; right: 0; }
.box { display: flex: align-items: center; justify-content: center; }
.box { display: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
(别人写的总结:https://segmentfault.com/a/11...
五、说说 position, display
position:元素在页面中的布局遵照一套文档流的方式,默认的定位属性值为 static。它实际上是未被设置定位的。元素若是被定为了,那么它的 top, left, bottom, right 值就会生效,能设置定位的属性是 relative, absolute,fixed。须要注意的是被定为的元素的层次(z-index)会获得提升。
display:每个元素都有默认的 display 属性。
常见的block属性元素有:div, h1-h6, ul, li, ol, dl, dd, dt。
常见的inline属性元素有: span, a, em。
六、解释一下 css3 的 flexbox,以及适用场景
Flex 意为“弹性布局”,用来为盒状模型提供最大的灵活性。采用 Flex 布局的元素,称为 flex 容器,简称“容器”。它的全部自元素自动成为容器成员,称为 flex 项目(flex item),简称“项目”。常规布局是基于块和内联流方向,而 flex 布局是基于 flex-flow 流,能够很方便的用来作居中,能对不一样屏幕大小自适应。在布局上有了比之前更佳灵活的空间。
七、实现两栏布局有哪些方法?
左列定宽,右列自适应
margin + float
<div class="box"> <div class="left"></div> <div class="right-fix"> <div class="right"> <p>right</p><p>right</p> </div> </div> </div>
.left { float: left; width: 100px; position: relative; } .right-fix { float: right; width: 100%; margin-left: -100px; } .right { margin-left: 120px; // 造成 20px 间隔 }
absolute
<div class="box"> <div class="left"></div> <div class="right"></div> </div>
.box{ position: relative; } .left{ position: absolute; left: 0; width: 100px; } .right{ position: absolute; left: 120px; // 造成 20px 间隔 right: 0; }
这个方法主要是应用到 BFC 的一个特性
浮动元素的块状兄弟元素会五十付哦那个元素的位置,尽可能占满一整行,这样该兄弟元素就会被浮动元素覆盖
若浮动元素的块状兄弟元素为BFC,则不会占满一整行,而是根据浮动元素的宽度,占据该行剩下的宽度,避免与浮动元素重叠。
*浮动元素与其块状BFC兄弟元素之间的margin能够生效,这将继续减小兄弟元素的宽度
<div class="box"> <div class="left"></div> <div class="right"></div> </div>
.left{ float: left; width: 100px; margin-right: 20px; //造成 20px 的间隔 } .right{ overflow: hidden; //经过设置overflow: hidden来触发BFC特性 }
table 布局
<div class="box"> <div class="left"></div> <div class="right"></div> </div>
.box{ display: table; width: 100%; table-layout: fixed; } .left, .right{ display: table-cell; } .left{ width: 100px; padding-right: 20px; }
flex
<div class="box"> <div class="left"></div> <div class="right"></div> </div>
.parent{ display: flex; } .left{ margin-right: 20px; } .right{ flex: 1; }
一、JS的基本类型有哪些?引用类型有哪些?null 和 undefined 的区别。
JS基本类型:null,undefined,boolean,number,string,symbol。 引用类型:Object undefined:定义了可是没有赋初始值 null:未定义的对象
二、引用类型和基本类型有什么区别?哪一个是存在堆哪个是存在栈上面的?
基本数据类型
引用类型
三、new 一个对象具体作了什么?
新生成一个对象 -> 连接到原型 -> 绑定 this -> 返回新对象
四、箭头函数和普通函数有什么区别?
五、对闭包的的理解
六、property 和 attribute 的区别
Property 是 DOM 中的属性,是 JavaScript 里的对象;
Attribute 是 HTML 标签上的特性,它的值只可以是字符串。
七、setTimeout和promise的执行顺序
看题:
setTimeout(function() { console.log(1) }, 0); new Promise(function(resolve, reject) { console.log(2) for (var i = 0; i < 10000; i++) { if(i === 10) {console.log(10)} i == 9999 && resolve(); } console.log(3) }).then(function() { console.log(4) }) console.log(5); 以上代码的输出结果为:2 10 3 5 4 1
setTimeout(fn, 0) 表示当即执行,也就是用来改变任务的执行顺序,要求浏览器“尽量快”的进行回调;Promise 新建后当即执行,Promise 构造函数里的代码是同步执行的;then 方法指向的回调将在当前脚本全部同步任务执行完后执行
then 比 setTimeout 执行要早,是由于其实 setTimeout 又一个最小执行时间(minimun delay)为 4ms,并非 0s 执行。
参考文章
未完待续...