html - 在纯 CSS、Stylus 或 Nib 中获取另一个元素的高度

标签 html css stylesheet stylus

我想用CSS实现一个导航栏

HTML

<nav>
    Navbar content
</nav>
<div id="mainContent">
    Main page
</div>

CSS

nav {
    position:fixed;
    height: X%;
    min-height: Ypx;
}

#mainContent {
    margin-top: Z; // where Z is the height of nav which is either X% or Ypx
}

我知道一个解决方案是使用 jQuery 但现在我正在学习纯 CSS 并计划继续使用 Stylus meteor 中的 Nib.... SO... 是否有类似 CSS 的解决方案?

即使需要 Stylus,您能否在“样式表”中进行一些计算以获得其他元素的高度?

最佳答案

首先,计算屏幕的高度(以像素为单位),min-height : Ypx; 有效。

如果屏幕高度 H<((Y*100)/X)px 则 min-height 将是导航栏的高度。

所以,制定规则,

#mainContent { 上边距:X%;}

还有

`@media screen and (max-height:Hpx) {
#mainContent {
                 margin-top: Ypx;
             }
}

其中 Hpx 等于先前计算的值 ((Y*100)/X)px。

因此,通常 margin-top 将是 X% ,但如果屏幕高度低于 Hpx 触发 min-height ,@media 规则将被触发,使 margin-top 等于 Ypx。

关于html - 在纯 CSS、Stylus 或 Nib 中获取另一个元素的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23051794/

相关文章:

javascript - 绑定(bind)两个输入,以便它们显示相同的文本,即使其中之一仅使用 native JS 进行了更改

html - 如何在多级弹出菜单中的某些级别上启用垂直滚动

android - 简单的 css 媒体查询不起作用

javascript - 从 javascript [Firefox/XUL] 更改 CSS 类内容

javascript - 如何选择然后取消选择区域?

android - 如何根据分辨率计算元素的大小?

html - 如何使用 css 以特定颜色显示 Rhandsontable 中的特定列标题?

html - td 和 th 边界越过表格边界

php - 使用 MIME 类型 text/html 传输的样式表

css - 样式表上的 Grails NumberFormatException