首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js代码规范

每行控制在80个字符以内,如果超过请。 注释 : 注释可以增加代码的可维护性,尤其在项目交接的时候。 写好注释有利于团队的集成开发。 在更新功能以及模块时通过注释进行补充说明。...单行注释:// 多行注释:/* */ 段落注释 模块注释 方法注释: /* * 这里是一段注释 * 这里的注释可以连写多行...命名 : 变量名由26个大小写引文字母以及下划线组成,避免使用中文,不要再变量名中使用斜杠或者美元符号,不要把下划线用作变量的第一个字符,它有时会用作对象的私有变量,大多数的变量或者方法名应该以小写字母开头...语句 : 9.1 简单语句 语句最多只包含一条语句,吧分号放在每个简单语句的结尾。注意每个变量或者对象的赋值语句也是简单语句,应该以分号结尾。...当返回表达式的时候,应该控制在同一,分号结尾。 基本语句的格式,按照正确的句法,比如if,else,for,switch 等 空白 : 相关程序之间添加空白增强程序的可读性。

8.8K30

从零开始, 开发一个 Web Office 套件 (2): 富文本编辑器

富文本编辑器(MVP) 2.5 观察一下幻灯片中的文本框 我们发现: 一个文本框中有若干行文字文字中每个字符的大小, 样式都可能不一样 (废话) 但是, 上一篇文章中, 我们设置样式, 是以行为对象的...任意一个单独的字符, 都可以用鼠标选中 (废话) 但是, 上一篇文章中, 我们计算文字包围盒, 是以行为整体计算的 一文字如果过长, 可以自动(默认行为, 可以修改) 当我调整文本框的宽度,...位置随之改变 文本框的位置和宽高都是可以调整的....因为我们之前为了方便, 将textBaseline设置为了top: 这样设置之后, 包围盒顶部坐标 和 fillText(text, x, y)中的y坐标相等了....为了解决这个问题, 我暂时想到了一种方法: 我们需要将文字统一向下偏移一个长度offsetY 的offsetY, 取决于行内所有字符fontBoundingBoxAscent的最大值 在渲染行内的每个字符时

19930
您找到你想要的搜索结果了吗?
是的
没有找到

CSS基础布局

由于纵向是由 堆叠起来的,重复的 布局一的内容,就可以了。 所以 布局重点就是 把块 横向的 排布开来。...* 主要方法: * 隐藏 + + 自适应空间 隐藏:确定好哪一部分的内容(比如导航 个人信息 可以通过点击菜单 从而弹出导航和个人信息 的方式,去隐藏起来) 在移动端是可以隐藏的...:在pc端横向排布的若干个东西,在移动端 可以 一显示两个 分多行显示。 留下自适应的空间:和两列布局类似,一列固定宽度 另一列随屏幕自适应。...比如 为小屏幕 写一段样式 为大屏 写一段样式,然后 通过media query来进行。...:把横向排布的inline-block元素, 用@media (max-width: 640px)适配屏幕, 从而更改inline-block元素 为 block,

2.9K20

从零开始, 开发一个 Web Office 套件 (1): 富文本编辑器

富文本编辑器(MVP) 2.1 计算文字包围盒 首先, 我们要找到一种方法, 来确定任意一段文字的包围盒. 为什么要确定包围盒呢?...但是, 当我们的文本很长的时候, 它并不会. 这就导致过长的文字会显示不全. 因此, 我们需要实现一个功能: 当文字触碰到canvas边缘的时候, 可以自动....我暂时想到了一种算法: 当渲染一段文字之前, 我们先测量一下这段文字的长度a, 再计算一下文字起点距离canvas边缘的距离b 1. 如果a <= b, 那么直接渲染即可. 2....如果后期遇到了性能问题, 我们就使用二分法, 来确定的字符数, 优化算法性能....计算出多行文字的真实高度 3. 在render中渲染出 然后看一下最终效果: 文字了两次, 变成了三, 很棒! (未完待续)

