由于最近工作需求,紧急学习electron相关的技术知识,关于node.js的相关问题,后续会继续更新。

【electron】简介及作用:

electron的基本组成:Chromium + Node.js + Native API
Chromium:Google 的Chrome浏览器背后的引擎,为electron提供了强大的UI能力,不用考虑兼容性的问题,比如可以不用写很多CSS兼容代码;
Node.js:可以使用npm的包快速开发,并且使electron有底层开发的能力,比如文件的读写等;
Native API:使electron有跨平台和桌面端原生的能力
使用场景:
1、公司没有专门的桌面应用开发者,需要前端做桌面应用,比如现在苦逼的我;
2、一个项目要开发桌面端和web端,比如根据不同的权限,客户使用的端不一样;
3、要做一个效率工具,提高开发效率
具体应用举例:
VSCode(前端常用工具),Atom(github文本编辑器),slack(国外应用,得翻墙用)

【安装electron】

先安装node.js 进入官网下载node.js,LST版本是长期稳定的版本,公司开发使用;最新版本可自己练习时使用 node.js安装官网
npm install electron --save-dev (开发环境安装)
查看是否安装成功:
npx electron -v (node版本5.0以上的版本才有npx)

创建一个hello world的electron

新建H5页面:index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Hello World</title>
</head>
<body>Hello World!
</body>
</html>

创建主进程文件:main.js

const electron = require('electron') // 引入electron
const app = electron.app // 引用app
const BrowserWindow = electron.BrowserWindow // 窗口引用
const mainWindow = null // 声明要打开的主窗口
// app.on监控事件
app.on('ready', ()=> {mainWindow = new BrowserWindow({height: 800,width: 800})mainWindow.loadFile('index.html') // 要加载的html的页面(本例的index.html文件与mian.js文件为同级目录)// win.loadURL('https://github.com')mainWindow.on('closed', ()=>{ mainWindow = null})
})

使用npm init --yes 自动生成package.json文件:

最后使用命令:electron . 运行,就可以看到hello world 的窗口。

【electron的运行流程】

