本文旨在总结各种前端易忘的各种小知识点,帮助大家查漏补缺,欢迎补充!
——————
关于CSS
——————
1、以 L-V-H-A 的顺序声明 A 标签的伪类::link ->:visited->:hover->:active
2、display:none和visibility:hidden的区别?
A:display:none隐藏元素,没有高度宽度(看不见摸不着);visibility:hidden使元素不可见,有宽度高度(看不见摸得着)
3、CSS中 link 和@import 的区别是?( 百度2015校园招聘前端开发笔试题)
A:(1) link属于HTML标签,而@import是CSS提供的; (2) 页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;(3) import只在IE5以上才能识别,而link是HTML标签,无兼容问题; (4) link方式的样式的权重 高于@import的权重.
4、position的absolute与fixed共同点与不同点
A:共同点:1.改变行内元素的呈现方式,display被置为block;2.让元素脱离普通流,不占据空间;3.默认会覆盖到非定位元素上
不同点:absolute的”根元素“是可以设置的,而fixed的”根元素“固定为浏览器窗口。当你滚动网页,fixed元素与浏览器窗口之间的距离是不变的。
——————
关于js
——————
1、节点操作
2、定义事件处理程序
A:(1)最简单的办法是给HTML的以“on”为前缀的属性绑定一个回调。(2)addEventListener 或attachEvent
3、找出一个字符串中出现次数最多的字符,统计这个次数
//将字符串的字符保存在一个hash table中,key是字符,value是这个字符出现的次数
var str = "abcdefggbbbbc";
var obj = {};
for (var i = 0, l = str.length; i < l; i++) {
var key = str[i];
if (!obj[key]) {
obj[key] = 1;
} else {
obj[key]++;
}
}
/*遍历这个hash table,获取value最大的key和value*/
var max = -1;
var max_key = "";
var key;
for (key in obj) {
if (max < obj[key]) {
max = obj[key];
max_key = key;
}
}
alert("出现次数最多的字符是:"+max_key+"次数是:"+max);
——————
关于html
——————
1、 行内元素有哪些?块级元素有哪些? 空(void)元素有那些? ( 百度2015校园招聘前端开发笔试题)A:块级元素与行内元素大家都比较熟悉,常见的空元素 <br> <hr> <img> <input> <link> <meta> 鲜为人知的是: <area> <base> <col> <command> <embed> <keygen> <param> <source> <track> <wbr>
2、说说你对语义化的理解?
A:用合适的标签做合适的事情!html语义化就是让页面的内容结构化,便于对浏览器、搜索引擎解析;在没有CCS的情况下也以一种文档格式显示,并且是容易阅读的。搜索引擎的爬虫依赖于标记来确定上下文和各个关键字的权重,利于 SEO。使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。
3、Doctype作用? 严格模式与混杂模式如何区分?它们有何意义?
A:(1)<!DOCTYPE> 声明位于文档中的最前面,处于 <html> 标签之前。告知浏览器的解析器, 用什么文档类型规范来解析这个文档。 (2)严格模式的排版和 JS 运作模式是 以该浏览器支持的最高标准运行。(3)在混杂模式中,页面以宽松的向后兼容的方式显示。模拟老式浏览器的行为以防止站点无法工作。(4)DOCTYPE不存在或格式不正确会导致文档以混杂模式呈现。
4、emmet技术
A:是一个文本编辑器的插件,它可以帮助您快速编写HTML和CSS代码,从而加速Web前端开发。