34780

有趣的 box-decoration-break

大意是 box-decoration-break 属性规定了一个元素片段在发生/断行时,应该如何被渲染。...O,可以看到,文字换行的同时,边框也随之变化,头尾两行都有 3 边边框,中间两只有上下两边边框。如果将 4 合起来,可以拼成图一,这个是正常的展示效果。...,那么都将拥有原本单行的所有完整样式。...CodePen Demo -- text-decoration-break 文本选中效果 box-decoration-break 每行文字带特定边框 又会有这样的场景,我们希望文案都带有特定的边框样式...也许可以都是一个 ,  设定上述样式。但是如果文本内容不确定,容器的宽度也不确定呢? 这种场景,使用 box-decoration-break 也非常便捷。

53530

css中换行的特殊用法

两个属性都同样是让文字换行,但存在着细微的区别,大部分时候刚接触到这两个属性时会无法区别两个的区别 下面讲一下两者的区别: word-wrap:break-word; 作用是强制让文字换行。...white-space主要用来设置CJK文本是否不折,实际中主要用white-space:nowrap来让文本不折。...word-wrap主要用来设置非CJK文本是否(因为CJK文本会自动),如果空间足够,不会对单词内部进行截断 word-break同样主要用来设置非CJK文本是否,但是会对单词内部进行截断...word-wrap 属性用来标明是否允许浏览器在单词内进行断句,这是为了防止当一个字符串太长而找不到它的自然断句点时产生溢出现象。...当一段文字有一个长长长的英文单词的情况下使用这两个属性的区别: word-wrap: word-break: 区别就是长单词在word-wrap作用下换到下一,后面可以正常还行,word-break

2.2K10

微信小程序之生成图片分享

然后,我们要开始写JS代码在这张画布上进行绘图操作。...步骤1:绘制背景图 通过观察《长城你造不造》合成的那张分享图,我们可以分析得出它的组成主要有以下3个部分:一张大的背景图,一段动态的文字(xxxx 喊你“一起来为修长城献砖”),以及一个小程序码图片。...步骤2:绘制文字 接着,让我们来在画布上继续绘制一段文字,一般这种宣传用的分享图,少不了文字描述,而且可能是根据场景内容不同而产生的动态信息,比如可能是一篇文章的作者、文章的标题和内容。...(“作者:一斤代码”, 600 / 2, 500) ctx.stroke() ctx.draw() }) 由于在canvas上绘制文字不会自动,如果要画一段比较长的文本,...可以考虑限制一的字数,将长文本拆分成几行来画。

4.6K30

vim从安装到熟练,这篇文章够了

比如电子书中一节的标题形式为:n. xxxx。你就可以这样: :vim/^d{1,}./ % 然后用:cw或:copen查看结果,可以用C-w H把quickfix窗口移到左侧, 更像个目录了。...:%s/^/xxx/g - 在首插入xxx,^表示首。 :%s//xxx/g - 在的行尾插入xxx,表示行尾。 所有替换命令末尾加上c,每个替换都将需要用户确认。...\d: 表示十进制数(我猜的) \s: 表示空格 \S: 非空字符 \a: 英文字母 \|: 表示 或 \.: 表示. {m,n}: 表示m到n个字符。...gq 对选中的文字重排,即对过长的文字进行断行 gqq 重排当前行 gqnq 重排n gqap 重排当前段 gqnap 重排n段 gqnj 重排当前行和下面n gqQ 重排当前段对文章末尾...; zm -- 收起嵌套的; zR (zO) -- 打开所有; zM (zC) -- 收起所有; zj -- 跳到下一个折叠处; zk -- 跳到上一个折叠处; zi -- enable

4.6K10

Vim 配置入门