#mermaid-svg-5pHeofNLQey2x8AD .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-5pHeofNLQey2x8AD .label text{fill:#333}#mermaid-svg-5pHeofNLQey2x8AD .node rect,#mermaid-svg-5pHeofNLQey2x8AD .node circle,#mermaid-svg-5pHeofNLQey2x8AD .node ellipse,#mermaid-svg-5pHeofNLQey2x8AD .node polygon,#mermaid-svg-5pHeofNLQey2x8AD .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-5pHeofNLQey2x8AD .node .label{text-align:center;fill:#333}#mermaid-svg-5pHeofNLQey2x8AD .node.clickable{cursor:pointer}#mermaid-svg-5pHeofNLQey2x8AD .arrowheadPath{fill:#333}#mermaid-svg-5pHeofNLQey2x8AD .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-5pHeofNLQey2x8AD .flowchart-link{stroke:#333;fill:none}#mermaid-svg-5pHeofNLQey2x8AD .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-5pHeofNLQey2x8AD .edgeLabel rect{opacity:0.9}#mermaid-svg-5pHeofNLQey2x8AD .edgeLabel span{color:#333}#mermaid-svg-5pHeofNLQey2x8AD .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-5pHeofNLQey2x8AD .cluster text{fill:#333}#mermaid-svg-5pHeofNLQey2x8AD div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-5pHeofNLQey2x8AD .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-5pHeofNLQey2x8AD text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-5pHeofNLQey2x8AD .actor-line{stroke:grey}#mermaid-svg-5pHeofNLQey2x8AD .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-5pHeofNLQey2x8AD .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-5pHeofNLQey2x8AD #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-5pHeofNLQey2x8AD .sequenceNumber{fill:#fff}#mermaid-svg-5pHeofNLQey2x8AD #sequencenumber{fill:#333}#mermaid-svg-5pHeofNLQey2x8AD #crosshead path{fill:#333;stroke:#333}#mermaid-svg-5pHeofNLQey2x8AD .messageText{fill:#333;stroke:#333}#mermaid-svg-5pHeofNLQey2x8AD .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-5pHeofNLQey2x8AD .labelText,#mermaid-svg-5pHeofNLQey2x8AD .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-5pHeofNLQey2x8AD .loopText,#mermaid-svg-5pHeofNLQey2x8AD .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-5pHeofNLQey2x8AD .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-5pHeofNLQey2x8AD .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-5pHeofNLQey2x8AD .noteText,#mermaid-svg-5pHeofNLQey2x8AD .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-5pHeofNLQey2x8AD .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-5pHeofNLQey2x8AD .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-5pHeofNLQey2x8AD .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-5pHeofNLQey2x8AD .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-5pHeofNLQey2x8AD .section{stroke:none;opacity:0.2}#mermaid-svg-5pHeofNLQey2x8AD .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-5pHeofNLQey2x8AD .section2{fill:#fff400}#mermaid-svg-5pHeofNLQey2x8AD .section1,#mermaid-svg-5pHeofNLQey2x8AD .section3{fill:#fff;opacity:0.2}#mermaid-svg-5pHeofNLQey2x8AD .sectionTitle0{fill:#333}#mermaid-svg-5pHeofNLQey2x8AD .sectionTitle1{fill:#333}#mermaid-svg-5pHeofNLQey2x8AD .sectionTitle2{fill:#333}#mermaid-svg-5pHeofNLQey2x8AD .sectionTitle3{fill:#333}#mermaid-svg-5pHeofNLQey2x8AD .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-5pHeofNLQey2x8AD .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-5pHeofNLQey2x8AD .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-5pHeofNLQey2x8AD .grid path{stroke-width:0}#mermaid-svg-5pHeofNLQey2x8AD .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-5pHeofNLQey2x8AD .task{stroke-width:2}#mermaid-svg-5pHeofNLQey2x8AD .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-5pHeofNLQey2x8AD .taskText:not([font-size]){font-size:11px}#mermaid-svg-5pHeofNLQey2x8AD .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-5pHeofNLQey2x8AD .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-5pHeofNLQey2x8AD .task.clickable{cursor:pointer}#mermaid-svg-5pHeofNLQey2x8AD .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-5pHeofNLQey2x8AD .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-5pHeofNLQey2x8AD .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-5pHeofNLQey2x8AD .taskText0,#mermaid-svg-5pHeofNLQey2x8AD .taskText1,#mermaid-svg-5pHeofNLQey2x8AD .taskText2,#mermaid-svg-5pHeofNLQey2x8AD .taskText3{fill:#fff}#mermaid-svg-5pHeofNLQey2x8AD .task0,#mermaid-svg-5pHeofNLQey2x8AD .task1,#mermaid-svg-5pHeofNLQey2x8AD .task2,#mermaid-svg-5pHeofNLQey2x8AD .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-5pHeofNLQey2x8AD .taskTextOutside0,#mermaid-svg-5pHeofNLQey2x8AD .taskTextOutside2{fill:#000}#mermaid-svg-5pHeofNLQey2x8AD .taskTextOutside1,#mermaid-svg-5pHeofNLQey2x8AD .taskTextOutside3{fill:#000}#mermaid-svg-5pHeofNLQey2x8AD .active0,#mermaid-svg-5pHeofNLQey2x8AD .active1,#mermaid-svg-5pHeofNLQey2x8AD .active2,#mermaid-svg-5pHeofNLQey2x8AD .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-5pHeofNLQey2x8AD .activeText0,#mermaid-svg-5pHeofNLQey2x8AD .activeText1,#mermaid-svg-5pHeofNLQey2x8AD .activeText2,#mermaid-svg-5pHeofNLQey2x8AD .activeText3{fill:#000 !important}#mermaid-svg-5pHeofNLQey2x8AD .done0,#mermaid-svg-5pHeofNLQey2x8AD .done1,#mermaid-svg-5pHeofNLQey2x8AD .done2,#mermaid-svg-5pHeofNLQey2x8AD .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-5pHeofNLQey2x8AD .doneText0,#mermaid-svg-5pHeofNLQey2x8AD .doneText1,#mermaid-svg-5pHeofNLQey2x8AD .doneText2,#mermaid-svg-5pHeofNLQey2x8AD .doneText3{fill:#000 !important}#mermaid-svg-5pHeofNLQey2x8AD .crit0,#mermaid-svg-5pHeofNLQey2x8AD .crit1,#mermaid-svg-5pHeofNLQey2x8AD .crit2,#mermaid-svg-5pHeofNLQey2x8AD .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-5pHeofNLQey2x8AD .activeCrit0,#mermaid-svg-5pHeofNLQey2x8AD .activeCrit1,#mermaid-svg-5pHeofNLQey2x8AD .activeCrit2,#mermaid-svg-5pHeofNLQey2x8AD .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-5pHeofNLQey2x8AD .doneCrit0,#mermaid-svg-5pHeofNLQey2x8AD .doneCrit1,#mermaid-svg-5pHeofNLQey2x8AD .doneCrit2,#mermaid-svg-5pHeofNLQey2x8AD .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-5pHeofNLQey2x8AD .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-5pHeofNLQey2x8AD .milestoneText{font-style:italic}#mermaid-svg-5pHeofNLQey2x8AD .doneCritText0,#mermaid-svg-5pHeofNLQey2x8AD .doneCritText1,#mermaid-svg-5pHeofNLQey2x8AD .doneCritText2,#mermaid-svg-5pHeofNLQey2x8AD .doneCritText3{fill:#000 !important}#mermaid-svg-5pHeofNLQey2x8AD .activeCritText0,#mermaid-svg-5pHeofNLQey2x8AD .activeCritText1,#mermaid-svg-5pHeofNLQey2x8AD .activeCritText2,#mermaid-svg-5pHeofNLQey2x8AD .activeCritText3{fill:#000 !important}#mermaid-svg-5pHeofNLQey2x8AD .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-5pHeofNLQey2x8AD g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-5pHeofNLQey2x8AD g.classGroup text .title{font-weight:bolder}#mermaid-svg-5pHeofNLQey2x8AD g.clickable{cursor:pointer}#mermaid-svg-5pHeofNLQey2x8AD g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-5pHeofNLQey2x8AD g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-5pHeofNLQey2x8AD .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-5pHeofNLQey2x8AD .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-5pHeofNLQey2x8AD .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-5pHeofNLQey2x8AD .dashed-line{stroke-dasharray:3}#mermaid-svg-5pHeofNLQey2x8AD #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-5pHeofNLQey2x8AD #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-5pHeofNLQey2x8AD #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-5pHeofNLQey2x8AD #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-5pHeofNLQey2x8AD #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-5pHeofNLQey2x8AD #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-5pHeofNLQey2x8AD #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-5pHeofNLQey2x8AD #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-5pHeofNLQey2x8AD .commit-id,#mermaid-svg-5pHeofNLQey2x8AD .commit-msg,#mermaid-svg-5pHeofNLQey2x8AD .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-5pHeofNLQey2x8AD .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-5pHeofNLQey2x8AD .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-5pHeofNLQey2x8AD g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-5pHeofNLQey2x8AD g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-5pHeofNLQey2x8AD g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-5pHeofNLQey2x8AD g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-5pHeofNLQey2x8AD g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-5pHeofNLQey2x8AD g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-5pHeofNLQey2x8AD .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-5pHeofNLQey2x8AD .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-5pHeofNLQey2x8AD .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-5pHeofNLQey2x8AD .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-5pHeofNLQey2x8AD .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-5pHeofNLQey2x8AD .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-5pHeofNLQey2x8AD .edgeLabel text{fill:#333}#mermaid-svg-5pHeofNLQey2x8AD .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-5pHeofNLQey2x8AD .node circle.state-start{fill:black;stroke:black}#mermaid-svg-5pHeofNLQey2x8AD .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-5pHeofNLQey2x8AD #statediagram-barbEnd{fill:#9370db}#mermaid-svg-5pHeofNLQey2x8AD .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-5pHeofNLQey2x8AD .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-5pHeofNLQey2x8AD .statediagram-state .divider{stroke:#9370db}#mermaid-svg-5pHeofNLQey2x8AD .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-5pHeofNLQey2x8AD .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-5pHeofNLQey2x8AD .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-5pHeofNLQey2x8AD .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-5pHeofNLQey2x8AD .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-5pHeofNLQey2x8AD .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-5pHeofNLQey2x8AD .note-edge{stroke-dasharray:5}#mermaid-svg-5pHeofNLQey2x8AD .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-5pHeofNLQey2x8AD .error-icon{fill:#522}#mermaid-svg-5pHeofNLQey2x8AD .error-text{fill:#522;stroke:#522}#mermaid-svg-5pHeofNLQey2x8AD .edge-thickness-normal{stroke-width:2px}#mermaid-svg-5pHeofNLQey2x8AD .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-5pHeofNLQey2x8AD .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-5pHeofNLQey2x8AD .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-5pHeofNLQey2x8AD .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-5pHeofNLQey2x8AD .marker{fill:#333}#mermaid-svg-5pHeofNLQey2x8AD .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-5pHeofNLQey2x8AD {color: rgba(0, 0, 0, 0.75);font: ;}

