简要说明如何在html中创建锚点链接?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简要说明如何在html中创建锚点链接?相关的知识,希望对你有一定的参考价值。

参考技术A 1、创建命名锚点,给该标签一个id
2、链接到命名锚点,其href属性的值为#命名锚点的id值
参考技术B 在网页中经常用到锚点,特别是在比较长的页面中锚点的使用会增加用户体验,现在php中文网介绍html 锚点三种实现方法
1) . 在同一页面中
<a name="add"></a> 或者 <a id="add"></a> (ps:用id兼容性好些)
<a href="#add">跳转到add</a>
2) . 在不同页面中,锚点定位在a.html中,从另外一个页面的链接跳转到这个锚点
<a href="a.html#add">跳转到a.add</a>
3) . 点击链接触发js事件,同时跳转到锚点,有两种处理方式:
第一种:
<a href="#add" onclick="add()">触发add函数并跳转到add锚点</a>
第二种:
<p id="pNode"></p>
<a href="#" onclick="document.getElemetnById('pNode').scrollIntoView(true);return false;">通过scrollIntoView实现锚点效果</a>
scrollIntoView()的用法
scrollIntoView 是一个与页面(容器)滚动相关的API( 官方解释 ),该API只有boolean类型的参数能得到良好的支持(firefox 36+都支持),所以在这里只讨论参数Boolean类型的情况
调用方法为 element.scrollIntoView() 参数默认为true。

asciidoc:有没有办法创建一个在 libreoffice writer 中可见的锚点?

【中文标题】asciidoc:有没有办法创建一个在 libreoffice writer 中可见的锚点?【英文标题】:asciidoc: is there a way to create an anchor that will be visible in libreoffice writer? 【发布时间】:2016-07-20 17:08:19 【问题描述】:

Tl;博士;

在 docbook 中创建锚点的正确方法是什么? 有没有办法让锚在 writer 中可见?

背景

我正在尝试将以前在单个 open office 文档中的文档拆分为较小的 asciidoc 文档,这些文档既包含在主要的开放式办公文档中,也转换为 htmlpdf 中的一个或两个. 我有这个主要工作。我使用asciidoctor 创建html。 asciidoctor-pdf 创建 pdf 并结合 asciidoctor 和 pandoc 创建 .odt 文件。我也尝试了asciidoc的python实现,但发现接口不太好用。

asciidoc 和 odt 之间的往返显然是不可能的。这是一种融合,其中主文档经过文字处理,但包含可以独立生成的内容片段(想想手册页 - 实际上这是几个用例之一)。

asciidoc 到 html:

asciidoctor -b html5 foo.adoc -o foo.html

asciidoc 转 pdf:

asciidoctor-pdf -b pdf foo.adoc -o foo.pdf

asciidoc 到 odt

asciidoctor -b docbook foo.adoc -o foo.docbook pandoc --base-header-level=3 -V date:"" -V title:"" -f docbook foo.docbook -o foo.odt

使用 pandoc,我必须取消日期和标题,并根据需要设置标题级别,以便将要插入的部分作为额外的复杂功能插入。

我在开放式办公室中使用insert section 将生成的.odt 插入到主文档中。 请注意,主文档不是主文档,因为我找不到创建主文档的方法,而无需在 h1 边界上自动拆分文件。

我有两个主要问题需要解决。我想在 asciidoc 文档中添加标题作为交叉引用,并在字母索引中为它们创建条目(实际上第一个标题就足够了)。有没有办法做到这一点? asciidoc 中的索引标记不会导致在 .odt 文件中创建条目。

我可以使用“插入引用/标题”交叉引用插入部分中的内容并引用唯一命名的标题。但是,每当我使用“全部更新”时,这些交叉引用都会失效。它们显示为“错误:未找到参考源”。

[在单独的说明中,我还想要一种自动查找损坏的交叉引用的方法]

我目前正在使用 libreoffice - 版本:4.3.7.2

如果一个性能比另一个好,我不反对切换版本或风格(即 apache)。

我不确定答案是否在链的 asciidoc 或 docbook 部分。我会接受一个答案,它会自动在插入部分(.adoc/docbook 文件的顶部)的开头插入一个索引条目。

我也愿意将我的工具链更改为可行的东西。 例如,我尝试了 asciidoc-odt 后端并与https://github.com/dagwieers/asciidoc-odf/issues/47 发生冲突,这并不能激发信心。 使用 asciidoc-odt 我避免了创建中间文档文件的需要。但是,我仍然无法让锚出现。

我可以获得一个宏来创建一个锚点,但目前我还没有弄清楚如何从命令行运行宏。

【问题讨论】:

【参考方案1】:

要在 DocBook 中创建一个锚点,请在 .adoc 文件中创建一个内联锚点。例如,给asciidoctor

[[X1]]Section1
---------------

制作了这个:

<title>
    <anchor xml:id="X1" xreflabel="[X1]"/>
    Section1
</title>

相反,将其放在单独的行中并没有在我的测试中创建 anchor 标记:

[[X1]]
Section 1

现在有一些坏消息。来自Pandoc User's Guide:

HTML 格式(包括 HTML 幻灯片和 EPUB)、LaTeX 和 ConTeXt 目前支持内部链接。

我将此解释为目前,Pandoc 不会在 Writer 中创建内部链接。当我尝试它时,链接被忽略了。

注意:我似乎没有回答您的所有问题。如果您想询问有关 LibreOffice 交叉引用和标题(问题末尾的粗体大段)的更多信息,也许您可​​以针对该部分单独提出一个问题。

【讨论】:

以上是关于简要说明如何在html中创建锚点链接?的主要内容,如果未能解决你的问题,请参考以下文章

day2

DAY2

请教一个HTML超链接锚点的问题

HTML:使链接指向页面中间的锚点

如何在 TTTAttributedLabel 中将 HTML 锚点设为可点击链接?

如何删除锚点(链接)的下划线?