(17) set textwidth=80 设置行宽,即一显示多少个字符。 (18) set wrap 自动,即太长的分成几行显示。...set nowrap 关闭自动 (19) set linebreak 只有遇到指定的符号(比如空格、连词号和其他标点符号),才发生。也就是说,不会在单词内部。...(20) set wrapmargin=2 指定处与编辑窗口的右边缘之间空出的字符数。 (21) set scrolloff=5 垂直滚动时,光标距离顶部/底部的位置(单位:)。...五、搜索 (25) set showmatch 光标遇到圆括号、方括号、大括号时,自动高亮对应的另一个圆括号、方括号和大括号。 (26) set hlsearch 搜索时,高亮显示匹配结果。...(27) set incsearch 输入搜索模式时,输入一个字符,自动跳到第一个匹配的结果。 (28) set ignorecase 搜索时忽略大小写。

1.4K10

深入扩展文本溢出解决方案

拓展的多行文本溢出 在支持了多行文本溢出显示省略号的功能之后,产品同学又发现体验不友好的点,如下图所示,文本在第二开头处结束了,这就导致第二大部分是空白的内容,影响了美观度。 ?...这里最关键的是要计算出可以显示多少文本,利用 canvas 的 measureText 方法,可以达到这个效果,代码如下 <canvas id="myCanvas" width="300" height...一文字最大宽度 x: 0,//文字在x轴要显示的位置 y: 0,//文字在y轴要显示的位置 maxLine: 3//文字最多显示的行数 }) 效果图 当文本没有超过第 x 的一半时,则按第...自定义多行文本溢出 过一段时间之后,产品同学又提出了新的进阶版需求 文本的首开头需要缩进或者可以配置一个图标; 文本的末尾可以配置按钮或者图标,并且如果文本超过了范围需要显示省略号,但是省略号需要在按钮或图标的前面...参考资料 [1] css 多行文字溢出打点省略号: https://blog.csdn.net/c_kite/article/details/81486953 [2] clamp-js-main: https

1.3K20

Linux学习笔记之vim操作指令大全

h或退格: 左移一个字符; l或空格: 右移一个字符; j: 下移一; k: 上移一; gj: 移动到一段内的下一; gk: 移动到一段内的上一; +或Enter: 把光标移至下一第一个非空白字符...比如电子书中一节的标题形式为:n. xxxx。你就可以这样: :vim/^d{1,}./ % 然后用:cw或:copen查看结果,可以用C-w H把quickfix窗口移到左侧, 更像个目录了。...:%s/^/xxx/g - 在首插入xxx,^表示首。 :%s//xxx/g−在的行尾插入xxx,/xxx/g−在的行尾插入xxx,表示行尾。...\d: 表示十进制数(我猜的) \s: 表示空格 \S: 非空字符 \a: 英文字母 \|: 表示 或 \.: 表示. {m,n}: 表示m到n个字符。...; zm – 收起嵌套的; zR (zO) – 打开所有; zM (zC) – 收起所有; zj – 跳到下一个折叠处; zk – 跳到上一个折叠处; zi – enable/disable

2.7K20

HenCoder Android 开发进阶:自定义 View 1-3 文字的绘制

也就是说,当这四个字写在一起的时候,中间两个字由于受到两边的字的影响,形状被改变了。看图吧: 上面第二和第三文字是完全一样的俩字,你敢信? 哇塞,是不是特别神奇?...如图,图中有两行文字都有 5 条线:top, ascent, baseline, descent, bottom。...另外,下方那条用于表示文字宽度的横线,在左边超出了第一个字母 H 一段距离的,在右边也超出了最后一个字母 r(虽然右边这里用肉眼不太容易分辨),而就是两边的这两个「超出」,导致了 measureText...这个方法可以用于多行文字计算。 breakText() 也有几个重载方法,使用大同小异,不再介绍。 2.2.7 光标相关 对于 EditText 以及类似的场景,会需要绘制光标。...在这种情况下,它是等价于 measureText(text) 的,即完整测量一段文字的宽度。而对于更复杂的需求,getRunAdvance() 能做的事比 measureText() 多了。

1.2K20

我写了一本书,《深入理解 Kotlin 协程》