Package.json
主进程文件main.js
读取页面布局和演示
IPC执行任务和获取信息

1、读取package中设置的入口文件:这里设置的时是mian.js(一个electron有且只有一个主进程,一个主进程可以有多个渲染进程)

2、main.js主进程中创建渲染进程
3、读取需要渲染的应用页面的布局和样式
4、使用IPC在主进程执行任务并获取信息

【app 控制应用程序的事件生命周期】

详细介绍app控制应用程序的事件生命周期:
先引入app

const electron = require('electron')
const app = electron.app

app.on('ready', () => {})
当 Electron 完成初始化时,发出一次。也可以通过调用 app.isReady() 来检查该事件是否已被触发,以及通过 app.whenReady() 得到一个当Electron已初始化后fulfill 的 Promise。
‘before-quit’:在程序关闭窗口前发信号
‘activate’:当应用被激活时触发
app.on('window-all-closed', () => { app.quit() })
最后一个窗口被关闭时退出应用。此事件默认的行为是控制退出程序,但监听此事件可以控制什么条件下是否退出程序。

【Electron】用前端技术开发桌面应用(一)相关推荐

  1. eclipese web前端开发教学_web前端技术开发视频教程:Javascript 从入门到精通(百度云盘资源)...

    <JavaScript视频教程>这是一个帮助您系统学习JavaScript编程语言的课程,该课由浅入深的介绍JavaScript的语言特性,结合实际例子解析常见误区,启发你的思考,帮助学习 ...

  2. 如何使用前端技术开发一个桌面跨端应用

    本文将会讲述一个完整的跨端桌面应用 代码画板 的构建,会涉及到整个软件开发流程,从开始的设计.编码.到最后产品成型.包装等. 本文不仅仅是一篇技术方面的专业文章,更会有很多产品方面的设计思想和将技术转 ...

  3. android开发入门与实践_Electron从入门到实践,前端开发者开发桌面App的最佳选择...

    在开始之前,我想您一定会有这样的困惑:标题里的Electron 是什么?Electron能做什么?许多伟大的公司使用Electron框架的原因又是什么? 带着这些问题和疑惑,通过本文的介绍,可助您全面 ...

  4. Electron - 用前端的技术开发桌面应用(二)

    之前已经出了Electron系列第一篇,实现了简单的Hello World,感兴趣的小伙伴可以去翻看:https://editor.csdn.net/md/?articleId=118417012今天 ...

  5. 刘霄前端技术开发日志

    2012.02.20_需求描述 华夏银行信用卡商城前端开发 http://creditshop.hxb.com.cn/ 需求描述: 1.所有文件包括,华夏银行信用卡商城首页.频道页.注册流程.购物流程 ...

  6. chorme插件 ,在浏览器上模拟手机,pad 查看网页|前端技术开发必备插件

    网址:http://lab.maltewassermann.com/viewport-resizer/ 使用方法: 1在chrome浏览器上方右击,显示书签栏 2 打开插件网址,将<ignore ...

  7. Web前端技术开发学习笔记(HTML标记语言篇)——第4章 文字与段落标记

    第4章 文字与段落标记 第4章 文字与段落标记 4.1文字标记 4.1.1 文字内容的输入 1.普通文字的输入 2.空格的输入 3.特殊文字的输入 4.注释语句 4.1.2 对文字字体的设置 4.1. ...

  8. Web前端技术开发学习笔记(HTML标记语言篇)——第6章 图片标记

    第6章 图片标记 6.1 网页常见图片格式 6.2 插入图片 6.2.1 设置图片大小 6.2.2 设置图片文本 6.2.3 设置图片与周围对象的间距 6.2.4设置图片的对齐方式 6.2.5设置图片 ...

  9. Web前端技术开发学习笔记(HTML标记语言篇)——第5章 列表标记

    第5章 列表标记 5.1 有序列表 5.1.1 有序列表的前导符设置 5.1.2 有序列表的前导符起始编号设置 5.2 无序列表 5.2.2 项目列表的前导符设置 5.2.3 定义列表 5.3 嵌套列 ...

