前端知识点回顾篇——是我当初刚转行为了面试而将自己学过的前端知识整理成的一份笔记,个人目的性很强,仅供参考。


doctype 有什么用

doctype是一种标准通用标记语言的文档类型声明,目的是告诉标准通用标记语言解析器要使用什么样的文档类型定义(DTD)来解析文档。

浏览器本身分为两种模式,一种是标准模式,一种是怪异模式(混杂模式),浏览器通过doctype来区分这两种模式,doctype在html中的作用就是触发浏览器的标准模式,如果html中省略了doctype,浏览器就会进入到Quirks模式的怪异状态,在这种模式下,有些样式会和标准模式存在差异(页面会以一种比较宽松的向后兼容的方式显示),而html标准和dom标准值规定了标准模式下的行为,没有对怪异模式做出规定,因此不同浏览器在怪异模式下的处理也是不同的,所以一定要在html开头使用doctype。

容器级标签?文本级标签?块级元素?行内元素?

CSS的三种引用方式?

  1. 内联样式(行间样式):直接在标签内部通过使用style属性添加CSS样式 

    <p style="color:red;font-size:12px;">这是一个段落</p>
  2. 内部样式:在标签里面通过使用<style>标签来引进CSS样式

  3. 外部样式:先在外部新建一个外部样式表,然后在标签里面通过标签进行关联

优先级:内联样式>内部样式>外部样式

CSS命名规范

  • 以字母开头

    1. 必须以字母开头命名选择器,这样可保证在所有浏览器下都能兼容;
    2. 不允许单个字母的类选择器出现;
    3. 允许命名带有广告等英文的单词,例如ad,adv,adver,advertising,已防止该模块被浏览器当成垃圾广告过滤掉.
  • 全小写,并使用 - 连字符

    1. 下划线 _ 禁止出现在class命名中,统一使用-连字符
    2. 禁止驼峰式命名
    3. 不要出现-数字连接

标准文档流的微观现象

  1. 空白折叠。比如,如果我们想让img标签之间没有空隙需要紧密连接。
<img src="img/00.jpg"/><img src="img/02.jpg"/>
  1. 高矮不齐,底边对齐。

如果又有图片且图片参差不齐的,又有文字。则会出现高矮不齐,底边对齐的情况。

  1. 自动换行。

浮动的性质

与标准文档流的渲染定位(脱标),能互相贴靠且设置宽高(贴边),字围效果(字围),默认宽为文本宽度(收缩)。

IE6的伴生属性

css属性前加下划线是IE6认识的专有属性,称伴生属性 hack

IE6浏览器兼容问题

  1. IE6不支持小于12px的盒子,看起来都大

    将盒子的字号设置小(小于盒子的高) _font-size : 0px;

  2. IE6不支持用overflow:hidden;来清除浮动

    追加一条 _zoom:1; (原义是放大倍数,追加是为了触发浏览器的hasLayout机制)

  3. IE6双倍margin bug:当出现连续浮动的元素,携带和浮动方向相同的margin时,队首的元素,会双倍marign。

    使浮动的方向和margin的方向相反;

    单独给队首的元素,写一个一半的margin:ul li.no1{_margin-left:20px;}

  4. 3px bug:儿子右浮动用margin-right踹了父亲,结果IE6中多踹出3px。

    不用管,因为根本不允许用儿子踹父亲,出现了这个bug说明你的代码不标准。

层叠顺序

结构性伪类选择器

  • li: first-of-type
  • li: last-of-type
  • li: only-of-type
  • li: nth-of-type(n)
  • li: nth-last-of-type(n)
  • li: first-child
  • li: last-child
  • li: only-child
  • li: nth-child(n)
  • li: nth-last-child(n)
  • p:not(.box)
  • E:: selection

表单伪类

:focus+获得焦点时/ :disabled+选取不能操控的/ :enabled+选取可以操控的/ :checked+选取被选择的

opacity和rgba的区别?

rgba是透明颜色,顶多控制一个元素的背景颜色,父透子不透。 opacity是控制整个元素的透明程度,父透子也透。IE8以下:

filter: alpha(opacity=0~100);

iframe?

<!-- iframe通过name属性与a标签的target联系,使得点击a标签可以让iframe跳转到指定的地址 -->
<iframe src="http://www.tmall.com" frameborder="0" scrolling='auto' name="iframe"></iframe>
<a href="http://www.baidu.com" target='iframe'>baidu</a>

动画animation

div{
/*动画名称 持续时间 延迟时间 */
animation: move 2s;
}
/*自定义动画*/
@keyframes move{
from{width: 100px;background: red;}
to{width: 500px;background: blue;} /*0%{} 100%{}*/
}

