首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将CSS宽度分配给位置:固定元素

将CSS宽度分配给位置:固定元素
EN

Stack Overflow用户
提问于 2012-08-25 02:47:47
回答 2查看 12.9K关注 0票数 4

我想要一个固定元素的宽度与它下面的div的宽度相匹配。想象一个标题和一个主要内容div。当头和内容div嵌套在外部div中时,就会出现匹配其宽度的问题。在这个场景中,每个元素的%宽度不再匹配它们的父级宽度(例如,<body>标记),并且固定元素的宽度是基于一些让我感到困惑的东西。

为了更好地解释我的意思,对比一下这两个js小提琴:

  1. http://jsfiddle.net/2dudX/4/
  2. http://jsfiddle.net/2dudX/10/

以下是每个人的代码:

代码语言:javascript
复制
<div id="fixed"></div>
<div id="content"></div>​

#fixed{ position:fixed; z-index:2; width:90%;
        height:25px; background:yellow;}
#content{ width:90%; height:300px; background:red}

代码语言:javascript
复制
<div id="main">
   <div id="fixed"></div>
   <div id="content"></div>    
</div > 

#main{ width:95%}
#fixed{ position:fixed; z-index:2; width:90%;
        height:25px; background:yellow;}
#content{ width:90%; height:300px; background:red}

注意,只有在jsfiddle #1中,无论您如何调整浏览器大小,黄色和红色的div宽度都是匹配的。不幸的是,jsfiddle#2更像是一个真实的场景,我想知道如何纠正id="fixed" div,使其宽度与id="content" div匹配。

有什么想法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-25 02:54:19

您可以这样做:小提琴 (设置%相对于#main)固定元素的维度总是相对于根元素计算的,因此在需要设置的特殊情况下,需要重置%-unit:

代码语言:javascript
复制
#fixed {
    width: 85.5%;
}

在这种情况下,#main为95%,静态元素相对于主元素为90%。因此,您需要计算它对根元素的宽度(1 * .95 * .9 = .855)。

票数 5
EN

Stack Overflow用户

发布于 2012-08-25 02:57:52

放松点,我的朋友。固定宽度元素从父元素中拉出,现在相对于窗口的宽度,因此在这两种情况下,固定的div总是相对于窗口的大小,但是在宽度大于100%的父容器中,固定元素将保持相对于窗口宽度,但非固定位置元素现在相对于父元素的宽度。因此,非固定元素成为95%窗口的90%,而固定元素仅占窗口的90%。

编辑:

如果希望匹配宽度,可以像这样使用jquery:

代码语言:javascript
复制
$(function(){
    $('#fixed').width($('#content').outerWidth());
});
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12118739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档