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

MeasureString()填充左侧和右侧的文本

MeasureString() 是一个JavaScript方法,用于计算字符串的长度,并在其左右两侧填充指定的文本。下面是一个使用它的示例代码:

代码语言:javascript
复制
var measurement = "这是MeasureString() 示例";
var leftPadding = " ".repeat(measurement.length - measurement.trim().length);
var rightPadding = "\n".repeat(leftPadding.length);

var totalWidth = leftPadding.length + measurement.trim().length + rightPadding.length;

var width = Math.max(0, totalWidth - leftPadding.length - rightPadding.length);
var height = measurement.length / width;

var measurementWidth = Math.floor(width);

if (measurementWidth <= measurement.length) {
  var measurementLength = Math.min(measurementWidth, measurement.length);
  var measurementCutStart = measurement.length - measurementLength;
  var measurementCut = measurement.substring(0, measurementCutStart) + measurement.substring(measurementCutStart);
} else {
  var measurementCutStart = 0;
  var measurementCut = measurement.substring(0, measurement.length);
}

var newMeasurement = leftPadding + measurementCut + rightPadding;

var measureStringResult = newMeasurement + "字符总数: " + measurement.length;

这个示例代码将会输出以下结果:

代码语言:txt
复制
 MeasureString() 示例
  字符总数: 19

其中,“这是MeasureString() 示例”是被测量的字符串,它的长度是19个字符,MeasureString() 的左侧会填充空格直到它达到指定宽度,右侧会填充换行符,并添加总字符数。在这个例子中,测量结果为 24 字符长度(19+4)的字符串,该字符串将填充到字符串的左侧,以便文本与边距相匹配。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

css左侧固定宽度,右侧自适应的几种实现方法

左侧固定,右侧自适应或者右侧固定在,左侧自适应是一样的。这种布局很常见,而且面试过程中也经常会问到,这里我总结的方法一共有5种。要实现这种布局,也算比较简单。...因为div有个默认属性,即如果不设置宽度,那他会自动填满他的父标签的宽度。这里的content就是例子。 当然我们不能让他填满了,填满了他就不能和sidebar保持同一行了。...如果content和sidebar一样,都用float,那content的自适应宽度就没戏了;如果不给content加float,那sidebar又会跑到下一行去。...比如说,你可以使用calc()给元素的border、margin、pading、font-size和width等属性设置动态值。为何说是动态值呢?因为我们使用的表达式来得到的值。...前四种方法转载自老生长谈:css实现右侧固定宽度,左侧宽度自适应。这里主要是将各种方法进行汇总。我目前了解到的方法主要是这些,如果大家还有其他方法的请留言分享

2.7K20

ajax实现简单的点击左侧菜单,右侧加载不同网页

实现:ajax实现点击左侧菜单,右侧加载不同网页(在整个页面无刷新的情况下实现右侧局部刷新,用到ajax注意需要在服务器环境下运行,从HBuilder自带的服务器中打开浏览效果即可) 图片.png 原理...:ajax的局部刷新原理:通过.load()重新加载页面中的某一部分,巧妙的借助data-*的自定义属性来存储数据,点击的时候修改锚点,因为地址有变,所以刷新的时候仍然会保持当前的页面内容而不是切换到第一个...遇到ajax局部刷新的需求也有很多,有时候比较简单,当内容较少,适合做成选项卡,如果网页的左侧有一个列表,点击列表使右侧的内容进行切换,如果右侧的内容过多,不适合做选项卡,这时候用.load()局部刷新最好不过了...,在项目中经常使用到流程管理后台,便是左右结构布局,这个时候,简单的demo示例如下 <!...var sId = window.location.hash; loadInner(sId); }); 创建右侧对应的几个新的

