- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的 HTML 文件:
.jumbotron {
font-size: 20px;
padding: 60px;
background-color: #00a8ec;
text-align: center;
color: white;
}
header {
display: inline;
}
nav {
background-color: #00b2a6;
padding: 5px;
position: sticky;
top: 0;
}
footer {
padding: 20px;
color: white;
background-color: #00b2a6;
text-align: center;
font-weight: bold;
}
<!DOCTYPE html>
<html>
<head>
<title>TITLE</title>
<link rel="stylesheet" href="tes.css">
</head>
<body>
<header>
<div class="jumbotron">
<h1>TITLE</h1>
<p>DESCRIPTION</p>
</div>
<nav>
<ul>
<li><a href="#sejarah">Sejarah</a></li>
<li><a href="#geografis">Geografis</a></li>
<li><a href="#wisata">Wisata</a></li>
</ul>
</nav>
</header>
<main>
<div id="content">
<pre>Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
</pre>
</div>
<footer>
<p>FOOTER</p>
</footer>
</body>
</html>
我仍然不明白为什么我的粘性导航只有在我使用 display:inline 在 HTML 中设置标题项时才有效?如果我删除该属性,粘性导航将不再起作用。
我在学习HTML和CSS方面遇到了困难,非常感谢您的支持!
最佳答案
您找到了一个可以强制其工作的 hack。当使用 inline
时,你将在 inline level 元素中有 block 级元素,这是 invalid 并且它就像 inline 元素不再存在(这是一个简化的解释,实际上它是有点复杂1)。
你的代码就像没有标题一样:
.jumbotron {
font-size: 20px;
padding: 60px;
background-color: #00a8ec;
text-align: center;
color: white;
}
nav {
background-color: #00b2a6;
padding: 5px;
position: sticky;
top: 0;
}
footer {
padding: 20px;
color: white;
background-color: #00b2a6;
text-align: center;
font-weight: bold;
}
<div class="jumbotron">
<h1>TITLE</h1>
<p>DESCRIPTION</p>
</div>
<nav>
<ul>
<li><a href="#sejarah">Sejarah</a></li>
<li><a href="#geografis">Geografis</a></li>
<li><a href="#wisata">Wisata</a></li>
</ul>
</nav>
<main>
<div id="content">
<pre>Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
</pre>
</div>
<footer>
<p>FOOTER</p>
</footer>
如果将它包裹在另一个容器中,Sticky 将不起作用。它需要直接放在你体内有长内容的地方。
使用header时,加border理解问题:
.jumbotron {
font-size: 20px;
padding: 60px;
background-color: #00a8ec;
text-align: center;
color: white;
}
header {
border:5px solid red;
}
nav {
background-color: #00b2a6;
padding: 5px;
position: sticky;
top: 0;
}
footer {
padding: 20px;
color: white;
background-color: #00b2a6;
text-align: center;
font-weight: bold;
}
<header>
<div class="jumbotron">
<h1>TITLE</h1>
<p>DESCRIPTION</p>
</div>
<nav>
<ul>
<li><a href="#sejarah">Sejarah</a></li>
<li><a href="#geografis">Geografis</a></li>
<li><a href="#wisata">Wisata</a></li>
</ul>
</nav>
</header>
<main>
<div id="content">
<pre>Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
Hahahaha
</pre>
</div>
<footer>
<p>FOOTER</p>
</footer>
您的元素没有空间变粘,因为它已经在其容器的底部边缘。
相关问题:
Why position:sticky is not working when the element is wrapped inside another one?
Why bottom:0 doesn't work with position:sticky?
1来自 the specification :
The containing block of a static, relative, or sticky box is as defined by its formatting context.
在你的例子中,我们在 block 格式化上下文中,所以
the containing block is formed by the content edge of the nearest block container ancestor box. ref
和
sticky
Identical to relative, except that its offsets are automatically adjusted in reference to the nearest ancestor scroll container’s scrollport (as modified by the inset properties) in whichever axes the inset properties are not both auto, to try to keep the box in view within its containing block as the user scrolls. ref
关于html - 为什么我的粘性导航仅在标题设置为内联时才有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62426596/
项目实例:http://jsfiddle.net/k3buckuc/ enterItem = [] itemNumber = 0 // mark item as checked and add del
我正在尝试为每个视频将图像设置到 Canvas 上。我循环遍历 FileID 数组,然后尝试从相应的视频中获取图像并将其添加到 Canvas 上。 如果在 drawImage 函数之前添加警报,则以下
所以我尝试基于 stdinput 打开和读取文件。我使用 strtok 来解析输入,以便用户可以输入多个文件。我已将分隔符设置为空格。 int main(const int argc, const
我有正在尝试修改的 Azure blob 示例代码。但是,uploadFile 函数仅当处于 switch case 的 while 循环中时才起作用。如果我将其从循环中取出,它会创建容器但无法上传文
我有两个 div 想要交替隐藏/显示,当我将这两个 div 放在表格中但当它们不在表格中时我的代码工作正常,但我不想将它们放在一些 IE 问题的表格,这是我的代码 view more f
我想用我编写的一个小 Python 程序生成发票。我希望它首先将发票输出为 HTML 文件,然后将其转换为 PDF。目前我的代码正在根据需要创建 HTML 文档,但它正在输出一个空白的 PDF 文件:
问题是,当我单击同一页面上具有主题标签的链接时,动画滚动不起作用。动画滚动仅在您不在当前页面时才起作用。 网址看起来像这样: website.com/about#people, website.com
我正在尝试在我的应用程序中重置警报并使用接收器来获取 onBootCompleted。为了查看是否收到了 Intent ,我正在使用 toast 。仅当我立即打开应用程序时才会出现 toast 。否则
如果我将 C:\Program Files (x86)\WinMerge 添加到用户 PATH 变量(通过右键单击计算机 -> 高级系统设置 -> 环境变量),一旦我打开一个新的 cmd shell,
我正在尝试创建一个具有一堆禁用字段的 div。单击 div 中的任意位置即可启用它们。 我发现单击 div 中的任意位置都会导致 ng-click 被触发,而单击禁用的下拉列表似乎不会触发 ng-cl
我是一名优秀的程序员,十分优秀!