【问题标题】:Is there a way to remove margins/padings for specific pages in Hugo Academic?有没有办法删除 Hugo Academic 中特定页面的边距/填充?
【发布时间】:2020-04-24 05:39:29
【问题描述】:

我在Hugo Academic 网站的 index.md 页面中有一个iframe 对象,我希望它处于页面的全宽且没有边距(附上屏幕截图)。我将此代码添加到 .md 文件中:

<style>
iframe {
  margin-left: 0;
  padding-left: 0;
}
</style>

但是,0 填充已经是 iframe 所在的位置,所以我可以将它移到右侧,但不能移到左侧。

是否可以针对特定对象/页面进行调整?

iframe 看起来像这样:

<iframe src="https://ruslankl.shinyapps.io/roc_simulation/" width=1000 height=1000" frameborder="0"></iframe>

Screenshot

【问题讨论】:

    标签: html css hugo blogdown


    【解决方案1】:

    我做了一些研究,发现this article 有几个更好的解决方案。我最初的解决方案有效,但它使 iframe 浮动在其余内容之上,我们不希望这样。

    因此,感谢上面提到的文章,我想出了以下适用于您网站的内容:

    iframe {
      height: 1000px; /* Set this to the height you want the iframe to have. */
      width: 100vw;
      position: relative;
      left: 50%;
      right: 50%;
      margin-left: -50vw;
      margin-right: -50vw;
    }
    

    注意height 后面的注释。您需要在 iframe 上设置一个固定的高度,以防止 iframe 的内容被截断。我首先将它设置为650px,根据我的计算,它是它加载的网站的高度,但后来我得到了一个滚动条,我假设你不希望滚动。

    引用这篇文章的实际工作原理:

    这里的想法是:将容器推到浏览器窗口的正中间,left: 50%;,然后以负-50vw 边距将其拉回左边缘。

    最后一点,vw 单位是一个视口单位,更具体地说是视口的宽度,其中100vw 是视口宽度的 100%。

    原答案如下:

    我没有使用 Academic 主题对此进行测试,但在我自己的网站上(基于 Hugo 构建,但这不重要)这使得 iframe 成为页面的整个宽度,而不管内容上的任何边距或填充:

    iframe {
        left: 0;
        position: absolute;
        width: 100%;
    }
    

    使用position: absolute,iframe 将尽可能靠近窗口左侧(感谢left: 0)。然后我们使用width: 100% 让它填满页面。

    您还应该考虑向 iframe 添加一个类或一个 id,以便您可以将其用于样式而不是 &lt;iframe&gt; 元素,以防万一您碰巧在同一页面上有多个 iframe。

    【讨论】:

    • 太棒了!非常感谢:)
    • 嗯,它按预期工作,但absolute 定位将
    • 我担心会发生这种情况。如果您发布指向您网站的链接,我可以仔细查看!
    • 当然!这里是测试page,这里是.md file。我能够用有点蹩脚的方法来修复它——添加几十个&lt;br&gt;标签哈哈。它适用于笔记本电脑屏幕,但如果屏幕分辨率较小(例如,在智能手机上),它会覆盖页面上的其他对象。如果您有任何机会知道更好的解决方案,请告诉我:)
    • 谢谢!我找到了更好的解决方案,现在更新了我的答案。让我知道新代码是否适合您!
    猜你喜欢
    • 2016-05-02
    • 2016-11-19
    • 1970-01-01
    • 2015-12-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多