在不同浏览器下图片下面会出现莫名的下边距,经测算在FF中 下边距大概是多出了3像素左右,而IE6更多,在IE8中展示却是完好的,以往的做法只需要将img定义为块状级就解决了问题; 但其原理是:图片底部的空隙实际上涉及行内元素的布局模型...行内元素的格式化实际上比我们想像的要复杂得多,这也是我至今不愿面对的一个知识点。还好它并不常用。...: 解决办法给img定义vertical-align或者定义为块状,最优的解决办是定义vertical-align,注:定义vertical- align为middle时在IE6中大概还有一像素的顶边距,
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document...
JS与DOM的关系 浏览器有渲染html代码的功能,把html源码(如div,p标签等)在内存里形成一个DOM对象 文档对象模型DOM(Document Object Model)定义访问和处理HTML...BOM对象(把浏览器的地址栏,历史记录,DOM等装在一个对象) 浏览器内部有JS解释器/引擎;在html里的JS代码会被引擎所执行,执行的结果是对DOM对象的操作(即是对节点树内的标签进行操作) JS添加特效...: 无非就是用JS操作DOM对象而已 JS的引入方式 JS代码可在html中任意位置编写,但浏览器解析代码是从上到下的,需注意此时html是否已经解析该标签,能让JS能否获取该DOM对象,所以有时会把代码放到...中数组的数字键值只能从0开始递增 注意 : 数组中括号,JS中length ; 对象用大括号 ?...Js的内置对象的使用 ? ? window对象 window对象和JS没关系;是浏览的一个数组对象,供JS来操作。
是⽤来描述当前这个⻚⾯的结构,CSS ⽤来描述⻚⾯的样⼦,JS 通常是⽤来处理这个⻚⾯和⽤户的交互。...内边距属性(Padding),就是这个⻓⽅形的边框与⻓⽅形⾥⾯的内容之间的距离,有上边距,右边距、下边距、左边距这个四个内边距,分别为padding-top,padding-right,paddingbottom...注意是上、右、下、左,这样⼀个顺时针。...边距属性(Margin)就是这个⻓⽅形的边框与⻓⽅形外⾯的内容之间的距离,同样也有上边距margin-top,右边距margin-right,下边距margin-bottom,左边距margin-left...同样也是上、右、下、左这个顺时针。
Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列。...Node.js 里面的许多对象都会分发事件:一个 net.Server 对象会在每次有新连接时触发一个事件, 一个 fs.readStream 对象会在文件被打开的时候触发一个事件。...下面我们用一个简单的例子说明 EventEmitter 的用法: //event.js 文件 var EventEmitter = require('events').EventEmitter; var...$ node event.js some_event 事件触发 EventEmitter 的每个事件由一个事件名和若干个参数组成,事件名是一个字符串,通常表达一定的语义。...让我们以下面的例子解释这个过程: //event.js 文件 var events = require('events'); var emitter = new events.EventEmitter
10、Node.js异步编程 (1)同步API,异步API 同步API:只有当前API执行完成后,才能继续执行下一个API console.log('before'); console.log('after...// 异步 function getMsg () { setTimeout(function () { return { msg: 'Hello Node.js...function getMsg (callback) { setTimeout(function () { callback({ msg: 'hello node.js...执行结果 function getMsg (callback) { setTimeout(function () { callback ({ msg: 'Hello Node.js
双击下载后的安装包 v0.10.26,如下所示: 步骤 2 : 点击以上的Run(运行),将出现如下界面: 步骤 3 : 勾选接受协议选项,点击 next(下一步) 按钮 : 步骤 4 : Node.js...你可以修改目录,并点击 next(下一步): 步骤 5 : 点击树形图标来选择你需要的安装模式 , 然后点击下一步 next(下一步) 步骤 6 :点击 Install(安装) 开始安装Node.js...检测PATH环境变量是否配置了Node.js,点击开始=》运行=》输入"cmd" => 输入命令"path",输出如下结果: PATH=C:\oraclexe\app\oracle\product\10.2.0...Program Files\nodejs\; C:\Users\rg\AppData\Roaming\npm 我们可以看到环境变量中已经包含了C:\Program Files\nodejs\ 检查Node.js...Node.exe ,将出现如下界面 : 点击 Run(运行)按钮将出现命令行窗口: 版本测试 进入 node.exe 所在的目录,如下所示: 如果你获得以上输出结果,说明你已经成功安装了Node.js
我们都知道 Node.js 是以单线程的模式运行的,但它使用的是事件驱动来处理并发,这样有助于我们在多核 cpu 的系统上创建多个子进程,从而提高性能。.../son.js') 相当于 spawn('node', ['./son.js']) 。与spawn方法不同的是,fork会在父进程与子进程之间,建立一个通信管道,用于进程之间的通信。...实例 让我们创建两个 js 文件 support.js 和 master.js。...support.js 文件代码: console.log("进程 " + process.argv[2] + " 执行。"...); master.js 文件代码: const fs = require('fs'); const child_process = require('child_process'); for(var
three.js使用的人太少了,一个博文就几百个人看,之前发js基础哪怕是d3都会有几千的阅读量,看看以后考虑说一说d3了,哈哈。吐槽完毕回归正题。
main.js /web/com/runoob/nodejs/main.js ---- __dirname __dirname 表示当前执行脚本所在的目录。...实例 创建文件 main.js ,代码如下所示: // 输出全局变量 __dirname 的值 console.log( __dirname ); 执行 main.js 文件,代码如下所示: $ node...; } // 两秒后执行以上函数 setTimeout(printHello, 2000); 执行 main.js 文件,代码如下所示: $ node main.js Hello, World!..._compile (module.js:441:26) at Object..js (module.js:459:10) at Module.load (module.js:348:31) at..._load (module.js:308:12) at Array.0 (module.js:479:10) at EventEmitter.
Node.js,Stream 有四种流类型: Readable - 可读操作。 Writable - 可写操作。 Duplex - 可读可写操作....---- 从流中读取数据 创建 input.txt 文件,内容如下: 官网地址:www.tencent.com 创建 main.js 文件, 代码如下: var fs = require("fs");...console.log(err.stack); }); console.log("程序执行完毕"); 以上代码执行结果如下: 程序执行完毕 菜官网地址:www.tencent.com ---- 写入流 创建 main.js...代码执行结果如下: $ node main.js 程序执行完毕 写入完成。 查看 output.txt 文件的内容: $ cat output.txt
获取url上的参数 function getUrlParam(name) { if (name == null) { return name; } var
为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统。 模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的。...引入模块 在 Node.js 中,引入一个模块非常简单,如下我们创建一个 main.js 文件并引入 hello 模块,代码如下: var hello = require('..../hello') 引入了当前目录下的 hello.js 文件(./ 为当前目录,node.js 默认后缀为 js)。...接下来我们就来创建 hello.js 文件,代码如下: exports.world = function() { console.log('Hello World'); } 在以上示例中,hello.js...通过 exports 对象把 world 作为模块的访问接口,在 main.js 中通过 require('.
DELETE JSON 字符串 删除用户 4 :id GET 空 显示用户详细信息 获取用户列表: 以下代码,我们创建了 RESTful API listUsers,用于读取用户的信息列表, server.js...server.address().port console.log("应用实例,访问地址为 http://%s:%s", host, port) }) 接下来执行以下命令: $ node server.js..."profession" : "clerk", "id": 3 } } 添加用户 以下代码,我们创建了 RESTful API addUser, 用于添加新的用户数据,server.js...server.address().port console.log("应用实例,访问地址为 http://%s:%s", host, port) }) 接下来执行以下命令: $ node server.js
nodejs/bin/npm /usr/local/bin/ ln -s /usr/software/nodejs/bin/node /usr/local/bin/ Ubuntu 源码安装 Node.js...以下部分我们将介绍在 Ubuntu Linux 下使用源码安装 Node.js 。...在 Github 上获取 Node.js 源码: $ sudo git clone https://github.com/nodejs/node.git Cloning into 'node'......v0.10.25 Ubuntu apt-get命令安装 命令格式如下: sudo apt-get install nodejs sudo apt-get install npm CentOS 下源码安装 Node.js...---- Mac OS 上安装 你可以通过以下两种方式在 Mac OS 上来安装 node: 1、在官方下载网站下载 pkg 安装包,直接点击安装即可。
Javascript 返回上一页: 1. history.go(-1), 返回两个页面: history.go(-2); 2. history.back(). 3. window.history.forward...小技巧(JS引用JS): <!...== “undefined”) { document.write(‘<scr’ + ‘ipt type=”text/javascript” src=”/scripts/swfobject-1.5.js
Express官网 、 Mock.js官网 Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。...在命令行中输入 >ipconfig 来快速查看自己电脑上的ipv4地址。 二、页面 代码比较简单,就不用一步一步创建了,js部分也有注释。...用到了vue.js,如果不会的可以先去 Vue.js 的官网教程中去看看它的语法 还用了vue-lazyload.js 实现图片懒加载,直接引用拿过来用就行了,很方便。...-- 引入vue-lazyload.js 图片懒加载 --> $(function ()...}); }, } }); }); 简单的接口以及上拉加载例子就完成了
: 下边框样式 : 通过 border-bottom-style 属性设置 ; 下边框宽度 : 通过 border-bottom-width 属性设置 ; 下边框颜色 : 通过 border-bottom-color...设置 3 个值 : 设置 上、左右、下 内边距 ; /* 设置 上内边距 20px , 左右内边距 10px , 下内边距 30px */ padding: 20px 10px 30px; 设置 4 个值...: 设置 上、右、下、左 内边距 ; /* 设置 上内边距 20px , 右内边距 10px , 下内边距 30px , 左内边距 50px */ padding: 20px 10px 30px...设置 2 个值 : 设置 上下、左右 外边距 ; 设置 3 个值 : 设置 上、左右、下 外边距 ; 设置 4 个值 : 设置 上、右、下、左 外边距 ; /* 设置外边距 - 复合写法 - 上、右、...不会合并 ; 8、嵌套模型盒子 外边距塌陷 嵌套 的 模型盒子 中 , 如果出现下面的情况 : 父元素 没有 内边距 和 边框 父元素 和 子元素 都设置了 上外边距 , 则会出现 父元素 上外边距 与
+上边距+下边距 ?...padding:25px 50px 75px 100px; 上填充为25px 右填充为50px 下填充为75px 左填充为100px padding:25px 50px 75px; 上填充为...margin-top:设置元素的上外边距。 margin-bottom:设置元素的下外边距。 margin-left:设置元素的左外边距 margin-right:设置元素的右外边距。...Margin属性,也可以用一到四个值表示上下左右的内边距: margin:25px 50px 75px 100px; 上边距为25px 右边距为50px 下边距为75px 左边距为100px margin...:25px 50px 75px; 上边距为25px 左右边距为50px 下边距为75px margin:25px 50px; 上下边距为25px 左右边距为50px margin:25px;
像JS作用域一样,默认大家都位于最外层作用域(最外层块格式化上下文),遇到普通块级盒就放进块格式化上下文,遇到特殊的(浮动,绝对定位的等等)就新建一层作用域(建立新的块格式化上下文),它里面的元素都放进这个内层作用域...(in-flow)孩子的上外边距 盒的下外边距与其下一个流内紧挨着的兄弟的上外边距 最后一个流内孩子的下外边距与其height计算值为’auto’的父元素的下外边距 盒的上外边距和下外边距,要求该盒没有建立新的块格式化上下文...,我们再反推外边距合并的定义: 非根元素的相邻垂直外边距会合并,带有间隙的话,合并受限 受限是指带有间隙元素自身上下边距相邻的话,只能与兄弟元素的外边距合并,无法和父元素的下外边距合并 三.合并条件推论...’为0的流内块级盒的下外边距会与它的最后一个流内块级孩子的下外边距合并,条件是该盒没有下内边距和下边框,并且其孩子的下外边距没有与具有间隙的上外边距合并 盒自身的外边距也会合并,条件是’min-height...’属性为0,既没有上下边框,也没有上下内边距,’height’为0或’auto’,且不含行框的话,那么其所有流内孩子的外边距(如果存在的话)都会合并 简化总结,不过4条: 非流内(绝对定位或浮动)不合并
领取专属 10元无门槛券
手把手带您无忧上云