目录
一、meta 标签可以做什么
四、行内元素、块级元素、空元素
元素之间的转换问题:
五、px,em,rem,vw,vh,rpx等单位的特性
六、替换元素和非替换元素
七、first-of-type和first-child有什么区别
八、doctype标签的作用
九、link标签和import标签的区别
十、如何使div可聚焦
tabIndex属性
十一、H5新特性
十二、H5移除的元素有哪些
十三、HTML5 drag API
十四、伪类和伪元素的区别
十五、语义化标签
一、meta 标签可以做什么
- 为浏览器提供 html 的元信息(信息的信息)
 - 规定 html 字符编码 
<meta charset="UTF-8"> - 设置移动端的视区窗口 
<meta id="viewport" name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1; user-scalable=no;"> - 移动端点击300ms 延时,可以对放大禁用 
<meta name="viewport" content="user-scalable=no"> <meta name="viewport" content="initial-scale=1,maximum-scale=1"> - 设置 http 头 
<meta http-equiv="content-Type" content="text/html; charset=gb2312"> - 图片403 
<meta name="referrer" content="no-referrer" /> - dns 预解析 
<meta http-equiv="x-dns-prefetch-control" content="on"> <link rel="dns-prefetch" href="//www.zhix.net"> 
四、行内元素、块级元素、空元素
行内元素 inline
- 不能设置宽高,多个元素共享一行,占满的时候会换行
 - span、input、img、textarea、label、select,a , strong
 
块级元素block
- 可以设置宽高,一个元素占满一整行
 - p、h1/h2/h3/h4/h5/h6、div、ul、li、ol、table、dl, dt, dd
 
空元素
- 没有内容的 HTML 元素。空元素是在开始标签中关闭的, 也就是空元素没有闭合标签,
 - 常见的有:br,hr,img,input,link,meta,其他有:area,base,col,colgroup,command,embed,keygen,param,source,track,wbr
 
inline-block
- 可以设置宽高,多个元素共享一行,占满的时候会换行
 
元素之间的转换问题:
display: inline; 把某元素转换成了行内元素 ===>不独占一行的,并且不能设置宽高
display: inline-block; 把某元素转换成了行内块元素 ===>不独占一行的,可以设置宽高
display: block; 把某元素转换成了块元素 ===>独占一行,并且可以设置宽高
五、px,em,rem,vw,vh,rpx等单位的特性
- px 
  
- 像素
 
 - em 
  
- 针对父元素的font-size,当前元素的字体大小
 
 - rem 
  
- 根元素(html)字体大小
 
 - vw 
  
- 100vw是总宽度
 
 - vh 
  
- 100vh是总高度
 
 - rpx 
  
- 750rpx是总宽度
 
 
六、替换元素和非替换元素
- 替换元素 
  
- 是指若标签的属性可以改变标签的显示方式就是替换元素,比如input的type属性不同会有不同的展现,img的src等
 - img、input、iframe
 
 - 非替换元素 
  
- div、span、p
 
 
七、first-of-type和first-child有什么区别
- first-of-type 
  
- 匹配的是从第一个子元素开始数,匹配到的那个的第一个元素
 
 - first-child 
  
- 必须是第一个子元素
 
 
八、doctype标签的作用
 
- 告诉浏览器以什么样的文档规范解析文档
 - 标准模式和兼容模式 
  
- 标准模式 ->正常,排版和js运作模式都是以最高标准运行
 - 兼容模式->非正常
 
 
九、link标签和import标签的区别
- link属于html,而@import属于css
 - 页面被加载时,link会同时被加载,而@import引用的css会等到页面加载结束后加载。
 - link是html标签,因此没有兼容性,而@import只有IE5以上才能识别。
 - link方式样式的权重高于@import的。
 
十、如何使div可聚焦
<div>在正常情况下是无法获得焦点的,而我们常用的blur()和focus()多是常用于<input>,对于<div>都是没有用的。为元素加上tabIndex属性
tabIndex属性:
1. html中的tabIndex属性可以设置键盘中的TAB键在控件中的移动顺序,即焦点的顺序。把控件的tabIndex属性设成1到32767的一个值,就可以把这个控件加入到TAB键的序列中。2. 当浏览者使用TAB键在网页控件中移动时,将首先移动到具有最小tabIndex属性值的控件上,最后在具有最大tabIndex属性值的控件上结束移动。3. 如果有两个控件的tabIndex属性相同,则以控件在html代码中出现的顺序为准。4. 默认的tabIndex属性为 0,将排列在在所有指定tabIndex的控件之后。5. 而若把tabIndex属性设为一个负值(如tabIndex="-1"),那么这个链接将被排除在TAB键的序列之外。6. 注意:如果使用-1值时,onfocus与onblur事件仍被启动。
十一、H5新特性
- 新增选择器 document.querySelector、document.querySelectorAll
 - 拖拽释放(Drag and drop) API
 - 媒体播放的 video 和 audio
 - 本地存储 localStorage 和 sessionStorage
 - 离线应用 manifest
 - 桌面通知 Notifications
 - 语意化标签 article、footer、header、nav、section
 - 增强表单控件 calendar、date、time、email、url、search
 - 地理位置 Geolocation
 - 多任务 webworker
 - 全双工通信协议 websocket
 - 历史管理 history
 - 跨域资源共享(CORS) Access-Control-Allow-Origin
 - 页面可见性改变事件 visibilitychange
 - 跨窗口通信 PostMessage
 - Form Data 对象
 - 绘画 canvas
 
十二、H5移除的元素有哪些
- 纯表现的元素:basefont、big、center、font、s、strike、tt、u
 - 对可用性产生负面影响的元素:frame、frameset、noframes
 
十三、HTML5 drag API
- dragstart:事件主体是被拖放元素,在开始拖放被拖放元素时触发。
 - darg:事件主体是被拖放元素,在正在拖放被拖放元素时触发。
 - dragenter:事件主体是目标元素,在被拖放元素进入某元素时触发。
 - dragover:事件主体是目标元素,在被拖放在某元素内移动时触发。
 - dragleave:事件主体是目标元素,在被拖放元素移出目标元素是触 发。
 - drop:事件主体是目标元素,在目标元素完全接受被拖放元素时触发。
 - dragend:事件主体是被拖放元素,在整个拖放操作结束时触发。
 
十四、伪类和伪元素的区别
区别:1.在于是否创造了新的元素,2.表示方法(css 规范中用双冒号 :: 表示伪元素,用一个冒号)
伪类:存在DOM文档中,用于已有元素处于某种状态时为其添加对应的样式,这个状态是根据用户行为而动态变化的。
伪元素:用于创建一些不在DOM树中的元素,并为其添加样式。
十五、语义化标签
- 易于用户阅读,样式丢失的时候能让页面呈现清晰的结构。
 - 有利于SEO,搜索引擎根据标签来确定上下文和各个关键字的权重。
 - 方便其他设备解析,如盲人阅读器根据语义渲染网页
 - 有利于开发和维护,语义化更具可读性,代码更好维护,与CSS3关系更和谐。
 - IE8不兼容HTML5 =》通过html5shiv.js处理
 




  



















