Html 当父元素';s的位置是固定的

Html 当父元素';s的位置是固定的,html,css,Html,Css,我正在创建一个导航面板,它在向下滚动时将保持固定。这是密码 <header> <a class="logo" href="/">Logo_name</a> <nav> <a href="#">Menu_1</a> <a href="#">Menu_2</a> </nav> <div style="clear: both;

我正在创建一个导航面板,它在向下滚动时将保持固定。这是密码

<header>
    <a class="logo" href="/">Logo_name</a>
    <nav>
        <a href="#">Menu_1</a>
        <a href="#">Menu_2</a>
    </nav>
    <div style="clear: both;"></div>
</header>
我想有右侧的标志和导航菜单在右侧

现在,浮动似乎有效,但导航元素出现在徽标的正后方,而不是浮动到右侧边缘


如果我从标题中删除position:fixed代码,则浮动似乎可以正常工作。

这将是使用flexbox而不是浮动的解决方案:

标题{
宽度:100%;
最大宽度:960像素;
显示器:flex;
证明内容:之间的空间;
}
.标志{
自我校准:灵活启动;
}
导航{
自对准:柔性端;
}

正如@AngelMdez所提到的,Flexbox是一种比float更好的方式,
位置:fixed
应该同样有效;请记住,您应该指定一个宽度,以便元素本身使用预期的空间

之后,您可以删除所有
float
clear
属性,这样就可以了

正文{
保证金:0;
}
标题{
位置:固定;
宽度:100%;
最大宽度:960像素;
显示器:flex;
证明内容:之间的空间;
对齐项目:居中;
高度:70像素;
背景颜色:灰色;
}
.内容{
填充顶部:70px;
}


知识是一种美德,是一种美德,是一种美德,是一种美德。但是,在最低限度上,我们需要一个实验室来进行日常工作。二人世界
这是一种令人厌恶的行为,因为它是一种不平等的行为。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡。

知识是一种美德,是一种美德,是一种美德,是一种美德。但是,在最低限度上,我们需要一个实验室来进行日常工作。二人世界 这是一种令人厌恶的行为,因为它是一种不平等的行为。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡。

知识是一种美德,是一种美德,是一种美德,是一种美德。但是,在最低限度上,我们需要一个实验室来进行日常工作。二人世界 这是一种令人厌恶的行为,因为它是一种不平等的行为。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡。

知识是一种美德,是一种美德,是一种美德,是一种美德。但是,在最低限度上,我们需要一个实验室来进行日常工作。二人世界 这是一种令人厌恶的行为,因为它是一种不平等的行为。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡。

知识是一种美德,是一种美德,是一种美德,是一种美德。但是,在最低限度上,我们需要一个实验室来进行日常工作。二人世界 这是一种令人厌恶的行为,因为它是一种不平等的行为。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡。

知识是一种美德,是一种美德,是一种美德,是一种美德。但是,在最低限度上,我们需要一个实验室来进行日常工作。二人世界 这是一种令人厌恶的行为,因为它是一种不平等的行为。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡。


回答您的问题:大多数HTML元素都有名为用户代理的浏览器提供的默认样式。
具有
display:block的默认
display
。具有
display:block
的元素相对于其容器增长到其最大宽度

在这种情况下,
的容器是
,它的宽度来自占据整个视口的

因为您已将
max width
设置为
960px
元素将仅增长到960px。这很好,因为宽度通常占据整个视口。但是,一旦设置了绝对位置(在本例中为“fixed”),元素就会从正常文档流中移除。因为它现在固定在一个固定的位置上。这意味着它没有具有宽度的父对象。因此,它失去了父对象(身体)继承的宽度

要解决您已经编写的代码的问题,只需在元素中添加一个宽度。因为您已经设置了
最大宽度:960px
您可以通过以下命令将元素增长到100%:
宽度:100%。它将停止在960像素,因为这是它的最大宽度:

标题{
位置:固定;
宽度:100%;
背景:蓝色;
}
a{
颜色:白色;
}
.标志{
浮动:左;
}
导航{
浮动:对;
}


为什么不使用显示:内联块;我需要有一个静态标题面板的位置:固定。W位置固定后,即使使用flexbox,对齐也不起作用。事实上,当position:fixed被删除时,float会比flexbox更好地对齐它们。@mjustin除非您有其他影响元素的因素将“position:fixed;”添加到标题中,否则它应该可以工作
header {
    position: fixed;
    max-width:960px;
}

.logo {
    float: left;
}
nav {
    float: right;
}