jQuery:设置 css 最小高度时获取元素(或其子元素)的实际高度?

标签 jquery html css height

我有一个包含多个元素的 div.boxes,一个图像,两个文本框和一个链接。 div.box 中的元素是动态填充的,因此它可以是多行文本或更大或更小的图像。无论如何,我正在将 min-height:210px; 应用于此 div.boxes。

210px 是其中元素的最大高度。我的页面布局实际上取决于这个 210px 的值,所以它不能更高。

但是它可以小于这个 210px,所以我想使用 jQuery 来检索元素的实际高度(如果没有设置最小高度)?

这可能吗?所以现在,如果我尝试执行 $("div.box").height(),它将始终返回 210px,因为这是元素的高度。如果不设置此最小高度 css 值,我如何获得高度?我是否必须获取每个 child 的高度,然后将它们相加?

提前谢谢你......

编辑:这有点复杂。我使用最小高度是因为我有一个网格布局,其中 4 个 div.boxes 并排放置。有多行。如果我不使用 min-height 值并且其中一个框小于其他框,则下一行框将跳出网格并对齐到上一行最高的 div 框(div 框是 float 的)

我试图用 jQuery 解决这个问题的原因是,我想始终将一行的 div-box 高度设置为该行中最高的框。这在某种程度上可以理解吗?

所以现在所有的 div-boxes 都是 min-height:210px 这意味着所有的盒子都有相同的高度。正如我所说,它是一个盒子网格,例如4x4 左右。现在网格非常完美,因为所有的盒子都有相同的高度。然而想象一下第一行的所有框都有一个小图像,一行文本不会填充 div-box 高度的 210px。因此,第一行框与第二行框之间的间隙在视觉上看起来不太好 - 间距太大。

这就是我想要找出一个 div.box 的实际高度的原因,这样我就可以始终将最大值应用于一组四个框。所以所有的行都会有各自的高度……

如果没有样本,我猜没人能理解 :)

编辑编辑: 或者实际上是否可以通过 css 对框的每个第 4 个元素应用一个 clear 左右?这将是解决方案

最佳答案

正如我在评论中所说,

如果你改变min-heightmax-height ,然后如果你这样做 .height()你会得到你想要的。

如何获取 top last child 的值(value)在div.box相对于 div.box并添加 last child's高度。

像这样的东西,

var $box = $('.box');

var lastChildPos = $(':last-child', $box).position();
var lastChildHeight = $(':last-child', $box).height();

alert(lastChildPos .top + lastChildHeight);

检查这个fiddle (已更新)。

关于jQuery:设置 css 最小高度时获取元素(或其子元素)的实际高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8277967/

相关文章:

html - 在 HTML 文档中包含其他页面

css - Spring 启动。一个文件捕获 CSS,另一个文件则不捕获

html - Bootstrap 4 视频嵌入无法正常工作

php - 当我尝试使用 Laravel Controller 方法处理 AJAX 请求时,为什么会出现此异常?

javascript - jQuery 翻转和 css :hover

jquery - 使用 jQuery 验证重新定位错误标签

javascript - 如何在html元素中打印选项值?

javascript - 扩展 jQuery 插件并更改默认值

html - 将图像推到卡外后,只显示一半

jquery - 如何通过更改 css 实现这样的滚动 div?