如何在不影响宽度的情况下定位固定[重复]

Posted

技术标签:

【中文标题】如何在不影响宽度的情况下定位固定[重复]【英文标题】:How to position fixed without interfering with the width [duplicate] 【发布时间】:2013-10-28 07:21:44 【问题描述】:

想知道如何将我的#header 定位固定而不让它变宽。

我多次检查了我的代码,但似乎无法弄清楚是什么干扰了我的标题宽度。由于某种原因,它变得更宽并向下跳跃,而我之前给了它 70% 的宽度,以后不要在任何地方改变宽度。

如何将我的标题位置固定为正确的宽度:70% 并且不让它向下跳? 还有比我现在拥有的正确方法或更好的方法让我的“我的名字”和我的导航在#header中彼此相邻吗? #header 左侧是我的名字,右侧是导航栏。

html5:

    <body>
 <section id="Header" class="group">
  <header>
       <h2><a href="http://www.epicforever.com">My Name</a></h2>
  </header>
  <nav class="main">
   <ul class="group">
    <li class="active"><a href="#">Home</a></li>
    <li><a href="#">About</a></li>
        <li><a href="#">Contact</a></li>
       </ul>
  </nav>
     </section>

     <section id="TopContainer" class="group"> 
  <p>Welcome to my Portfolio</p>
  <p>Webdevelopment is my passion and I'd love to design and develop a website for you        
      sometime!</p>
      <div class="block1">
   <header><h2>Brand</2></header>
  </div>
  <div class="block2">
   <header><h2>Web</h2></header>
  </div>
  <div class="block3">
   <header><h2>Design</h2></header>
  </div>
  <aside><p>See all projects<a href="#">// brand // web // print</a></p></aside>
 </section>

CSS3:

html 
width: 100%;
    


body
background-image: url("img/bg.png");
font-family: arial, 'Lucida Sans Unicode';
font-size: 87.5%;
line-height: 15px;
color: #000305;
    

#Header, #TopContainer, #MidContainer, #AboutContainer, #ContactContainer
width: 70%;
margin: 0 auto;
    

#Header
padding: 0 10% 0 10%;
background-color: #fff;
margin-top: -8px;
position: fixed;
    

#Header header h2 
padding-top: 13px;
    

#Header nav
text-align: right;
    

#Header nav ul li
list-style: none;
display: inline-block;
padding: 5px;
    


#TopContainer
height: 150px;
padding: 0 10% 10% 10%;
background-color: #fff;
margin-top: 90px;  /* change this at the end*/

【问题讨论】:

我还没有找到解决方案,但是给 body 一个 1px 的边框可以解决问题。 我把css改成:#Header header h2 position: absolute;边距顶部:4px; #标题导航 文本对齐:右;位置:相对;但我想知道这是否是正确的处理方式。 【参考方案1】:

所以在花了 10 分钟之后,我看到你在给它一个固定位置之后没有在 #header 中指定顶部位置。

所以你的css应该是

#Header
    padding: 0 10% 0 10%;
    background-color: #fff;
    margin-top: -8px;
    position: fixed;
    top:0px;

这是小提琴 http://jsfiddle.net/mW5aS/1/

编辑: // 使标题和导航并排

你可以使用浮动属性。

#Header header
    padding-top: 13px;
    float:left;
    width:55%;

#Header nav 
    text-align: right;
    float:right;
    width:40%;

这是小提琴http://jsfiddle.net/mW5aS/2/

【讨论】:

感谢您的回答。但是,我希望右侧标题旁边的导航。我想在#header 和顶部的body 之间留出一些空间。我已经想通了 top:0px; ,但这会将#header粘贴到正文的顶部。我还希望导航与标题位于同一行。希望这能澄清一些事情。看看这个标题,,这是我想要重现的:ruthkelly.me @Brain 要并排获得它,您可以使用 float 属性并将 #header 向左浮动和 nav 向右...这是小提琴 jsfiddle.net/mW5aS/2 。让我知道这是否有帮助 Hey Ghost,我正在尝试使用 float 属性来完成它。但是是的,你是对的,在这种情况下,浮动属性确实是并排的。但是,如果我添加一个位置:固定到我的#header,整个#header 都会搞砸。它跳下来,变得更宽。它把我的整个身体推了一点。这就是我所拥有的并且需要让它与 position:fixed; #Header padding: 0 10% 0 10%; background-color: #fff; #Header header h2 position: absolute; margin-top: 4px; #Header nav text-align: right; position: relative; @Brain.. 你看到小提琴了吗(jsfiddle.net/mW5aS/2)。我添加了 position:fixed 到 #header 和 float 属性,标题似乎在正确的位置 Ghost,我复制/粘贴了您的代码,但它对我不起作用。我不希望标题粘在页面顶部。我想在页面顶部和我的#header 之间留一些空间。我试图在没有浮动属性的情况下实现这一点。固定位置正在工作,但#header 比预期的要宽。注意我的 css: html width: 100%;高度:100%; body 背景图片: url("img/bg.png"); font-family: arial, 'Lucida Sans Unicode';字体大小:87.5%;行高:15px;颜色:#000305;宽度:90%;高度:100%;保证金:1% 自动;

以上是关于如何在不影响宽度的情况下定位固定[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在不影响其兄弟位置的情况下将 div 绝对定位在弹性框中? [复制]

如何在不影响长度较小的数据的情况下减少html css中冗长数据的宽度?

如何在不改变高度的情况下让 SVG 具有流畅的宽度?

如何在不影响未分阶段更改的情况下丢弃 git 中的分阶段更改 [重复]

如何在不改变绘图宽度的情况下使用 ggplot2 在 R 中添加可变大小的 y 轴标签?

如何在固定宽度的 div 中居中动态宽度按钮?