小tips: 使用 等空格实现最小成本中文对齐

一、重见天日第二春

11年的时候,写了篇文章“web页面相关的一些常见可用字符介绍”,这篇文章里面藏了个好东西,就是使用一些空格实现个数不等的中文对齐或等宽。见下表:

字符以及HTML实体 描述以及说明

 

这是我们使用最多的空格,也就是按下space键产生的空格。在HTML中,如果你用空格键产生此空格,空格是不会累加的(只算1个)。要使用html实体表示才可累加。为了便于记忆,我总是把这个空格成为“牛逼(nb)空格(sp – space)”,虽然实际上并不牛逼。该空格占据宽度受字体影响明显而强烈。在inline-block布局中会搞些小破坏,在两端对齐布局中又是不可少的元素。是个让人又爱又恨的小东东。

 

该空格学名不详。为了便于记忆,我们不妨就叫它“恶念(e n-ian)空格”。此空格传承空格家族一贯的特性:透明滴!此空格有个相当稳健的特性,就是其占据的宽度正好是1/2个中文宽度,而且基本上不受字体影响。

 

该空格学名不详。为了便于记忆,我们不妨就叫它”恶魔(e m-o)空格”。此空格也传承空格家族一贯的特性:透明滴!此空格也有个相当稳健的特性,就是其占据的宽度正好是1个中文宽度,而且基本上不受字体影响。

 

该空格学名不详。我们不妨称之为“瘦弱空格”,就是该空格长得比较瘦弱,身体单薄,占据的宽度比较小。我目前是没用过这个东西,这里亮出来是让其过一下群众演员的瘾。

其中的  ,由于具有某一超赞的特性,使其可以登上web届的舞台!什么特性呢?如上表加粗展示,1. 透明; 2. 宽度正好跟中文正好是1:21:1的关系,于是,一些中文排版对齐什么的,直接就可以使用这两个空格调节,如:

<ul>
    <li class="li">姓&emsp;&emsp;名:<input type="text" /></li>
    <li class="li">手&ensp;机&ensp;号:<input type="text" /></li>
    <li class="li">电子邮箱:<input type="text" /></li>
</ul>

结果轻松实现了2字/3字/4字中文的等宽两端对齐效果:

您可以狠狠地点击这里:空格在文字布局中的应用demo

以上就是旧文内容,那为何现在这个点老生常谈呢?

因为刚刚我碰巧翻到这篇旧文时候,发现1天的访问量才10, 觉得文章如落冷宫,甚是令人怜悯,着实令人扼腕叹息。于是,决定再加点料,重新包装下,再次推向市场,看看能不能掀起一点波澜。

还有一点就是,上面的空白字符中文对齐方法在IE6下不能完全兼容,而当年11年的时候,IE6在中国还是很嚣张的,所以,很多小伙伴后来就没坚持。而如今,大红灯笼高高挂,IE6早早休掉回娘家,没有了阻碍,此方法说不定能掀起一点波澜。

二、空格新成员 

「叉三千」指什么呢?哈哈,其实是全角空格。

中文字体都是等宽的,一个全角空格的宽度就是一个普通中文的宽度。所以,上面的demo中&emsp;空格换成全角空格也是可以滴!

但是,我们不能直接在页面中打全角空格,因为在大多数编辑器中空格是透明滴,很容易就被删掉;另外,HTML压缩时候,空格很可能被干掉!咋办?需要转换书写形式。

在web页面上,一般有3种书写:

  1. 直接,例如搜狗输入法输入“版权” – ©.
  2. web字符,&copy;
  3. charCode表示:©

而上面的&ensp;&emsp;就是具有特定名称的web字符。但是,恕我寡闻,我并不清楚全角空格是否有对应& + 关键字示意,所以,就使用工具转成了charCode字符表示,也就是这里的 ,又称「叉三千」!

稍等,你刚说了工具,什么工具!?

哈,这位同学好敏锐,我是有一个私藏的小工具,可以把任意字符转换成HTML识别格式,若有兴趣,您可以狠狠地点击这里:任意字符转换成HTML识别格式工具页面

使用了这个工具,你会发现&ensp;&emsp;原来是相邻兄弟关系:

  • &ensp; → 
  • &emsp; → 

三、更多内容

当中文和英文混杂的时候,使用&ensp;&emsp;等空格实现冒号的完美对齐还是有些困难的,除非英文使用的是等宽字体,于是乎,我们就可以使用普通的&nbsp;空格做英文字符的宽度调节。

再科普点关于字符的实用知识吧:
1. HTML中字符输出使用&#x配上charCode值;
2. 在JavaScript文件中为防止乱码转义,则是\u配上charCode值;
3. 而在CSS文件中,如CSS伪元素的content属性,直接使用\配上charCode值。

