Skip to content

博客文章脚注右浮 #1561

Answered by yihui
residualsun1 asked this question in Q&A
Jan 30, 2024 · 1 comments · 4 replies
Discussion options

You must be logged in to vote

这问题太细节了,ChatGPT 可能还没有智能到这个程度。粗略的实现是这样:

首先用 JS 把脚注都移动到正文内的脚注序号后面的一个 <div class="side-right"> 内:

<script src="https://cdn.jsdelivr.net/npm/@xiee/utils/js/sidenotes.min.js" defer></script>

(对 JS 感兴趣的话,源码在此:https://github.com/yihui/misc.js/blob/main/js/sidenotes.js

这段代码加到任意页面模版里都可以,它只对包含脚注的页面起作用。

然后就是 CSS,这是真正有点复杂的地方,需要考虑的细节比较多。粗略地说,就是把脚注向右浮动:

.side-right {
    float: right;
    width: 200px;
    margin-right: calc(-200px - 2em);
    font-size: .9em;
}

向右浮动后,右边距就是 0 了。通过设置宽度 200 像素(可以是别的数值)然后把这个层向右移动 200 像素,实际上就是把脚注层移动至正文的右侧、正好让脚注的左侧边贴在正文右侧边上,此时为了美观再留一点空隙,也就是向右再移动 2 个字符宽。

你可以在浏览器里直接运行 JS 并添加 CSS 调试你的页面看看效果:https://guozheng.rbind.io/posts/2024/01/passer-by-in-life/



稍微有点麻烦的就是响应式的 CSS,即:当页宽不…

Replies: 1 comment 4 replies

Comment options

You must be logged in to vote
4 replies
@residualsun1
Comment options

@yihui
Comment options

@residualsun1
Comment options

@yihui
Comment options

Answer selected by yihui
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants