css - 带填充的边框框 div 上的最大高度未设置

标签 css

当用户缩放他的窗口时,我们在填充上使用百分比技巧来保持纵横比与 div 的比例。像这样:

.div {
    background: red;
    width: 80%;
    margin: 0 auto 10px;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    padding-bottom: 20%;
}

现在我们希望能够为这个 div 设置最大高度。因为 div 的高度是由 div 上的填充决定的,所以我们需要将 div 加边框。到目前为止,一切都很好。当尝试在 div 上使用最小高度时,这有效。但是,由于某些原因,此 div 上的最大高度不起作用。

.div {
    max-height: 60px;
}

我创建了一个 fiddle 来向您展示我的意思:http://jsfiddle.net/UxuEB/3/ .

在 Chrome、FF 和 IE 上测试过。有人可以告诉我我做错了什么或者为什么这不能按预期工作吗?

最佳答案

我意识到这个答案来得太晚了,但我今天试图解决同样的问题,这个问题是谷歌的第一个结果。我最终用下面的代码解决了这个问题,希望将来能帮助别人。

首先,添加一个额外的内部div:

<div class="control control-max-height">
  <div class="control-max-height-inner">
    Max-height
  </div>
</div>

并在其上设置填充,同时隐藏外部 div 上的溢出:

.control {
    background: red;
    width: 80%;
    margin: 0 auto 10px;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

.control-max-height {
    max-height: 120px;
    overflow: hidden;
}

.control-max-height-inner {
    padding-bottom: 20%;
}

这显然假设您可以在溢出时隐藏部分内部元素。在我的例子中,这不是问题,因为内部元素只是一个空的链接元素,使整个元素都可以点击,而外部元素只有一个居中的背景图像和一个边框集。

参见 fiddle :http://jsfiddle.net/UxuEB/7/

关于css - 带填充的边框框 div 上的最大高度未设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21750091/

相关文章:

css - 修复新闻标题标题/图片

html - 不知道标题高度的CSS高度100%

javascript - Materialise Datepicker - 选择一个范围

css - 居中问题

css - 选择最后一个直接 child

css - 管理父>子悬停CSS上的事件

jquery - 悬停时淡入/淡出

css - `page-break-after: avoid` 当边距发生中断时

javascript - 我需要有人来 ELI5 这个 Skrollr.js 功能

css - Bootstrap 布局导航栏和菜单