因此,想在HTML/JS/CSS中转义“我”这个汉字,分别是:

  1. \u6211, 如console.log(‘\u6211‘);
  2. \6211, 如.xxx:before { content: ‘\6211‘; }

考虑到直接 这种形式暴露在HTML中,可能会让屏幕阅读器等辅助设备读取,从而影响正常阅读流,因此,我们可以进一步优化下,使用标签,利用伪元素,例如:

.half:before { content: ‘\2002‘; speak: none; }
.full:before { content: ‘\2003‘; speak: none; }

这样,占位的空格字符即不能读,也不能选了。您可以狠狠地点击这里:伪元素生成空格与中文字符对齐demo

好了,就这些,放水完毕!

转自https://www.zhangxinxu.com/wordpress/2015/01/tips-blank-character-chinese-align/

小tips: 使用 等空格实现最小成本中文对齐

原文地址:https://www.cnblogs.com/cangqinglang/p/11544453.html

时间: 2024-10-12 19:32:57

小tips: 使用&#x3000;等空格实现最小成本中文对齐的相关文章

[转] 小tips: 使用&amp;#x3000;等空格实现最小成本中文对齐 ---张鑫旭

by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=4562 一.重见天日第二春 11年的时候,写了篇文章“web页面相关的一些常见可用字符介绍”,这篇文章里面藏了个好东西,就是使用一些空格实现个数不等的中文对齐或等宽.见下表: 字符以及HTML实体 描述以及说明   这是我们使用最多的空格,也就是按下space键产生的空格.在HTML中,如果你用空格键产生此空格,空格是不

Windows7驱动调试小Tips

v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);}/* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colb

git 小tips

git 小tips 总结一下最近遇到的一些git问题 1. 将已有代码推送到github,报non-fast-forward的错. 正确的步骤是: cd code git init git remote add origin [email protected]:- git fetch git merge git push origin master 第4,5布可以合并成git pull ,如果不做这步的话会报non-fast-forward 的错. 2 忽略一些文件 某些文件不需要跟踪的可以加入

最近工作的一点小tips

最近工作比较忙,但也积累了一些小tips,比较杂,不成系统,也并不很深入,就开一篇笼统的先记录一下,以后再深入挖掘. 1.-webkit-tap-highlight-color -webkit-tap-highlight-color 是一个 不规范的属性,它没有出现在 CSS 规范草案中. 当用户点击iOS的Safari浏览器中的链接或JavaScript的可点击的元素时,覆盖显示的高亮颜色. 该属性可以只设置透明度.如果未设置透明度,iOS Safari使用默认的透明度.当透明度设为0,则会禁

机房收费系统一些小Tips

做重构已经有一段时间了,在这段时间里面学了很多新东西,感觉自己的鸡窝做得越来越好了.这里,写下一些小Tips,记录下一些自己感觉很有意思的东西. 一,还是分层的问题 在上下机加完模式后,总感觉很诡异,我的上下机是加完模式后的,第一次这么做,还有点儿生疏,看了半天,才发现我上下机的逻辑居然在U层,如图: 三个类定义在了U层: 然后在下机的时候调用: 虽然能实现下机,但是具体的逻辑还是在U层里面,因为我是在U层定义在U层引用的.想完这个,深感自己对分层的理解才刚刚开始唉~ 当自己不知道该把某块东西放

最小成本排序 挑战程序设计

http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ALDS1_6_D&lang=jp 最小成本排序: #include <bits/stdc++.h> using namespace std; static const int maxn = 1000; static const int vmax = 10000; int n,A[maxn],s; int B[maxn],T[vmax+1]; int solve() { i

myeclipse页面编辑框空格、回车符、对齐出现特殊字符

myeclipse页面编辑框空格.回车符.对齐出现特殊字符 解决办法:window-preferences-general-editors-Text Editors    把show whitespace characters前面勾去掉

性能优化小Tips

Performance Tips 这篇文章主要是介绍了一些小细节的优化技巧,当这些小技巧综合使用起来的时候,对于整个App的性能提升还是有作用的,只是不能较大幅度的提升性能而已.选择合适的算法与数据结构才应该是你首要考虑的因素,在这篇文章中不会涉及这方面.你应该使用这篇文章中的小技巧作为平时写代码的习惯,这样能够提升代码的效率. 通常来说,高效的代码需要满足下面两个规则: 不要做冗余的动作 如果能避免,尽量不要分配内存 代码的执行效果会受到设备CPU,设备内存,系统版本等诸多因素的影响.为了确保

转。webapp开发小tips

 备忘 - Q:  webapp点击一个按钮调用系统拨号: <a href="tel:12345654321">打电话给我</a> <a href="sms:12345654321">发短信</a> 或用于单元格: <td onclick="location.href='tel:122'"> Q:如何用手机在上网的网页中链接访问跳转到手机本地qq上直接聊天? mqqwpa://im/ch