块格式化上下文是 Web 页面的可视化 CSS 渲染的一部分,是布局过程中生成块级盒子的区域,也是浮动元素与其他元素的交互限定区域。
通俗来讲,BFC 是一个独立的布局环境,可以理解为一个容器,在这个容器中按照一定规则进行物品摆放,并且不会影响其它环境中的物品。
如果一个元素符合触发 BFC 的条件,则 BFC 中的元素布局不受外部影响。
一般来说根元素是一个 BFC 区域,浮动和绝对定位的元素也会形成 BFC,display 属性的值为 inline-block、flex 这些属性时也会创建 BFC。还有就是元素的 overflow 的值不为 visible 时都会创建 BFC。

BFC 布局规则

  1. 在 BFC 下,内部的 Box 会在垂直方向,一个接一个地放置。
  2. Box 垂直方向的距离由 margin 决定。属于同一个 BFC 的两个相邻 Box 的 margin 会发生重叠
  3. 在 BFC 中,每一个盒子的左外边缘(margin-left)会触碰到容器的左边缘(border-left)(对于从右到左的格式来说,则触碰到右边缘),即使存在浮动也是如此。
  4. BFC 的区域不会与 float box 重叠。
  5. 计算 BFC 的高度时,浮动元素也参与计算

触发 BFC

  • 根元素
  • 浮动元素,float 除 none 以外的值
  • 绝对定位元素,position(absolute,fixed)
  • display 为以下其中之一的值 inline-block, table-cell, table-caption, flex,inline-flex
  • overflow 除了 visible 以外的值(hidden,auto,scroll)
阅读全文 »

viewport+rem 实现

同时通过设置对应 viewport 的 rem 基准值,这种方式就可以像以前一样轻松愉快的写 1px 了。

devicePixelRatio = 2 时,输出 viewport:

1
2
3
4
<meta
name="viewport"
content="initial-scale=0.5, maximum-scale=0.5, minimum-scale=0.5, user-scalable=no"
/>

devicePixelRatio = 3 时,输出 viewport:

阅读全文 »

产生的原因

在移动端触发时间会按照 touchstarttouchmovetouchendclick 顺序触发;触发 touchendclick 之间会有 200-400 不等的时间延时(因为移动端需要判断用户是不是想要进行双击)

解决方法

  1. FastClick 是 FT Labs 专门为解决移动端浏览器 300 毫秒点击延迟问题所开发的一个轻量级的库。简而言之,FastClick 在检测到 touchend 事件的时候,会通过 DOM 自定义事件立即触发一个模拟 click 事件的 click 事件(自定义事件),并把浏览器在 300 毫秒之后真正触发的 click 事件阻止掉。
1
2
3
4
5
6
7
window.addEventListener(
"load",
function () {
FastClick.attach(document.body);
},
false
);
阅读全文 »

存储器:是计算机的重要组成部分. 它可分为:

  • 计算机内部的存储器(简称内存)
  • 计算机外部的存储器(简称外存)

内存储器从功能上可以分为:

  • 读写存储器 RAM
  • 只读存储器 ROM

RAM 和 ROM 的区别

阅读全文 »

浏览器相关知识介绍

浏览器是指可以显示网页服务器或者文件系统的 HTML 文件(标准通用标记语言的一个应用)内容,并让用户与这些文件交互的一种软件。

它用来显示在万维网或局域网等内的文字、图像及其他信息。这些文字或图像,可以 是连接其他网址的超链接,用户可迅速及轻易地浏览各种信息。大部分网页为 HTML 格式。

国内网民计算机上常见的网页浏览器有,QQ 浏览器、Internet Explorer、Firefox、Safari,Opera、Google Chrome、百度浏览器、搜狗浏览器、猎豹浏览器、360 浏览器、 UC 浏览器、傲游浏览器、世界之窗浏览器等,浏览器是最经常使用到的客户端程序。

移动端产品有(移动端的浏览器):百度、搜狗、UC、腾讯

阅读全文 »

介绍

服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

在网络环境下,根据服务器提供的服务类型不同,分为文件服务器,数据库服务器, 应用程序服务器,WEB 服务器等。

分类

阅读全文 »

  • 物理层:物理接口规范,传输比特流,网卡是工作在物理层的。

  • 数据链路层:成帧,保证帧的无误传输,MAC 地址,形成 EHTHERNET 帧 数据链路层在不可靠 的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。

  • 网络层:路由选择,流量控制,IP 地址,形成 IP 包

  • 传输层:端口地址,如 HTTP 对应 80 端口。TCP 和 UDP 工作于该层,还有差错校验和流量控制。

  • 会话层:组织两个会话进程之间的通信,并管理数据的交换使用 ETBIOS 和 WINSOCK 协议。QQ 等软件进行通讯因该是工作在会话层的.

  • 表示层:使得不同操作系统之间通信成为可能。

  • 应用层:对应于各个应用软件

计算机网络的分层体系结构图

白盒测试

白盒测试也称为结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测 试。它根据程序的控制结构设计测试用例,主要用于软件或程序验证。白盒测试法检查程序内部逻辑结构,对所有的逻辑路径进行测试,是一种穷举路径的测试方法,但即使每条路径都测试过了,但仍然有可能存在错误。因为:穷举路径测试无法检查出程序本身是否违反了设计规范,即程序是否是一个错误的程序;穷举路径测试不可能检查出程序因为遗 漏路径而出错;穷举路径测试发现不了一些与数据相关的错误。

白盒测试需要遵循的原则有

  1. 保证一个模块中的所有独立路径至少被测试一次;
  2. 所有逻辑值均需要测试真(true)和假(false);两种情况;3.
  3. 检查程序的内部数据结构,保证其结构的有效性;
  4. 在上下边界及可操作范围内运行所有循环。
    白盒测试方法有:静态测试、动态测试、单元测试、代码检查、同行评审、技术评审

黑盒测试

阅读全文 »

  1. 快速排序算法
  2. 堆排序算法
  3. 归并排序
  4. 二分查找算法
  5. BFPRT(线性查找算法)
  6. DFS(深度优先搜索)
  7. BFS(广度优先搜索)
  8. Floyd-Warshall all-pairs 最短路径算法

算法分类

十种常见排序算法可以分为两大类:

比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破 O(nlogn),因此也称为非线性时间比较类排序。
非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。

算法复杂度

算法复杂度

阅读全文 »