>  기사  >  웹 프론트엔드  >  HTML의 공백 기호(nbsp; ensp; emsp;) 소개 및 중국어 정렬 구현 방법에 대한 자세한 설명

HTML의 공백 기호(nbsp; ensp; emsp;) 소개 및 중국어 정렬 구현 방법에 대한 자세한 설명

黄舟
黄舟원래의
2017-05-27 14:47:1064791검색

一:不同空格符合的区别

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

  •    半角的空格 

  •    全角的空格

详细的含义:

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

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

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

二:使用场景

对于  在一些中文排版对齐方面可以使用,如下html代码:

<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>

实现的效果如图所示:

值得注意的是:上面的空白字符中文对齐方法在IE6下不能完全兼容。(现在谁还在兼容IE6呢,所以还是非常有用的。)

三:空格新成员&#x3000

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

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

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

  • web字符,&<a href="http://www.php.cn/wiki/1297.html" target="_blank">copy</a>;

  • charCode表示:&#xa9;

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

  • &ensp; → &#x2<a href="http://www.php.cn/code/3792.html" target="_blank">002</a>;

  • &emsp; → &#x2003;

字符使用技巧:

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

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

  • &#x6211;

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

  • \6211, 如.xxx<a href="http://www.php.cn/wiki/977.html" target="_blank">:before</a> { content: '\6211'; }

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

.half:before { content: &#39;\2002&#39;; speak: none; }.full:before { content: &#39;\2003&#39;; speak: none; }

html代码:

<ul>
    <li class="li">姓<span class="full"></span><span class="full"></span>名:<input type="text" /></li>
    <li class="li">手<span class="half"></span>机<span class="half"></span>号:<input type="text" /></li>
    <li class="li">电子邮箱:<input type="text" /></li></ul>

css代码:

.half {
    *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#x2002;');}
    .full {
    *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#x2003;');}
    .half:before { content: &#39;\2002&#39;; speak: none; }.full:before { content: &#39;\2003&#39;; speak: none; }

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

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

html代码:

<p id="tt" style="color:blue;">这里是来检测style,currentStyle,runtimeStyle的区别</p>

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=”…”),而无法获取定义在9a6c6593cd224a767d2b5172bc71b53a里面的属性。

IE中使用的是obj.currentStyle方法,而FF是用的是getComputedStyle 方法 。

"DOM2 수준 스타일"은 document.defaultView를 향상하고 getComputeStyle() 메서드를 제공합니다. 이 메소드는 두 개의 매개변수, 즉 계산된 스타일을 가져오는 요소와 의사 요소 string(예: ":after")을 허용합니다. 의사 요소 정보가 필요하지 않은 경우 두 번째 매개변수는 null일 수 있습니다. getComputerStyle() 메서드는 현재 요소에 대해 계산된 모든 스타일을 포함하는 CSSStyleDeclaration 객체를 반환합니다.

구문은 다음과 같습니다. document.defaultView.getCompulatedStyle('element', 'pseudo-class') IE9 이상에서는 이 쓰기 방법을 지원하지만 IE8 이하는 지원하지 않습니다.

요약하자면:

document.defaultView.getCompulatedStyle()을 통해 배경색을 가져옵니다. 브라우저마다 다른 결과가 표시될 수 있습니다. 모든 색상이 RGB 형식으로 반환될 수도 있고 색상 값일 수도 있습니다.

IE에서 currentStyle 메서드를 통해 얻은 색상 값은 색상을 RGB 형식으로 변환하지 않습니다.

위 내용은 HTML의 공백 기호(nbsp; ensp; emsp;) 소개 및 중국어 정렬 구현 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.