解决浏览器的等宽空格CSS问题方法

zhangziw8899

zhangziw8899

2016-02-19 19:50

今天天气好晴朗处处好风光,好天气好开始,图老师又来和大家分享啦。下面给大家推荐解决浏览器的等宽空格CSS问题方法,希望大家看完后也有个好心情,快快行动吧!

  很多时候,希望能够在 HTML 中使用空格排版。但浏览器在解析 HTML 时,会把连续的空格解析成一个,所以我们会使用  等这样的占位符。

  但是   也不是很可靠,比如空格间距非常大,那么我们必须增加多个占位符,同时页面的体积会变得非常大。

  同时,注意到 Safari 中的   宽度是已设定字符的空格宽度(Safari 的默认字体为 Times),也就是说一个中文字符需要两个占位符。

  其实,这不是 Safari 的问题,而是字体的问题。解决的方式就是使用下面的属性

  font-family: '宋体';将 Safari 的默认字体设置成“宋体”等中英文等宽的字体,就能解决。Windows 版本的 Safari 字体设置,需要直接使用中文“宋体”这样的名称而不是“Simsun”(了解原因的兄弟请告诉我)。

  但至此,我们的根本目标没有解决,就是能否避免使用   这样的占位符,而使用“原生”的空格。考虑针对空白的相应 CSS 属性,具体了解有关 white-space 的用法,接下来就比较好处理了。

  总结下使用 white-space 实现等宽空格的条件,有两个。需要设置对应的属性

  white-space: pre;

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

  然后设置等宽字符(包括等宽空格)即可。综合起来,就是这样

  font-family: '宋体', Simsun;

  white-space: pre;

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

  由于使用了中文 CSS 名称,所以在实际使用中需要考虑样式的字符编码问题。同时,需要额外考虑的是,苹果机是否有“宋体”(或者其他等宽的字体),有苹果机的兄弟请帮忙测试下。

  提供的另外一个思路,就是使用 em 单位。1em 简单的说,就可以认为是一个字符宽度;同理,.5em 就是半个字符。那么,上面的情况就可以使用这样写。

  <span买<ins class="half-word"</ins宝<ins class="half-word"</ins贝:</span<br /

  <span我的淘宝:</span<br /

  <span社<ins class="two-word"</ins区:</span<br /

  对应的 CSS 应为

  .half-word {width: .5em;}

  .two-word{width:2em;}

  经测试通过。

  针对这上述的两种不同方法,个人认为应当按照实际情况考虑采用。比如第一种方法,虽然依赖具体的等宽字体,但没有添加其他额外的结构,对于以后的维护会更加的方便;第二种方法,则更多的考虑了实际的应用情况(同时也不用依赖具体的等宽字体),但是也添加了额外的结构。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

  所以,如考虑到以后的可维护性,同时“语义”的角度上分析,推崇第一种做法。而实际的应用情况下,同时需要应用比较复杂时,个人会选用第二种。

展开更多 50%)
分享

猜你喜欢

解决浏览器的等宽空格CSS问题方法

Web开发
解决浏览器的等宽空格CSS问题方法

CSS解决浏览器的等宽空格问题

Web开发
CSS解决浏览器的等宽空格问题

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

CSS 浏览器的等宽空格

Web开发
CSS 浏览器的等宽空格

DIV CSS布局浏览器兼容的问题

Web开发
DIV CSS布局浏览器兼容的问题

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

FireFox浏览器和IE浏览器下CSS兼容问题

Web开发
FireFox浏览器和IE浏览器下CSS兼容问题

浏览器不能正常解析CSS代码的解决

Web开发
浏览器不能正常解析CSS代码的解决

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

MYSQL中怎样设列的默认值为Now()的介绍

MYSQL中怎样设列的默认值为Now()的介绍

你幸福地呐么耀眼、我却只能卑微着祈祷

你幸福地呐么耀眼、我却只能卑微着祈祷
下拉加载更多内容 ↓