css变换

  1. transform: rotate() 变换焦点:transform-origin: x y; (默认居中)
  2. transform: scale() 放大倍数>0
  3. transform: translate(x, y)
  4. transform: skew()

CSS的background属性

语法:background : bg-color bg-image position/bg-size bg-repeat bg-origin bg-clip bg-attachment initial|inherit;

  • position:left center right & top center bottom(只给一个值另外一个设置为center) / x% y%(以父元素的宽高作为参考,左上角为0%0%,右下角为100%100%) / xpos ypos 可理解为定位的left和top值

  • size:xlen ylen(只给一个值另外一个设置为auto) / x% y%(相对于父元素的百分比) / cover(保持宽高比完全覆盖定位区域) / contain(保持宽高比以适应定位区域)

  • origin:padding-box 默认 / content-box / border-box 指定position属性的相对定位位置

  • clip:border-box 默认 / padding-box / content-box 背景从哪里的外面减掉

  • attachment: scroll 默认 / fixed 固定

弹性布局与em

来源:https://www.w3cplus.com/css/px-to-em

Web页面中“body”的文字大小在用户浏览器下默认渲染是“16px”,弹性设计有一个关键地方Web页面中所有元素都使用“em”单位值。

em是一个相对于父元素font-size的一个垂直测量长度单位,1em等于一个任何字体中的字母所需要的垂直空间,可指定到小数点后三位。

  • 设置body的font-size

在中设置一个正文文本所需的字体大小,或者设置为“10px”,相当于(“0.625em或62.5%”),这样为了方便其子元素计算

CSS设置: body{font-size: 0.625em;} 如果是IE浏览器要加上html{font-size: 62.5%;}

  • 如何使用em作为单位

一个元素如果没有设置font-size,则它的em都是指父元素的字体的大小

如果它设置了font-size,则font-size中em是指父元素的字体的大小,其他属性的em是它自己字体的大小

响应式布局

媒体类型

all 所有媒体/screen 彩屏设备/print打印机

关键词

and 并且/not 排除某种指定媒体/only 仅限某种媒体

媒体特性

(width:600px) 宽/(max-width:600px) <=600px/(min-width:480px) >=480px/(orientation:portrait) 竖屏/(orientation:landscape) 横屏

媒体查询

  • 方法1: @media [not|only] mediatype/all [and] (media feature-1) [and] (media feature-2…){CSS-Code;} 内嵌式(写在style里面)

    @media screen and (min-width:400px) and (max-width:500px) {.box {margin: 0 auto;}}
  • 方法2:@import url('index.css') [not|only] mediatype [and] (media feature) [and] (media feature); 内嵌引用外部(写在style里面)

    @import url("css/reset.css") screen;
  • 方法3: 外部式引用

视口 viewport

在移动浏览器中,当页面宽度超出设备,浏览器内部虚拟的一个页面容器,将页面容器缩放到设备这么大,然后展示

<meta name='viewport' content='width=device-width initial-scale=1  minimum-scale=1 maximum-scale=1 user-scalable=no'/>  <--!将视口的宽度设置为移动端屏幕的宽度-->

width/height/initial-scale 初始比例/minimum-scale 允许缩放最小比例/maximum-scale 允许缩放最大比例/user-scalable 是否允许缩放(yes|no 或1|0)

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">  <--!视口兼容-->

视口改变后如何改变rem的大小:

(function(win,doc){
var docEl = doc.documentElement || document.body;//获取HTML标签
//判断是移动端设备还是PC,移动 就采用'orientationchange',横竖屏事件,PC端就采用onresize,窗口改变时间
var resize = 'orientationchange' in win ? 'orientationcha nge':'resize'; function rem(){
var w = docEl.clientWidth/720>1?720:docEl.clientWidth;
docEl.style.fontSize= 100*(w/720)+'px';
}
doc.addEventListener('DOMContentLoaded',rem,false); //监听'DOMContent事件:DOM加载完成执行,如果DOMContent事件,那么 执行rem函数
win.addEventListener(resize,rem,false); //win下监听resize事件,如果resize事件,那么执行rem函数
})(window,document)

em和rem的区别

链接:http://caibaojian.com/rem-vs-em.html

  • rem 单位翻译为像素值是由 html 元素的字体大小决定的。 此字体大小会被浏览器中字体大小的设置影响,除非显式重写一个具体单位。
  • em 单位转为像素值,取决于他们使用的字体大小。 此字体大小受从父元素继承过来的字体大小,除非显式重写与一个具体单位。