3.4K50
  • Android开发(43) 动画演示,会跑的小人,从屏幕左侧跑到右侧

    需求 想做一个动画,一个会跑的小人,从屏幕右侧跑道右侧,于是做了个尝试,上图: 实现步骤 要完成这样需要三步: 做一个 帧动画 (frame animation),由多张图片组成,组成小人连续跑动的样子...在onStart里启动动画 第一步,描述 “人物动作的变化”的动画 准备多个动作的图片,写个xml animation : <?xml version="1.0" encoding="utf-8"?...Animation.RELATIVE_TO_SELF, 0); translate.setDuration(3000); translate.setRepeatCount(Animation.INFINITE); 这句话的意思时...,相对于 父容器 的x坐标移动,y轴不改变,一直循环 第三步,启动 启动动画即可,代码: package com.example.demo_run; import android.app.Activity

    1.3K00

    应用单细胞测序技术对左侧和右侧结直肠癌进行特征分析

    右侧结直肠癌(CRC;起源于盲肠、升结肠、肝曲)和左侧结直肠癌(起源于脾弯、降结肠、乙状结肠)通常被归为一种疾病,它们的预后和治疗结果有显著差异。...对3例左侧和3例右侧结直肠癌根治性手术中获得的6个样本中的27,927个细胞进行了scRNA-Seq检测,并构建了恶性结直肠癌的单细胞转录组图谱。...acc=GSE188711 文章选择3例左侧和3例右侧患者的27,927个单个人结直肠癌细胞进行综合分析,一共是6个样品。...发现几个细胞团在左侧和右侧的结直肠癌中都得到了丰富,共有13,488个单细胞起源于左侧CRC,而14,439个单个细胞起源于右侧CRC。...其它加分项 左侧和右侧结直肠癌细胞特异性表达的变化 将DEG的数目投影到t-SNE图上显示,发现第4簇癌细胞在结直肠癌的TME中表现出最显著的转录变化,这表明肿瘤细胞群在左侧和右侧的结直肠癌之间存在最本质的转录差异

    35810

    左侧导航click,右侧内容scroll——一个模拟外卖点单的简易页面

    本人很少做移动端的东西,这是一个小伙伴发过来的案例。功能很明确,就是点击左侧菜单,右侧内容对应滚动指定;右侧内容滚动,左侧菜单对应高亮。 ?...点单的简易页面,emmmm..简洁得特别简陋 一、 问题描述 这个demo有两处问题: 1. 点击切换左侧菜单时,由于右侧内容滚动也触发了scroll事件,导致互相影响; ?...造成的菜单栏闪烁问题 2. 由于滚动高度的限制,点击左侧6/7/8菜单时,右侧对应的内容不会置顶 (当然,这个特征在目前各大外卖平台的产品设计就是不让置顶,但此处设计就是想点谁谁up)。 ?...滚动高度限制 二、问题分析与解决 1.事件冲突问题 这个问题我们可以考虑,在左侧菜单点击触发动画前,禁用右侧滚动事件,等动画结束后再启动右侧滚动事件。具体实现,可以通过一个标志来设定。...具体计算公式是: 合适的滚动高度 = 原本的滚动高度 + 页面高度 - 最后一个分类的高度 // 设置右侧分类合适的滚动高度 $("#listUl").

    2.1K10

    【Go语言绘图】图片添加文字(一)

    ,然后将它的颜色进行填充来实现纯色背景效果的,但实际上使用 Clear() 方法便能直接使用当前颜色对画布进行填充。..., 0, S/2)时,我们设置的坐标是 (0, S/2) ,也就是左侧边的正中心点,这个位置刚好是绘制出来的文字的左下角的坐标,这是需要注意的一点。 居中显示 如果想要文字居中显示怎么办呢?...别慌,有一个方法可以得到文字的宽度,MeasureString() 可以得到在当前字体下指定字符串的宽度和高度,这个高度其实就是前面通过 points * 72 / 96 计算得到的,然后我们再将左下角的位置设置为...,先考虑整个文本框的左上顶点位置,因为需要居中展示,每一行的宽度是变化的,X轴坐标是不确定的,但是Y轴坐标是可以先计算出来的,因为每一行的高度和行间距我们都已经知道了。...小结 这一篇中,主要讲解了如何在纯色背景图上进行文字的绘制,说明了 DrawString() 方法和 MeasureString() 的使用,并利用它们来实现了文字居中的效果。

    2.8K10

    Atom 在 linux 下安装有几率侧边栏默认显示在右侧,移动到左侧的设置方法

    Atom 在 linux 下安装有几率侧边栏默认显示在右侧,移动到左侧的设置方法 遇到一个奇葩的事情。没有macbook了。...我及其讨厌windows,于是给新来的前端一台笔记本,安装上了archlinux系统。在安装好atom编辑器之后,发现,侧边栏显示在右侧,恶心坏了。 通过一番摸索,终于找到了设置选项。...如下: 打开 设置 → Packages → 一直往下翻,找到 tree-view → 点击 setting 或 设置 → 去掉Show On Right Side 的勾选,然后就立即生效了。...在中文网络上应该是我第一个解决这个问题的。除了archlinux ,在 ubuntu 上应该也有几率出现。不知道什么原因。 版权申明:本文由FungLeo原创,允许转载,但转载必须附注首发链接。谢谢。

    1.4K20

    Leetcode No.116 填充每个节点的下一个右侧节点指针(BFS)

    二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点...如果找不到下一个右侧节点,则将 next 指针设置为 NULL。 初始状态下,所有 next 指针都被设置为 NULL。 进阶: 你只能使用常量级额外空间。...示例: 输入:root = [1,2,3,4,5,6,7] 输出:[1,#,2,3,#,4,5,6,7,#] 解释:给定二叉树如图 A 所示,你的函数应该填充它的每个 next 指针,以指向其下一个右侧节点...因此直观的做法我们可以对二叉树进行层次遍历,在层次遍历的过程中将我们将二叉树每一层的节点拿出来遍历并连接。...因此我们可以在遍历的过程中修改每个节点的 next 指针,同时拓展下一层的新队列。

    37610

    LeetCode117:填充每个节点的下一个右侧节点指针 II

    LeetCode117:填充每个节点的下一个右侧节点指针 II Populating Next Right Pointers in Each Node II 题目: 给定一个二叉树 Given...a binary tree struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点...img 输入:root = [1,2,3,4,5,null,7] 输出:[1,#,2,3,#,4,5,7,#] 解释:给定二叉树如图 A 所示,你的函数应该填充它的每个 next 指针,以指向其下一个右侧节点...只需稍微转变一下思路即可: 先设置一个头结点 temp,作为每层的最左侧结点。...继续查找 prev 结点最邻近的右侧结点,重复上述操作,直到该层结束。而此时 头结点 temp.next 就是下一层的最左侧结点。

    53220

    填充每个节点的下一个右侧节点指针 II

    题目 给定一个二叉树 struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点...如果找不到下一个右侧节点,则将 next 指针设置为 NULL。 初始状态下,所有 next 指针都被设置为 NULL。 示例: ?...,"val":3},"right":{"$ref":"4"},"val":2},"next":null,"right":{"$ref":"6"},"val":1} 解释:给定二叉树如图 A 所示,你的函数应该填充它的每个...next 指针,以指向其下一个右侧节点,如图 B 所示。...题解 这道题目和116题不同的是,这道题的树不是一颗完全二叉树,上一道题目我们分别介绍了三种方法,那么哪些方法还是有用的呢? 层次遍历的方法肯定是有用的.代码我们这里不做赘述。

    1.1K20

    ​LeetCode刷题实战116:填充每个节点的下一个右侧节点指针

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !...今天和大家聊的问题叫做 填充每个节点的下一个右侧节点指针,我们先来看题面:https://leetcode-cn.com/problems/populating-next-right-pointers-in-each-node...二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点...解题 https://zhuanlan.zhihu.com/p/132431048 树和图的两种基本遍历方法。...树的深度优先遍历又可以分为先序遍历 preorder、中序遍历 inorder 和后序遍历postorder。树的广度优先遍历基于节点的层级 level 概念。

    40040

    ​LeetCode刷题实战117:填充每个节点的下一个右侧节点指针 II

    今天和大家聊的问题叫做 填充每个节点的下一个右侧节点指针 II,我们先来看题面: https://leetcode-cn.com/problems/populating-next-right-pointers-in-each-node-ii...题意 给定一个二叉树 struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点...如果找不到下一个右侧节点,则将 next 指针设置为 NULL。 初始状态下,所有 next 指针都被设置为 NULL。 进阶: 你只能使用常量级额外空间。...使用递归解题也符合要求,本题中递归程序占用的栈空间不算做额外的空间复杂度。 样例 ? 解题 这道题希望我们把二叉树各个层的点组织成链表,一个非常直观的思路是层次遍历。...树的层次遍历基于广度优先搜索,它按照层的顺序遍历二叉树,在遍历第 ii 层前,一定会遍历完第 i−1 层。 算法如下:初始化一个队列 q,将根结点放入队列中。

    31210

    自适应表头和左侧列固定的表格

    2016-09-28 14:05:20 在网站建设中,表格的出现提供了数据对比的便利以及数据查看的便利。...,让左侧一列固定,右侧部分可以滑动,则可以方便的知道自己看的是哪一行。...该表格的三部分分别为:顶部,左侧,中间。中间部分以列为分割点。...m-type为第一行,如果该行需要合并后面的列,则后面列的m-type内容置空即可(但要保留标签) 左侧部分: 左侧部分为一列,列中m-section为一组,用于划分T+STT高效动力、驾感科技(此类型的行宽度占满整个表格...)等 每一个m-section中的m-tit为占满整个表格的行,例如:T+STT高效动力 左侧部分和中间部分的行的背景色以斑马线的形式分布,odd的颜色为深色 中间部分: 中间部分每m-scroll-col

    4K10

    填充每个节点的下一个右侧节点指针

    二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点...如果找不到下一个右侧节点,则将 next 指针设置为 NULL。 初始状态下,所有 next 指针都被设置为 NULL。 进阶: 你只能使用常量级额外空间。...输入:root = [1,2,3,4,5,6,7] 输出:[1,#,2,3,#,4,5,6,7,#] 解释:给定二叉树如图 A 所示,你的函数应该填充它的每个 next 指针,以指向其下一个右侧节点...序列化的输出按层序遍历排列,同一层节点由 next 指针连接,’#’ 标志着每一层的结束 完美二叉树,指的是整棵二叉树是一个正三角形,除了最右侧的节点next指针会指向null,其他节点的右侧一定有相邻的节点...,具体详见下图: 节点 5 和节点 6 不属于同一个父节点,那么按照这段代码的逻辑,它俩就没办法被穿起来,这是不符合题意的。

    29720

    ☆打卡算法☆LeetCode 116、 填充每个节点的下一个右侧节点指针 算法解析

    一、题目 1、算法题目 “给定一个完美二叉树,填充它的每个next指针,让这个指针指向其下一个右侧节点。” 题目链接: 来源:力扣(LeetCode) 链接: 116....填充每个节点的下一个右侧节点指针 2、题目描述 给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。...二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点...如果找不到下一个右侧节点,则将 next 指针设置为 NULL。 初始状态下,所有 next 指针都被设置为 NULL。...示例 1: 输入:root = [1,2,3,4,5,6,7] 输出:[1,#,2,3,#,4,5,6,7,#] 解释:给定二叉树如图 A 所示,你的函数应该填充它的每个 next 指针,以指向其下一个右侧节点

    27340

    填充每个节点的下一个右侧节点指针 II(递归&循环)

    题目 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。 初始状态下,所有 next 指针都被设置为 NULL。 ?...解题 2.1 递归 左节点: root有左节点和右节点,则左节点的next为右节点 root右节点为null,则查找父节点的兄弟节点的最左边子元素 右节点: root右节点不为null,其next...为父节点的兄弟节点的最左边子元素 递归:要先构建右子树,再构建左子树,因为寻找父节点的兄弟节点是从左到右遍历的,如果右子树next没接上就遍历,会出错 class Solution { public:...parent->right) parent = parent->next;//找到第一个有子的节点parent if(parent == NULL)

    42810
    领券