Solid

博客园美化大全

纵饮孤独 提交于 2020-08-17 04:10:53
1.1、自动生成目录 效果如下: (1)页脚js代码 首先得有js权限 <script type="text/javascript"> /* 功能:生成博客目录的JS工具 测试:IE8,火狐,google测试通过 zhang_derek 2018-01-03 */ var BlogDirectory = { /* 获取元素位置,距浏览器左边界的距离(left)和距浏览器上边界的距离(top) */ getElementPosition: function (ele) { var topPosition = 0 ; var leftPosition = 0 ; while (ele){ topPosition += ele.offsetTop; leftPosition += ele.offsetLeft; ele = ele.offsetParent; } return {top:topPosition, left:leftPosition}; }, /* 获取滚动条当前位置 */ getScrollBarPosition: function () { var scrollBarPosition = document.body.scrollTop || document.documentElement.scrollTop; return scrollBarPosition; },

博客园自用主题美化

我们两清 提交于 2020-08-17 03:01:26
事件背景 之前做过几个主题,但是都有些看腻了,然后就想着啥时候重构一下,于是就有了现在的新样式: https://github.com/KU4NG/CNBLOG-Theme-Light 当然,如果你对之前的感兴趣,也可以查看之前的分享: https://github.com/KU4NG/CNBlog-Theme 里面包含几个主题,但是我是有些懒得维护了,太忙了,感兴趣的自己去改改 CSS 就行了! 新主题配置方法 1. 基础配置: 前往博客园设置页面,就行配置,需要注意的是: a. 博客标题就是最终你博客的 logo,所以选你喜欢的。 b. 我博客标题中的🌼来自 windows 10 系统输入法旁边的表情。 c. 基础主题选: SimpleMemory ,这一步很重要,因为我得样式都是根据该主题的 HTML 结构写的。 2. 配置样式: 将本文中提供的 CSS 代码或者 github 上面 css 目录下 style.css 文件中的内容粘贴到此处: * { margin : 0 ; padding : 0 ; font-weight : normal ; letter-spacing : 1.5px ; font-family : PingFangSC-Regular,HelveticaNeue-Light,'Helvetica Neue Light','Microsoft

博客园自用主题美化

牧云@^-^@ 提交于 2020-08-16 16:52:25
事件背景 之前做过几个主题,但是都有些看腻了,然后就想着啥时候重构一下,于是就有了现在的新样式: https://github.com/KU4NG/CNBLOG-Theme-Light 当然,如果你对之前的感兴趣,也可以查看之前的分享: https://github.com/KU4NG/CNBlog-Theme 里面包含几个主题,但是我是有些懒得维护了,太忙了,感兴趣的自己去改改 CSS 就行了! 新主题配置方法 1. 基础配置: 前往博客园设置页面,就行配置,需要注意的是: a. 博客标题就是最终你博客的 logo,所以选你喜欢的。 b. 我博客标题中的🌼来自 windows 10 系统输入法旁边的表情。 c. 基础主题选: SimpleMemory ,这一步很重要,因为我得样式都是根据该主题的 HTML 结构写的。 2. 配置样式: 将本文中提供的 CSS 代码或者 github 上面 css 目录下 style.css 文件中的内容粘贴到此处: * { margin : 0 ; padding : 0 ; font-weight : normal ; letter-spacing : 1.5px ; font-family : PingFangSC-Regular,HelveticaNeue-Light,'Helvetica Neue Light','Microsoft

go语言使用go-sciter创建桌面应用(九) 通过view.window创建新窗口后,如何加载后端数据

大憨熊 提交于 2020-08-16 16:51:21
前端通过view.window创建新窗口后,如何在新窗口中加载后端数据,主要有两种方法: 1、通过在go里面使用DefineFunction定义方法,供前端使用,来获取数据。 2、前端使用view.request请求接口,来获取后端数据。 main.go的代码如下: package main import ( json2 "encoding/json" "github.com/sciter-sdk/go-sciter" "github.com/sciter-sdk/go-sciter/window" "github.com/tidwall/gjson" "log" "path/filepath" ) type Person struct { Name string `json:"name"` Age uint8 `json:"age"` } //定义函数 func setWinHandler(w *window.Window) { //定义函数,在tis脚本中需要通过view对象调用 w.DefineFunction("getData", func(args ...*sciter.Value) *sciter.Value { json := args[0].String() //获取前端传来的下标 index := gjson.Get(json, "index") //数据

博客园美化大全

爱⌒轻易说出口 提交于 2020-08-16 16:45:40
1.1、自动生成目录 效果如下: (1)页脚js代码 首先得有js权限 <script type="text/javascript"> /* 功能:生成博客目录的JS工具 测试:IE8,火狐,google测试通过 zhang_derek 2018-01-03 */ var BlogDirectory = { /* 获取元素位置,距浏览器左边界的距离(left)和距浏览器上边界的距离(top) */ getElementPosition: function (ele) { var topPosition = 0 ; var leftPosition = 0 ; while (ele){ topPosition += ele.offsetTop; leftPosition += ele.offsetLeft; ele = ele.offsetParent; } return {top:topPosition, left:leftPosition}; }, /* 获取滚动条当前位置 */ getScrollBarPosition: function () { var scrollBarPosition = document.body.scrollTop || document.documentElement.scrollTop; return scrollBarPosition; },

【学习笔记】《架构整洁之道》(1)

不问归期 提交于 2020-08-16 15:14:09
零、前言 《架构整洁之道》的内容大体分为3个部分: 编程范式(结构化编程、面向对象编程和函数式编程) 设计原则(主要是SOLID) 软件架构(其中讲了很多有关软件架构高屋建瓴的内容) 第一部分学习笔记,包含上述1,2两部分。 无论是微观世界的代码,还是宏观层面的架构,无论是三种编程范式还是微服务架构,它们都在解决一个问题——分离控制和逻辑。 所谓控制就是对程序流转的业务逻辑无关的代码或系统的控制(如多线程、异步、服务发现、部署、弹性伸缩等),所谓逻辑则是指实实在在的业务逻辑,是解决用户问题的逻辑。 控制和逻辑构成了整体的软件复杂度, 有效地分离控制和逻辑会让你的系统得到最大的简化。 所谓架构就是“用最小的人力成本来满足构建和维护系统需求”的设计行为。 软件开发一个核心特点是:“要想跑的快,先要跑的稳。”,在一个糟糕的架构上开发新的功能,只会越做超臃肿,越做越慢,越做越糟糕。 对于每个软件系统,我们可以通过 行为 和 架构 两个维护来体现它的实际价值。行为指的是软件的业务逻辑所带来的价值。而架构是与具体用户需求无关的,程序员往往忽略它的存在。 在艾森豪威尔矩阵中,行为这个价值维度,是紧急的,但是并不总是特别重要。而架构的价值,是重要的,但是并不总是特别紧急。业务部分人研发人员常犯的错误就是,忽略架构价值的存在,导致新功能开发效率低下,系统运行、维护的成本急剧上升。

博客园美化大全

大兔子大兔子 提交于 2020-08-16 10:23:58
1.1、自动生成目录 效果如下: (1)页脚js代码 首先得有js权限 <script type="text/javascript"> /* 功能:生成博客目录的JS工具 测试:IE8,火狐,google测试通过 zhang_derek 2018-01-03 */ var BlogDirectory = { /* 获取元素位置,距浏览器左边界的距离(left)和距浏览器上边界的距离(top) */ getElementPosition: function (ele) { var topPosition = 0 ; var leftPosition = 0 ; while (ele){ topPosition += ele.offsetTop; leftPosition += ele.offsetLeft; ele = ele.offsetParent; } return {top:topPosition, left:leftPosition}; }, /* 获取滚动条当前位置 */ getScrollBarPosition: function () { var scrollBarPosition = document.body.scrollTop || document.documentElement.scrollTop; return scrollBarPosition; },

10个Vue开发的技巧

江枫思渺然 提交于 2020-08-16 09:35:43
路由参数解耦 一般在组件内使用路由参数,大多数人会这样做: export default { methods: { getParamsId() { return this.$route.params.id } } } 在组件中使用 $route 会使之与其对应路由形成高度耦合,从而使组件只能在某些特定的 URL 上使用,限制了其灵活性。 正确的做法是通过 props 解耦 const router = new VueRouter({ routes: [{ path: '/user/:id', component: User, props: true }] }) 将路由的 props 属性设置为 true 后,组件内可通过 props 接收到 params 参数 export default { props: ['id'], methods: { getParamsId() { return this.id } } } 另外你还可以通过函数模式来返回 props const router = new VueRouter({ routes: [{ path: '/user/:id', component: User, props: (route) => ({ id: route.query.id }) }] }) 函数式组件 函数式组件是无状态,它无法实例化,没有任何的生命周期和方法

数据存储(1):从数据存储看人类文明-数据存储器发展历程

风流意气都作罢 提交于 2020-08-16 03:35:38
传统文本存储 泥版/钟鼎/甲骨/莎草纸/羊皮纸等文字存储 传统的考古学家和历史学家认为,楔形文字起源于美索不达米亚特殊的渔猎生活方式。这是较为通行的看法,西方的各种百科全书大都持这一观点。约在公元前3400年左右,楔形文字雏形产生,多为图像。到公元前 500 年左右, 这种文字甚至成了西亚大部分地区通用的商业交往媒介。楔形文字一直被使用到公元元年前后,使用情景如同现今的拉丁文。 有了文字后,人类有又了记录过往数据的能力。但是,都是靠手工存储。 这些历史,这里不做过多种赘述 造纸与活字印刷术 造纸术与应刷术是中国四大发明之一。 公元105年(西汉),蔡伦改进了造纸术,随后就是对造纸术的改进过程,唐朝利用竹子为原料制成的竹纸,标志着造纸技术取得了重大的突破。随后就是西方一些列的改进了。 公元1041年-1048年(北宋),毕昇发明的泥活字。标志着活字印刷术的诞生。随后也是漫长的改进,传入欧洲400以后, 1440年到1445年之间,德国人约翰内斯·古腾堡的铅活字,凸版印刷技术——维克多·雨果称印刷术为世界上最大的发明。 在中世纪初期,书是财富的象征。如果谁家有一个图书室。那实在是太富有了,因为在当时书是人们用手工辛辛苦苦抄写出来的。僧侣和抄写员经常被雇来做这项工作,当然费用相当可观。印刷机的出现改变了这一切,并在文艺复兴时期加快了知识和文化的传播。 穿孔卡带纸存储 最早期的存储媒介—

CSS 伪类修改input选中样式

帅比萌擦擦* 提交于 2020-08-16 00:01:55
主要是用到了after伪类和字体符号。 1 input { 2 -webkit-appearance : none ; 3 -moz-appearance : none ; 4 appearance : none ; 5 display : inline-block ; 6 } 7 input:after { 8 content : "" ; 9 font-size : 18px ; 10 display : inline-block ; 11 width : 14px ; 12 height : 14px ; 13 line-height : 14px ; 14 text-align : center ; 15 border : 1px solid #666fff ; 16 vertical-align : bottom ; 17 } 18 input:checked:after { 19 content : "\2714" ; 20 } 1 < label for ="gender-male" > 男 </ label >< input id ="gender-male" type ="radio" name ="gender" value ="男" > 2 < label for ="gender-female" > 女 </ label >< input id =