前端知识点回顾——HTML,CSS篇的更多相关文章

  1. 前端知识点回顾之重点篇——CSS中flex布局

    flex布局 来源: http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html?utm_source=tuicool 采用 Flex 布局的元素 ...

  2. 前端知识点回顾之重点篇——CSS中的BFC

    BFC布局(Block Formatting Contexts) 来源:https://www.cnblogs.com/lzbk/p/6057097.html 块级格式化上下文是页面中的一块渲染区域, ...

  3. 前端知识点回顾之重点篇——CSS中vertical align属性

    来源:https://www.cnblogs.com/shuiyi/p/5597187.html 行框的概念 红色(line-height)为行框的顶部和底部,绿色(font-size)为字体的高度, ...

  4. 前端知识点回顾之重点篇——ES6的Promise对象

    Promise Promise 是异步编程的一种解决方案,比传统的解决方案--回调函数和事件--更合理和更强大. 所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异 ...

  5. 前端知识点回顾之重点篇——jQuery实现的原理

    jQuery jQuery的实现原理 参考:https://blog.csdn.net/zhouziyu2011/article/details/70256659 外层沙箱和命名空间$ 为了避免声明了 ...

  6. 前端知识点回顾之重点篇——CORS

    CORS(cross origin resource sharing)跨域资源共享 来源:http://www.ruanyifeng.com/blog/2016/04/cors.html 它允许浏览器 ...

  7. 前端知识点回顾之重点篇——AJAX

    Ajax(Asynchronous JavaScript and XML) 这种技术就是无须刷新页面即可从服务器中取得数据,但不一定是XML数据.在原生方法上,Ajax技术的核心是XMLHttpReq ...

  8. 前端知识点回顾之重点篇——ES6的async函数和module

    async函数 ES2017 标准引入了 async 函数,使得异步操作变得更加方便. async 函数是 Generator 函数的语法糖 什么是语法糖? 意指那些没有给计算机语言添加新功能,而只是 ...

  9. 前端知识点回顾之重点篇——ES6的Iterator和Generator

    Iterator 迭代器是一种接口.是一种机制. 为各种不同的数据结构提供统一的访问机制.任何数据结构只要部署 Iterator 接口,就可以完成遍历操作(即依次处理该数据结构的所有成员). Iter ...

  10. 前端知识点回顾之重点篇——JavaScript异步机制

    JavaScript异步机制 来源:https://www.cnblogs.com/zhaodongyu/p/3922961.html JavaScript是单线程异步执行的,单线程意味着代码在任务队 ...

随机推荐

  1. SpringCloud之Feign声明式调用原理及配置

    1 什么是Feign Feign是一种声明式.模板化的HTTP客户端(仅在Application Client中使用).声明式调用是指,就像调用本地方法一样调用远程方法,无需感知操作远程http请求. ...

  2. 3.web开发入门知识

    /*web入门*/ /*互联网上常用的协议以及它的端口*/ http 80 http://localhost/    相当于    http://localhost:80/         http协 ...

  3. jQuery EasyUI 应用 – 创建 CRUD 应用(表格)

    jQuery EasyUI 应用 - 创建 CRUD 应用 本节介绍如何创建CRUD应用. CRUD分别是指在做计算处理时的增加(Create).读取查询(Retrieve).更新(Update)和删 ...

  4. gulp 实现sass自动化 ,监听同步

    实现功能 监听scss文件 sass自动化 准备条件 1 .安装gulp npm init   ---->一直enter,会在当前目录下生成一个package.json文件,记录安装的依赖模块 ...

  5. Maven基本概念——根目录、项目创建、坐标

    转载来自:https://www.cnblogs.com/zjfjava/p/6817793.html 尊重原创! (一)Maven 基本概念——根目录.项目创建.坐标    1. MavenProj ...

  6. eclipse创建Maven Web项目以及无法修改Project Facets

    1.在eclipse中创建maven项目,在菜单栏的:File-->New-->other中,搜索maven则会出现Maven Project; 2.点击next继续; 3.点击next继 ...

  7. STM32L1xx——sx1278开发之LoRa扩频技术基础知识

    扩频技术的发现 1944年,好莱坞26岁女影星HedyLamarr(号称世界上最美丽的女人)发明了扩频通信技术,这种跳频技术可以有效地抗击干扰和实现加密. 后来人们发现,扩频技术可以得到如下收益:从各 ...

  8. Prometheus(1) 概念

    Prometheus Prometheus是一套开源的监控&报警&时间序列数据库的组合.对我来说,它跟 zabbix 最大的区别就是它没有模板,所有的告警规则都得自己写... 它有一套 ...

  9. Tensorflow目录

    0.Tensorflow安装 1.创建会话,启动会话 2.变量 3.Fech_feed 4.线性回归 5.非线性回归 6.MNIST数据集简单分类 7.交叉熵 8.Dropout 9.正则化 10.优 ...

  10. win10快速设置环境变量

    同时按WIN+R键,打开“运行”对话框,输入sysdm.cpl,按回车键打开“系统属性”. 在系统属性对话框中选择“高级”选项卡.