• 技术文章 >web前端 >html教程

    IE下中英文字体下划线对齐问题

    巴扎黑巴扎黑2017-08-21 12:01:58原创724
    首先描述一下问题:如图所示,在IE下当一行文字同时有英文跟中文的时候,链接下划线就会发生折行,也就表示这个时候中英文是没有对齐的!(FIREFOX不受此问题影响)

    l02x210362db.jpg

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

    代码

    <!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>php中文网</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="//m.sbmmt.com" id="aa" title="php中文网"><img src="http://i.mtime.cn/20080731114455/images/logo_main.png" 
       style="vertical-align:middle;" alt="php中文网" />
       </a> 
       <a href="">为什么我老是对不齐呢?why??</a> 
      </div>  
     </body>
    </html>

    l02x210362db.jpg

      那么疑惑又来了,是什么导致了中英文偏差呢?!解决办法又是什么呢?!于是经过我测试发现两种情况(当然有可能有更多导致的情况。你们可以自己去尝试),当中英文对象的相邻元素拥有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>php中文网</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="//m.sbmmt.com" id="aa" title="php中文网"><img src="http://i.mtime.cn/20080731114455/images/logo_main.png" alt="php中文网" /></a> 
       <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>php中文网</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="//m.sbmmt.com" id="aa" title="php中文网">
       <img src="http://i.mtime.cn/20080731114455/images/logo_main.png" style="vertical-align:middle;" alt="php中文网" /></a> 
       <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>php中文网</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="//m.sbmmt.com" id="aa" title="php中文网"><img src="http://i.mtime.cn/20080731114455/images/logo_main.png" alt="php中文网" /></a> 
       <a href="" style="vertical-align:baseline;">为什么我老是对不齐呢?why??</a> 
      </div>  
     </body>
    </html>

      但是我们可以看到,下划线好像贴的过紧,这个时候我们依然还需要给它加句zoom:1;触发它的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>php中文网</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="//m.sbmmt.com" id="aa" title="php中文网"><img src="http://i.mtime.cn/20080731114455/images/logo_main.png" alt="php中文网" /></a> 
       <a href="" style="zoom:1; vertical-align:baseline;">为什么我老是对不齐呢?why??</a> 
      </div>  
     </body>
    </html>

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

    以上就是IE下中英文字体下划线对齐问题的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:中英文 下划线 ie
    上一篇:html中不常用的标签总结 下一篇:9天学会html+css+bootstrap视频资料分享
    Web大前端开发直播班

    相关文章推荐

    • html5元素的分类有哪些• web前端笔试题库之HTML篇• Web 开发精华文章集锦(jQuery、HTML5、CSS3)【系列二十七】_html/css_WEB-ITnose• HTML中meta标签作用及属性总结_html/css_WEB-ITnose• CSS一个效果处理不来 请大家帮下忙_html/css_WEB-ITnose

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网