基于其他元素's属性设置元素样式
Style an element based on other element's attribute
我有一个position:fixeddiv作为顶部菜单的容器。我希望下面的div,它是其余内容的容器,正好放在固定div之后,以避免内容被隐藏在顶部div之下,但也避免它们之间的某种"空白"。
基本的解决方法是设置一个固定的"margin-top"值,但我想知道是否有可能将内容容器"margin-top"值设置为使用CSS的固定顶部菜单div的高度,或者最好使用JavaScript?下面是基本的布局示例:<div id="divTopFixed" style="width: 100%; position: fixed; top: 0px;">Some DIVs<br>That create variable height</div>
<div style="margin-top: 40px; width:100%;">CONTENTS<br>...</div>
和一个JSFiddle: http://jsfiddle.net/zzcbajtz/
将margin-top
设置为固定值通常是正确的方法。
如果你不确定固定顶部菜单的高度,或者它会根据内容动态变化,你可以使用JavaScript/DOM事件来动态调整边距值(例如,如果菜单在调整窗口大小时改变了高度,你可以观察resize
事件并调整边距值)。
我已经更新了JSFiddle,以显示如何利用resize
事件并通过查询固定元素的offsetHeight
来设置页边距的示例:http://jsfiddle.net/zzcbajtz/2/
window.addEventListener('resize', (function resize(){
document.getElementById('the_div').style.marginTop =
document.getElementById('divTopFixed').offsetHeight + 'px';
return resize;
})());
此代码在加载文档时触发,然后在调整窗口大小时再次触发。
不幸的是,CSS不能为你计算像这样复杂的布局。将来会有一些更好的布局支持(但我认为即使这样也不能解决你在这里遇到的问题)。
相关文章:
- javascript来显示元素属性
- 自定义HTML元素属性未显示-Web组件
- 主元素属性?(或技术)
- 使用模板后,使用Angular获取元素属性值
- 如何从不同范围外的元素属性中获取求值表达式
- 可以't访问元素属性(如果已明确设置)
- 传递引用 jQuery 后无法访问元素属性
- 如何替换元素属性中的部分文本
- 添加新元素属性
- 如何使用jQuery访问父元素属性
- 使用jQuery.attr()方法获取元素属性
- 修改时,哪些DOM元素属性会导致浏览器执行回流操作
- Javascript数据将元素属性绑定到URL中的锚href
- 初始化可从元素属性值观察到的Knockout
- 获取内联样式中的元素属性
- 如何在 html 元素属性中使用 Angular 2 外推法
- 将元素属性与 javascript 折叠方法结合使用时,引导折叠无法正常工作
- 如何观察聚合物元素属性值从索引.html的变化
- 使用 JavaScript 修改 DOM 元素属性
- 聚合物节点到元素属性