css - CSS 中有没有一种方法可以获取元素的高度(或其他属性)并与其他元素的属性共享相同的值?

标签 css frontend

<分区>

例如,我有一个固定在页面顶部的导航栏(就像 Stackoverflow 上的导航栏一样)。

因此,body 的 padding-top 应该设置为导航栏的确切高度。

但是,这个导航栏的高度会不时变化,所以我不能依赖像 70px 这样的绝对值来分配给 body 的 padding-top 值。

所以,我正在寻找的是一种纯 CSS 的方法来确保此 padding-top 始终具有相同的值。

我也不能使用 var(),因为我事先不知道导航栏的最终高度。

谢谢。

最佳答案

你可以使用 javascript 而不是 css 来做到这一点,但无论如何,@Michael B 说可能还有其他方法。

使用 javascript 你可以做:

var nav = document.getElementById("navigationID");
console.log(nav.clientHeight); 
// nav.clientHeight will return integer value of your navigation height.

var nav = document.getElementById("navigationID");
var container = document.getElementById("container");

container.style.paddingTop = nav.clientHeight + "px";
#navigationID
{
  color:#000;
  height:70px;
  width:100%;
  border:4px solid green;
  display:block;
  position:absolute;
}

#container{
  border:1px solid red;
  display:block;
  width:100%;
  height:400px;
  position:relative;
}
<html>
<head>

</head>
<body>
<div id="navigationID"> navigation </div>
<div id="container">
    container
</div>
</body>
</html>

关于css - CSS 中有没有一种方法可以获取元素的高度(或其他属性)并与其他元素的属性共享相同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46941387/

上一篇:css - .Net bundler 在遇到加号时会去除空格?

下一篇:html - 部分 div 未显示

相关文章:

angular - 如何更改 Angular Material 排序图标

html - 无法从高度为 100% 的 Flexbox 列中删除意外的反向缩进

ipad - 根据 iPad 的方向更改 html5 视频标签的 src

css - 水平对齐位置 :relative divs (CSS)

javascript - 如何在html中更改工具提示(div的标题)背景颜色

html - 将 youtube 视频包装在静态图像 "frame"中并保持响应式调整大小

jquery - 自动化功能脚本

javascript - Angular 无法读取未定义的属性 'Version'

javascript - 交换 img src 或显示/隐藏多个图像是否更快?

javascript - webpack开发服务器不是在内存中生成bundle.js吗?