zoukankan      html  css  js  c++  java
  • HTML空格符号 nbsp; ensp; emsp; 介绍以及实现中文对齐的方法

    一:不同空格符合的区别

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

    详细的含义:

     :这是我们使用最多的空格,也就是按下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字符,&copy;
    • charCode表示:&#xa9;

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

    • &ensp; → &#x2002;
    • &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:before { content: '6211'; }

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

    .half:before { content: '2002'; speak: none; }
    .full:before { content: '2003'; 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: '2002'; speak: none; }
    .full:before { content: '2003'; speak: none; }

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

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

    html代码:

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

    js代码:

    var myDiv = document.getElementById("tt");
    myDiv.runtimeStyle.color="black"; 
    console.log(myDiv.currentStyle.color);  //black
    console.log(myDiv.runtimeStyle.color);  //black
    console.log(document.defaultView.getComputedStyle(myDiv, null).color); //rgb(0, 0, 0)
    console.log(myDiv.style.color);         //blue

    说明一下:

    obj.style:这个方法只能JS只能获取写在html标签中的写在style属性中的值(style=”…”),而无法获取定义在<style type="text/css">里面的属性。

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

    “DOM2级样式”增强了document.defaultView,提供了getComputedStyle()方法。这个方法接受两个参数:要取得计算样式的元素和一个伪元素字符串(例如“:after”)。如果不需要伪元素信息,第二个参数可以是null。getComputerStyle()方法返回一个CSSStyleDeclaration对象,其中包含当前元素的所有计算的样式。

    其语法为:document.defaultView.getComputedStyle('元素', '伪类');IE9及以上支持该写法,IE8以及以下不支持。

    总结一下:

    通过document.defaultView.getComputedStyle()得到背景色,不同浏览器得到的不一样,可能会返回将所有颜色转换成RGB格式,也可能是颜色值。

    IE通过currentStyle方法得到的颜色值没有将颜色转化成RGB格式。

    详细了解:《js中使用document.defaultView.getComputedStyle()、currentStyle()方法获取CSS属性值》

    参考地址:

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

    CSS 听觉参考手册

    web页面相关的一些常见可用字符介绍

  • 相关阅读:
    在VMWare中增加Linux文件系统空间
    linux shell 字符串操作(长度,查找,替换)详解
    linux chmod命令参数及用法详解文件文件夹权限设定命令
    Linux分割日志计划任务(原创)
    写日志C#程序
    2011年底,数家大型网站数据库被窃取分析报告(原创)
    ThinkPad SL400全驱动
    东辰信竞学子——从今天开始重新出发!
    CentOS7下安装mysql8027
    arcgis基础
  • 原文地址:https://www.cnblogs.com/moqiutao/p/6828263.html
Copyright © 2011-2022 走看看