一. H5新增了以下的几大类元素:
- 内容元素: header , nav , footer , section
- 表单控件: calender , date , time , email , url , search
- 本地存储: localStorage 长期存储数据,浏览器关闭后数据不会丢失, SessionStorage 数据在浏览器关闭之后自动删除
- 媒介播放: video , audio
- 绘画使用: canvas
二. 语义化的理解:
- HTML语义化让页面的内容结构化,结构更清晰,便于对浏览器,搜索引擎解析;
- 在没有css样式的情况下也能以一种文档显示,并且是容易阅读的
- 利于SEO,语义化和搜索引擎建立良好的关系,有利于爬虫抓取更多有效信息,爬虫依赖于标签来确定上下文和各个关键字的权重
- 便于团队开发和维护,语义化更具可读性,便于阅读,维护和理解
三. XHTML和HTML有什么区别?
- XHTML文档必须拥有根元素
- XHTML元素必须被正确的嵌套
- XHTML元素必须被关闭
- 标签名必须用小写字母
四. C3新特性有哪些?
- 动画: animation
- 2D,3D转换: transform
- 过度: transition
- 边框圆角:border-radius, 阴影:box-shadow
- 盒子模型: box-sizing
- 文字阴影: text-shadow
- 背景: background-size, background-origin背景图片原点
- 渐变: linear-gradient
- 伸缩布局: flex
- 颜色: rgba()
五. 清除浮动有几种方式?
- 父级元素设置height
- 结尾处加空div标签clear:both
- 父级元素设置overflow: hidden / auto
- 使用伪类:after 必须设置content: '';
六. 媒体查询的原理是什么?
- H5的新特性,使用@media查询,你可以针对不同的媒体类型定义不同的样式
七. 流式布局
- 按照页面元素的宽度按照屏幕分辨率进行适配调整,但整体布局不变,使用%百分比定义宽度,高度大都 是用px来固定,可根据可视区域和父元素的实时尺寸来调整,尽可能适应各种分辨率
八. 响应式布局
- 主要实现不同屏幕分辨率的终端上浏览网页的不同展示方式,通过响应式设计能使网站在手机和平板上有更好的浏览阅读体验
九. 性能优化
-
网络通信方法:(降低请求次数,降低传输量)
- 文件合并
- 精灵图
- 代码压缩
- 图片的压缩
- 启用CDN托管服务
- 启用gzip压缩(网络传输的压缩),二进制压缩,大概可以压缩为原来的1/3
-
代码层: (节省内存)
- 尽量不使用闭包
- 杜绝无效的循环
- 递归过程优化(添加缓存)
- 业务相关的业务逻辑优化
十. 如何居中一个元素
- 水平居中
- 行内元素水平居中
- 父容器使用text-align: center设置
- 块级元素水平居中
- 将左右外边距设置为auto:
margin: 0 auto
- 将父元素设置为相对定位,子元素绝对定位,向右移动子元素,距离为父容器的一半,然后在向左移动自身的一半
-
<div class= "parent">
-
<div class= "child"></div>
-
</div>
-
<style>
-
.parent {
-
position: relative;
-
}
-
.child {
-
position: absolute;
-
left: 50%;
-
transform: translateX(-50%);
-
}
-
</style>
-
复制代码
- 父元素设置为flex布局,使用
justify-content: center
- 父元素设置为flex布局,子元素使用
margin: 0 auto
- 将左右外边距设置为auto:
- 浮动元素水平居中
- 利用flex布局,使用
justify-content: center
实现水平居中
- 利用flex布局,使用
- 绝对定位元素水平居中
- 通过子元素绝对定位,外加
margin: 0 auto
实现
-
<div class= "parent">
-
<div class= "child"></div>
-
</div>
-
<style>
-
.parent {
-
position: relative;
-
}
-
.child {
-
position: absolute;
-
margin: 0 auto; /*水平居中*/
-
left: 0; /*不能省略,且为0*/
-
right: 0; /*不能省略,且为0*/
-
}
-
</style>
-
复制代码
- 通过子元素绝对定位,外加
- 行内元素水平居中
- 垂直居中
- 单行行内元素垂直居中 使用行高=高
line-height
- 多行行内元素垂直居中
- 使用flex布局,调整主轴方向为纵向
flex-direction: column
,在使用justify-content: center
- 使用flex布局,调整主轴方向为纵向
- 块级元素垂直居中
- 使用绝对定位距离顶部50%,并设置
margin-top
向上偏移元素高度的一半(已知高度)
-
<div class= "parent">
-
<div class= "child">固定高度的块级元素垂直居中</div>
-
</div>
-
<style>
-
.parent {
-
position: relative;
-
}
-
.child {
-
position: absolute;
-
top: 50%;
-
height: 100px;
-
margin-top: -50%;
-
}
-
</style>
-
复制代码
- 使用绝对定位+transform(未知高度)
-
<div class= "parent">
-
<div class= "child">未知高度的块级元素垂直居中</div>
-
</div>
-
<style>
-
.parent {
-
position: relative;
-
}
-
.child {
-
position: absolute;
-
top: 50%;
-
transform: translateY(-50%);
-
}
-
</style>
-
复制代码
- 使用flex布局中
align-items: center
属性,使子元素垂直居中
- 使用绝对定位距离顶部50%,并设置
- 单行行内元素垂直居中 使用行高=高
- 水平垂直居中
- 绝对定位与负边距实现(已知宽高,兼容所有浏览器)
-
<div class= "parent">
-
<div class= "child" style="width: 100px; height= 100px;"></div>
-
</div>
-
<style>
-
.parent {
-
position: relative;
-
}
-
.child {
-
position: absolute;
-
top: 50%;
-
left: 50%;
-
margin: -50px 0 0 -50px;
-
}
-
</style>
-
复制代码
- 绝对定位+margin: auto(不需要知道宽高,不兼容低版本IE)
-
<div class= "parent">
-
<div class= "child" style="width: 100px; height= 100px;"></div>
-
</div>
-
<style>
-
.parent {
-
position: relative;
-
height: 200px; /*父容器必须有高度*/
-
}
-
.child {
-
position: absolute;
-
top: 0;
-
left: 0;
-
right: 0;
-
bottom: 0;
-
margin: auto;
-
}
-
</style>
-
复制代码
- 绝对定位+translate
-
.parent {
-
position: relative;
-
height: 200px; /*父容器必须有高度*/
-
}
-
.child {
-
position: absolute;
-
top: 50%;
-
left: 50%;
-
transform: translate(-50%, -50%);
-
}
-
复制代码
-
- flex布局 主轴对齐,侧轴对齐(不兼容低版本IE)
-
.parent {
-
height: 100px;
-
display: flex;
-
justify-content: center;
-
align-items: center;
-
}
-
复制代码
-
- 父元素flex布局,子元素直接
margin: auto
即可(最简单的,也不兼容低版本IE)-
.parent {
-
height: 100px;
-
display: flex;
-
}
-
.child {
-
margin: auto;
-
}
-
复制代码
-