【问题标题】:Vertically align sans-serif font precisely using jquery/css使用 jquery/css 垂直对齐无衬线字体
【发布时间】:2014-06-27 05:23:54
【问题描述】:

我正在尝试将无衬线标题与其他 div 元素中的菜单元素精确对齐,所以基本上是这样的:

标题
甲乙丙

其中 A 与 Header 的左端对齐,C 与右端对齐。我使用 float 来分配 -Elements 并计算字体大小以使标题适合 div 宽度。问题是我使用的是无衬线字体。问题在小提琴中演示

http://jsfiddle.net/ksuTQ/2/

<div id="Hideheader" class="Header" style="position: absolute;font-size:40pt;padding:0px;visibility: hidden;width:auto;height:auto;">HEADER</div>
<div id="header" class="Header">HEADER</div>
<div id="menubar" class="menubar">
    <div class="menubutton_left"><a href="#" id="WorkButton">A</a>
    </div>
    <div class="menubutton_middle"><a href="#" id="AboutButton">B</a>
    </div>
    <div class="menubutton_right"><a href="#" id="ContactButton">C</a>
    </div>  <span class="stretch"></span>

</div>

脚本

resizeHead("#Hideheader", "#header");

function resizeHead(p1, p2) {
    var fontsize = parseFloat($(p1).css("font-size"));
    var spacing = parseFloat($(p1).css("letter-spacing"));
    var initWidth = $(p1).width();
    initWidth = initWidth - spacing;
    var outWidth = $(p2).width();

    var s = outWidth / initWidth;
    s = fontsize * s;
    $(p2).css({
        "font-size": s
    });
}

CSS

div.Header {
    font-family:sans-serif;
    text-align:justify;
    white-space: nowrap;
}
div.menubar {
    text-align: justify;
    -ms-text-justify: distribute-all-lines;
    text-justify: distribute-all-lines;
    margin-bottom: 0px;
    position: relative;
}
div.menubutton_left, div.menubutton_middle, div.menubutton_right {
    vertical-align: top;
    display: inline-block;
    *display: inline;
    zoom: 1;
    width:60px;
}
div.menubutton_left {
}
div.menubutton_middle {
    text-align: center;
}
div.menubutton_right {
    text-align: right;
}
.stretch {
    border: 2px dashed #444;
    width: 100%;
    display: inline-block;
    font-size: 0;
    line-height: 0
}

对于无衬线字体,如何将 A 的开头与标题的 H 对齐?

【问题讨论】:

  • 字母“H”未与“A”对齐。这是你的问题吗?
  • 是的,简而言之:)

标签: javascript jquery html css fonts


【解决方案1】:

您可以将margin-left:12px 添加到左侧菜单按钮 div。

见Demo

【讨论】:

  • 但这会修复它。有什么方法可以计算出 12px 的距离吗?因为这个距离也会改变窗口大小...
  • 无论你的屏幕尺寸是多少..A总是在H之下。你可以通过移动输出窗口的大小来尝试它。
  • 是的,它在它下面,没错。我正在寻找或让它与上面的 H 对齐,即使我更改了标题的字体大小
  • 好的,我会接受这个并重新打开另一个问题来说明我的问题。感谢您的帮助
猜你喜欢
  • 2014-08-18
  • 1970-01-01
  • 1970-01-01
  • 2011-07-21
  • 2015-09-06
  • 2011-10-03
  • 1970-01-01
相关资源
最近更新 更多