一:不同空格符合的区别

 
  半角的不断行的空白格(推荐使用)

&ensp 半角的空格

&emsp 全角的空格

详细的含义:

 :这是我们使用最多的空格,也就是按下space键产生的空格。在HTML中,如果你用空格键产生此空格,空格是不会累加的(只算1个)。要使用html实体表示才可累加。该空格占据宽度受字体影响明显而强烈。在inline-block布局中会搞些小破坏,在两端对齐布局中又是不可少的元素。

&ensp:此空格有个相当稳健的特性,就是其占据的宽度正好是1/2个中文宽度,而且基本上不受字体影响。

&emsp:此空格也有个相当稳健的特性,就是其占据的宽度正好是1个中文宽度,而且基本上不受字体影响。

二:使用场景
对于&ensp和&emsp在一些中文排版对齐方面可以使用,如下html代码:

  • 姓  名:
  • 手 机 号:
  • 电子邮箱:

实现的效果如图所示:
html中的空格符号( nbsp; ensp; emsp; )介绍以及中文对齐实现的方法详解_第1张图片
值得注意的是:上面的空白字符中文对齐方法在IE6下不能完全兼容。(现在谁还在兼容IE6呢,所以还是非常有用的。)

三:空格新成员 
大多数编辑器中空格是透明滴,很容易就被删掉;另外,HTML压缩时候,空格也会被删除掉,所以需要转换书写形式。

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

直接,例如搜狗输入法输入“版权” – ©.

web字符,© 
charCode表示:©

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

  →  

  →   

字符使用技巧:

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

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

我

\u6211, 如console.log('\u6211');

\6211, 如.xxx:before { content: '\6211'; }

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

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

html代码:

  • 名:
  • 号:
  • 电子邮箱:

css代码:

.half {

    *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');}

    .full {

    *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');}

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

上面用到了runtimeStyle这个对象属性,这个是IE专属的。

下面简单介绍下style、 currentStyle、 runtimeStyle以及getComputedStyle的区别,在IE下测试如下。

html代码:

这里是来检测style,currentStyle,runtimeStyle的区别

js代码:

var myp = document.getElementById("tt");

myp.runtimeStyle.color="black"; 

console.log(myp.currentStyle.color);  

//blackconsole.log(myp.runtimeStyle.color);  

//blackconsole.log(document.defaultView.getComputedStyle(myp, null).color); 

//rgb(0, 0, 0)console.log(myp.style.color);         

//blue

说明一下:

obj.style:这个方法只能JS只能获取写在html标签中的写在style属性中的值(style=”…”),而无法获取定义在