最新文章

  1. CV 方向,长期看好,短期谨慎?
  2. 从RocketMQ看长轮询(Long Polling)
  3. Mongodb数据库连接
  4. Map-Reduce 思想在 ABAP 编程中的一个实际应用案例
  5. 学生们喜欢在计算机教室上课用英语怎么说,说说学习本课的感想,并谈谈在信息技术课堂上如何体现以学生为主体,教师为主导?...
  6. java boxplot_java – 具有多个类别的Boxplots的JFreeChart缩放
  7. iis php.exe,在IIS75下使用php运行exe程序的总结
  8. 分布式平台下的HS(High-Security) --对称加密
  9. Java基础教程【第七章:包和接口】
  10. Wireshark使用技巧详解
  11. arcgis字段计算器赋值_ArcGIS中62个常用应用技巧汇总【必须收藏】
  12. 利用计算机来对指纹,指纹自动识别系统.doc
  13. 数学期望(离散型和连续型)
  14. 是什么限制了你的成功?
  15. multi_match 查询【muti_match和match区别】
  16. vue使用video和vue-video-player并且可实现视频铺满呦
  17. 深度学习三巨头之Yann LeCun(杨立昆)简介
  18. 丁香园php岗_丁香园面试药学新闻编辑岗位体悟
  19. GTID 模式 - 通过跳过事务解决主从故障
  20. AutoCAD.net-错误消息大全

热门文章

  1. 初探js特效魅力之无缝滚动
  2. Python去除文本中所有中英文标点符号
  3. i.MX6高清双屏广告机
  4. 如何用Nearby Service让你的游戏实现近距离联机
  5. Kubernetes 是如何实现资源共享的
  6. 百度地图 移动版lite api
  7. Lora远程读取200smart VW寄存器数据
  8. shineblink控制全彩RGB LED
  9. 魅族16th操作系统android,魅族16th系列 篇一:同为骁龙845,可是我们不一样,魅族16th Plus体验评测...
  10. python素描画_python如何将图片转换素描画