html - 如何防止显示 :table-cell elements from floating?

标签 html css

我有一个 li's 列表,它具有 display:table-cell 属性,以便垂直居中里面的文本。我不能为此使用额外的标记。我不能使用 line-height,因为可能有多行文本。

当我将 li 的 赋予 display:table-cell 属性时,它们 float 彼此相邻。

我怎样才能强制它们在彼此下方,就像它们使用 display:block 时那样? 或者我不能?

http://jsbin.com/orijam/1/edit

li {
  height:50px;
  border:solid black;
  vertical-align:middle;
  min-width:100px;
  display:table-cell;
}
ul {
  border:solid red;
  width:100px;
  display:inline-block;
}

最佳答案

li:s 设置为 table-row 并将 table-cell 样式移动到您的 a元素(假设你有一个 ul li a 设置) (写在手机上)

编辑:http://jsfiddle.net/Z7Sgg/

Edit2:如果您缺少 a:s,您可以使用 JS 添加它们(或 span):

$(function () {
    $('#menu li').wrapInner('<span></span>');
});

关于html - 如何防止显示 :table-cell elements from floating?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16646025/

相关文章:

html - 当我将鼠标移到标题链接上时,不需要的下划线出现在标题链接上

javascript - 在 HTML 文档中插入 JavaScript 的最佳位置

javascript - CSS 使用媒体查询(或 jQuery)将所有元素的宽度加倍

javascript - 如何获取 HTML5 textarea 的字符串表示形式,将换行符转换为换行符?

css - 如何防止 Safari 更改样式?

html - div 的 float 内容

html - 将图像放在另一个图像上

forms - 在 Opera 11 中使用 HTML5 客户端表单验证时如何防止表单提交?

html - 水平滚动 div 的垂直居中

javascript - 垂直光滑的旋转木马箭头