day03面试题总结

一.link与@import区别

1.link属于html标签。@import在css中使用表示导入外部样式表;
2.页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;
3.import只在IE5以上才能识别,而link是HTML标签,无兼容问题;
4.link方式的样式的权重 高于@import的权重;
5.link 支持使用javascript改变样式 (document.styleSheets),后者不可;

二.HTML5和css3新特性

1.选择器

常规选择器

:last-child   选择元素最后一个孩子
:first-child  选择元素第一个孩子
:nth-child(1)  按照第几个孩子给它设置样式
:nth-child(even)  按照偶数
:nth-child(odd)   按照奇数
:disabled  选择每个禁用的dom元素
:checked  选择每个被选中的dom元素
:not(selector)  选择非 selector 元素的每个元素
::selection   选择被用户选取的元素部分

伪类

:last-child 选择元素最后一个孩子
:first-child  选择元素第一个孩子 
:nth-child(1)  按照第几个孩子给它设置样式 
a:link {color: #FF0000}  未访问的链接 
a:visited {color: #00FF00}  已访问的链接 
a:hover {color: #FF00FF}  鼠标移动到链接上
a:active {color: #0000FF}  选定的链接 

伪元素

::before {}  选择器在被选元素的前面插入内容和定义css,使用 content 属性来指定要插入的内容。
::after {}  选择器在被选元素的后面插入内容和定义css,使用 content 属性来指定要插入的内容。 
:first-letter  选择该元素内容的首字母 
:first-line  选择该元素内容的首行
::selection  选择被用户选取的元素部分

2. 背景和边框

背景

1.background-size:规定背景图片的尺寸(cover:填充;100% 100%:拉伸)
2.background-origin:规定背景图片的定位区域 对于 background-origin 属性,有如下属性 背景图片可以放置于content-box、padding-box 或 border-box 区域

边框

1.border-radius:圆角
2.box-shadow / text-shadow:阴影
3.border-image:边框图片

3.文本效果

text-shadow    向文本添加阴影
text-justify    规定当 text-align 设置为 “justify” 时所使用的对齐方法
text-emphasis    向元素的文本应用重点标记以及重点标记的前景色
text-outline    规定文本的轮廓
text-overflow    规定当文本溢出包含元素时发生的事情
text-wrap    规定文本的换行规则
word-break    规定非中日韩文本的换行规则
word-wrap    允许对长的不可分割的单词进行分割并换行到下一行
text-decoration   文本修饰符:overline、line-through、underline 分别是上划线、中划线、下划线

4.2D/3D 转换

1.变形transform

2.动画animation

3.过渡transition

5.H5 新特性

语义化标签:header、footer、section、nav、aside、article
增强型表单:input 的多个 type
新增表单属性:placehoder、required、min 和 max
音频视频:audio、video
canvas 画布
地理定位
拖拽
本地存储:
localStorage 没有时间限制的数据存储;
sessionStorage, session 的数据存储,当用户关闭浏览器窗口后,数据会被删除
新事件:onresize、ondrag、onscroll、onmousewheel、onerror、onplay、onpause
WebSocket:建立持久通信协议
 

三.前端常见浏览器兼容性问题

1.css兼容

1. 不同浏览器的标签默认的margin和padding不同

解决方案:1.CSS{margin:0;padding:0;},但性能不好 。2.一般我们会引入reset.css样式重叠。

2. css3新属性,加浏览器前缀兼容早期浏览器

-moz- /* 火狐浏览器 /
-webkit- /
 Safari, 谷歌浏览器等使用Webkit引擎的浏览器 /
-o- /
 Opera浏览器(早期) /
-ms- /
 IE */

3. 块属性标签float后,又有横行的margin情况下,IE 浏览器margin加倍的问题

解决方案:设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。解决方案是在这个div里面加上display:inline;

2.JS兼容

1.事件绑定

2. event事件对象问题

3. 获取元素的非行间样式值:

4. 阻止事件冒泡传播:

5. 阻止事件默认行为:

6. ajax兼容问题

四.javascript原型与原型链

1. prototype

每个函数都有一个prototype属性,被称为显示原型。

2._ _proto_ _


每个实例对象都会有_ _proto_ _属性,其被称为隐式原型

每一个实例对象的隐式原型_ _proto_ _属性指向自身构造函数的显式原型prototype

3. constructor


每个prototype原型都有一个constructor属性,指向它关联的构造函数。

4. 原型链


获取对象属性时,如果对象本身没有这个属性,那就会去他的原型__proto__上去找,如果还查不到,就去找原型的原型,一直找到最顶层(Object.prototype)为止。Object.prototype对象也有__proto__属性值为null。
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值