html - 如何在内联表中应用垂直对齐

标签 html css

如问题 :) 我想将我的文本在链接内垂直居中。我试图在没有 srcipt 的情况下处理这个问题,但我的想法不起作用。另外,我不想失去“a”元素的 100% 高度。预先感谢您解决我的问题的任何方法。我正在使用 twitter bootstrap 3

        .navbar-wrapper {

            position: absolute;
            top: 0;
            right: 0;
            left: 0;
            z-index: 20;
        }

        .navbar .navbar-nav {

            display: block;
            float: none;
        }

        .navbar .navbar-nav > li {

            display: table-cell;
            float: none;    
        }

        .navbar .navbar-nav > li > a {

            display: inline-table;
            height: 100%;
        }  


        /*.navbar .navbar-nav > li > a > span {

            vertical-align: middle;

        } */ 

和 html:

    <div class="navbar-wrapper">
        <div class="container">
            <div class="navbar navbar-inverse navbar-static-top" role="navigation">
                <div class="container">
                    <div class="navbar-header">
                        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                            <span class="sr-only">Toggle navigation</span>
                            <span class="icon-bar"></span>
                            <span class="icon-bar"></span>
                            <span class="icon-bar"></span>
                        </button>
                        <a class="navbar-brand" href="#">Project name</a>
                    </div>
                    <div class="navbar-collapse collapse">
                        <ul class="nav navbar-nav text-center">
                            <li><a href="#"><span>level 1 line 1<br />line 2</span></a></li>
                            <li class="active"><a href="#about"><span>level 1</span></a></li>
                            <li><a href="#contact"><span>level 1 line 1<br />line 2</span></a></li>
                            <li class="dropdown">
                                <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>
                                <ul class="dropdown-menu dropdown-menu-first-level" role="menu">
                                    <li><a href="#">Action</a></li>
                                    <li><a href="#">Another action</a></li>
                                    <li><a href="#">Something else here</a></li>
                                    <li><a href="#">Separated link</a></li>
                                    <li><a href="#">One more separated link</a></li>
                                </ul>
                            </li> 
                        </ul> 
                    </div>
                </div>
            </div>
        </div>
    </div>

最佳答案

a 元素上设置 display:block,而不是 display: inline-table;

.navbar .navbar-nav > li > a {
   display: block;
   height: 100%;
}

Updated FIDDLE

注意:如果出于某种原因你需要在 a 元素上设置 display: inline-table;,那么

只需确保表的直接子代具有以下规则:

1) 显示:表格单元格; 2) vertical-align: middle;

在这种情况下:

.navbar .navbar-nav > li > a span {
    display: table-cell;
    vertical-align: middle;
}

FIDDLE

关于html - 如何在内联表中应用垂直对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25157920/

相关文章:

css - 复合透视与 CSS 3d 转换

css - 在 HTML/CSS 模板中查找图像的位置

php - Bootstrap 导航栏无法与 php 一起使用

javascript - 如何在包装器 div 的鼠标悬停时更改图像

html - 垂直滚动捕捉部分内的水平滚动捕捉部分,由于 ul 和 div 的原因,上方有空白空间

javascript - 在 Javascript 中验证多个表单

javascript - 从单个 HTML *字符串* 注册多个部分

jquery - 如何向网页添加固定侧边栏?

html - 类似边界的过渡导致内容移动

html - highchart center align tspan inside text 标签