我正在构建一个多页单 html 文件文档。 与 Android 的默认 WebView 一起使用。这意味着绝对没有 JS。 (我希望我可以使用JS,但它不支持它。我希望我可以使用第3方html查看器,但这些文件的内容泄漏的可能性是不可接受的。)
我已经使用它工作了
fieldset{
display:none;
&target{display: block;}
}
上面的 CSS 隐藏了所有字段集,并且仅显示目标字段集。
我的 html 文件的基本构成
<!DOCTYPE html>
<html>
<head>
<style>
fieldset{
display:none;
&target{display: block;}
}
</style>
</head>
<body>
<div id="nav">
<a href="#1">1</a> | <a href="#2">2</a> | <a href="#3">3</a>
</div>
<fieldset id="1">
<a href="#1a">1a</a> | <a href="#1b">1b</a> | <a href="#1c">1c</a>
<table>
<tbody id="1a"></tbody>
<tbody id="1b"></tbody>
<tbody id="1c"></tbody>
</table>
</fieldset>
<fieldset id="2"></fieldset>
<fieldset id="3"></fieldset>
</body>
</html>
但是,当我希望它也向下滚动到目标时,就会出现问题。
例如: 如果浏览器的目标是 #1,它将显示 fieldset id="1"。 如果浏览器定位#2,它将显示 fieldset id="2"。 这一切都很好
,但是如果浏览器的目标是 #1a,则问题是不会显示任何内容。 我可以通过添加来解决这个问题
tbody{
&target{display: block;}
}
,但这不是我想要的。 我想要它做的是,如果 #1a 是目标,则显示 fieldset id="1",然后向下滚动到 tbody id="1a"。
我脑子有雾,我不知道如何解决这个问题,即使我告诉她没有 JS,Chatgpt 也没用,她每次都会在那里插入脚本。
您似乎想要构建一个包含各个部分的 HTML 页面,可以通过单击链接来访问这些部分,并且当单击链接时,您希望滚动到相关区域。虽然使用 JavaScript 可以更轻松地完成此任务,但我理解您不使用它的原因。您可以使用锚链接在 WebView 中使用纯 HTML 和 CSS 来实现此操作。
<!DOCTYPE html>
<html>
<head>
<style>
fieldset {
display: none;
}
fieldset:target {
display: block;
}
tbody {
display: none;
}
tbody:target {
display: block;
}
</style>
</head>
<body>
<div id="nav">
<a href="#1">1</a> | <a href="#2">2</a> | <a href="#3">3</a>
</div>
<fieldset id="1">
<a href="#1a">1a</a> | <a href="#1b">1b</a> | <a href="#1c">1c</a>
<table>
<tbody id="1a"></tbody>
<tbody id="1b"></tbody>
<tbody id="1c"></tbody>
</table>
</fieldset>
<fieldset id="2"></fieldset>
<fieldset id="3"></fieldset>
</body>
</html>
要管理
fieldset
和 tbody
元素在定位时的可见性,请使用 CSS 伪类 :target
。当您单击带有指向特定区域的 href
的链接时,它将显示该部分。我还为每个小节提供了一个链接(例如,a href="#1a">1a/a>
),以便您浏览到特定的小节。使用此代码,单击类似 a href="#1a">1a/a>
的链接将显示 fieldset id="1"
并滚动到 tbody id="1a"
。