CSS字体大小的破坏位置

时间:2014-03-21 12:17:26

标签: html css position alignment font-size

我有两个相当不相关的元素,.menu.content_selection_button。将它们联系在一起的唯一事情是它们都在同一<li>内的<ul>元素内,除了它们没有任何共享。然而,由于某种原因,当我更改.content_selection_button的字体大小时,它会影响菜单的垂直位置。我遇到了类似的问题here。为什么font-size破坏了我的位置,我该如何阻止它呢?

JSFIDDLE

字体大小10

Font Size 10

字体大小25

Font Size 25

菜单CSS

.menu {
    display: inline-block;
    background-color:lightblue;
    margin: 1px;
    padding: 2px;
    box-sizing: border-box;
    border-radius:5px;
}

内容选择按钮CSS

.content_selection_button{
    font-size: 10px;
    box-sizing: border-box;
    border-radius:5px;
}

HTML

<ul class="t_inject_container">
    <li class="t_inject_row">
        <ul class="menu">
            <li id="LI_4">
                <button class="add_button t_intect_button">
                    +
                </button>
            </li>
            <li>
                <button class="minimize_button t_intect_button">
                    m
                </button>
            </li>
        </ul>
    </li>
    <li>
        <ul class="content_selection_container">
            <li>
                <form name="search_form" class="search_form">
                    <input type="text" name="search_input" class="search_bar" />
                    <input type="submit" value="" class="search_button" name="search_button" />
                </form>
            </li>
            <li id="LI_14">
                <button class="content_selection_button">
                    My Timeline
                </button>
            </li>
            <li>
                <button class="content_selection_button">
                    relevent
                </button>
            </li>
            <li>
                <button class="content_selection_button">
                    mentions
                </button>
            </li>
        </ul>
    </li>
</ul>

2 个答案:

答案 0 :(得分:1)

你的主要元素是高度为150px,LI高度为25%。所以大约37.5px。由于字体大小的增加,高度不会增加,但会影响计算的行高,行高会增加,将文本推到按钮的中心轴下方。

答案 1 :(得分:1)

我暗示使用内嵌块元素的底部垂直对齐可以解决对齐问题。 通过重新标记标记和CSS来简化UI,可以避免这种情况。

[ELEMENT] {
  vertical-align: text-bottom;
}