翻了翻过去的文章记录,我在 2017 年 1 月当时 Kotlin 1.1-beta 刚刚发布之时发布了第一篇介绍协程的文章深入理解 Kotlin Coroutine (一),主要介绍了协程的标准库的...本书印刷版中所有的代码都采用了 JetBrains Mono 这个字体,插图的文字也是如此。另外,本书代码缩进采用了 2 个空格的样式,目的也是为了减少,提高版面的空间利用率,进而提升阅读体验。...我是用 VSCode + Pandoc + graphviz + mermaid.js + plantUML + rx-marbles 等工具来编写的。...过滤器,以及如何通过修改源码解决 plantUML、mermaid.js、rx-marbles 的样式定制和字体的支持的问题,最后还借机学会了如何制作 docker 镜像。...当然,我在本书写作过半之时,突发奇想开始学习双拼输入法,刚开始的那一段时间曾一度因为不知道如何打字而憋得着急上火,不过那时的感觉像极了十几年前在大学里刚买电脑之后连 QQ 都聊不明白的光景,自己似乎又年轻了一回

1.3K10

20170108_先行者周日群视频课程——文字

这个地方可能有的同学晕了,会想什么是不是得计算圆周啊,或是按圆形分布坐标什么的,。没那么复杂。其实就是上三和下三都缩进而已。...大家都知道,容器能够横向排成一用的最多的,就是float:left,那么如果我们从0开始算起,然后给第[2]个容器添加clear:left, 把它的左侧浮动给清除掉,它不就到第二了嘛。。...(这时再在截图上画,第几个开始clear:left) 然后继续算,第[2]个就是3,那么第一有二标签;第二至少要有4个标签,那就得在第[6]个标签上添加clear:left,那么第三的第一个标签...这样标签数量少的,它的marginleft值大;标签数量多的,它的marginleft的值小。...所以并不会有手把手的教你一的写代码。而是带你读代码,读懂代码,读懂代码所表达出来的思路。 看代码,先来看结构,看一下,css,html,js三个部分在一起,因为比较简单嘛。

1.2K60

学前端到了CSS阶段,你一定要掌握这9大防御式开发技能

但是在实际的应用中,数据是从后台加载而来,标题的字数就有可能过长,过长之后就会导致标题溢出的效果如下图,带来不好的体验。如果站在防御式编程的角度来思考,那我们就会提前把这种问题规避掉。...三、9个具有防御式的CSS代码① :场景一:单行文本过长我们设计时的理想效果是标题文字不超过8个字,正好显示完整。但实际应用时,有可能标题内容过长造成换行显示。..."以防万一"标题过长产生的问题 2、场景二:类别标签中文本过长在这个效果中,我们并不希望标签延伸到最右侧,我们希望内容过长时,可以在一定的长度时显示...border-radius: 0 50px 50px 0px; left: 0px; top: 5px; /*以防万一标签内容过长,控制最大宽度,内容过多显示...如果我们显示的个数为n,那我们可以最后一子项的后面加上n-2个span元素,span元素的宽度和其它子项元素宽度一样,但不用设置高度。为什么是添加n-2个span元素呢?

1.8K00

Fabric.js IText设置指定字符颜色和背景色

IText 是 Fabric.js 提供的一个 可编辑文本 的元素。 要设置文字颜色,可以设置 fill 。...如果对这个概念不太熟的话,可以看看 Fabric.js 从入门到膨胀。 最后通过 new fabric.IText 创建一段文字添加到画布中。...在 Fabric.js 里是使用这个属性设置颜色的,和 css 设置文字颜色使用 color 不一样~ 单行:设置指定文字颜色 const iText = new fabric.IText('hello...styles: { // 设置样式 0: { // 第1 1: { // 第2个字符 // 要设置的样式 } } } 复制代码 上面这段代码是这个意思。...这个例子要 修改第1第2个字符的文字颜色为红色,第2第3个字符为亮粉色 。 从代码里的注释应该可以看得懂本次操作。

3.1K20
领券