注册本站  论坛  繁體中文

电脑技巧
手机 | MP3 | MP4 | 显卡 | 主板 | 显示器 | 光存储 | 笔记本 | 网络设备 | 移动存储 | 数码相机
键鼠 | CPU | 音箱 | GPS | 电视 | 服务器 | 投影机 | 机箱电源 | 品牌电脑 | 办公打印 |
| 网站首页 | Cisco | Windows | Linux | Java | Dotnet | Oracle | 网页设计 | 平面设计 | 安全 | 软件应用 | 电脑维修 | 办公维修 |
您现在的位置: 电脑技巧 >> 网页设计 >> HTML >> 网页设计正文

用CSS控制IE下中英文字体显示对齐

文章来源:中国IT实验室收集整理 作者:佚名 更新时间:2008-8-23 15:38:59 【 】 【加入收藏
  进入网络咨询平台

这是一个不太引人注意的问题,在IE浏览器下面中英文字体混排的时候,常常会出现不对齐的情况。
 如图1所示,在IE下当一行文字同时有英文跟中文的时候,链接下划线就会发生折行,也就表示这个时候中英文是没有对齐的!(FIREFOX不受此问题影响)

图1 IE浏览器下面中英文不对齐
图1 IE浏览器下面中英文不对齐

    经过测试,默认的直接在页面里设置链接的时候是不会出现这个情况,如图2!

图2 IE
图2 IE浏览器下面中英文对齐

    那么疑惑又来了,是什么导致了中英文偏差呢?!解决办法又是什么呢?!于是经过我测试发现两种情况(当然有可能有更多导致的情况。你们可以自己去尝试),当中英文对象的相邻元素拥有vertical-align属性设置(比如前面一张小图片,或者文本框,我们需要把他们垂直对齐,一般都会给图片,文本框(其他任意内联块元素)设置vertical-align:middle;来实现)的时候,那么就会影响到中英文的不对齐。

    还有一种情况就是父元素(表格除外)拥有vertical-align属性设置的时候,里面的子元素中英文也会对不齐。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Test</title>
<style type="text/css">
* { margin:0; padding:0; }
html { background:#fff; }
body { position:relative; font:12px/1.6em Verdana, Lucida, Arial, Helvetica, 宋体,sans-serif; color:#333; }
</style>
</head>
<body>
<div style="vertical-align:middle;">
<a href="">为什么我老是对不齐呢?why??</a>
</div>
</body>
</html>

    怎么解决这个问题呢?!

    先说第一种,就是临近元素的vertical-middle导致的无法对齐的偏差问题解决方案:

    给中英文对象加一个zoom:1触发它的haslayout,通过研究发现一旦它有了haslayout之后,中英文就不会对不齐。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Test</title>
<style type="text/css">
* { margin:0; padding:0; }
html { background:#fff; }
body { position:relative; font:12px/1.6em Verdana, Lucida, Arial, Helvetica, 宋体,sans-serif; color:#333; }
</style>
</head>
<body>
<div>
<a href="" style="zoom:1;">为什么我老是对不齐呢?why??</a>
</div>
</body>
</html>

    第二种情况就是父元素的vertical-middle导致的无法对齐的偏差问题解决方案:

    给中英文对象加句vertical-align:baseline就可以解决!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Test</title>
<style type="text/css">
* { margin:0; padding:0; }
html { background:#fff; }
body { position:relative; font:12px/1.6em Verdana, Lucida, Arial, Helvetica, 宋体,sans-serif; color:#333; }
</style>
</head>
<body>
<div style="vertical-align:middle;">
<a href="" style="vertical-align:baseline;">为什么我老是对不齐呢?why??</a>
</div>
</body>
</html>

    但是我们可以看到,下划线好像贴的过紧,这个时候我们依然还需要给它加句zoom:1;触发它的hasLayout来避免过紧贴合!。
<a href="" style="zoom:1;"vertical-align:baseline;">为什么我老是对不齐呢?why??</a>

    如果您碰到其他情况的中英文对不齐的情况,那么也可以尝试使用上述两种方法来解决。当然最保险最有效的莫过于就是直接中英文都统一使用宋体。

  • 上一篇网页设计:

  • 下一篇网页设计:
  • 最 新 热 门
     Flash技巧:用内置组件控制Flv视频!
     FLASH动画制作常用命令大集合
     在Excel中插入Flash动画技巧一则!
     flash动画也能设为桌面
     Flash中如何简单使用钢笔铅笔教程
     Flash制作“小丑吹泡泡”趣味动画
     Flash实战:制作国宝熊猫举重动画
     Flash制作可爱“小青蛙时钟”动画
     Flash实例教程:制作无脚本软翻书动画
     粒子动画效果轻松做
    最 新 推 荐
     CSS+DIV标签命名规范
     轻松制作HTML网页的八条强大技巧
     网页制作:细边框表格的实现方法!
     用CSS控制IE下中英文字体显示对齐
     网站通过W3C CSS标准的一些经验
     三款符合标准的Tab选项卡源代码
     CSS一些常见的技巧分享
     简化CSS属性代码,让你的CSS更精简清晰
     CSS如何实现让图片垂直居中
     html语法详解
    相 关 文 章

    Flash CS3:FLV视频短片我来做!
    CSS+DIV标签命名规范
    网站通过W3C CSS标准的一些经验
    CSS一些常见的技巧分享
    简化CSS属性代码,让你的CSS更精简清晰
    CSS如何实现让图片垂直居中
    网页制作了解什么是CSS hack?
    用CSS实现文字环绕图片的效果
    CSS打造阴影文字
    CSS打造兼容IE与Firefox的透明DIV提示框

    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告

     

    Copyright 2006-2008 pcjx.com All Rights Reserved
    电脑技巧 版权所有 粤ICP备06059145号 地图
    本网站所有内容未经许可不得转载或做其他使用