【问题标题】:CSS how to position element fixed just for y-axis?CSS如何定位仅针对y轴固定的元素?
【发布时间】:2018-02-01 18:05:11
【问题描述】:

我在 div 中有一个元素(彼此相邻的 2 个锚点)(跨度约为 1150 像素,因此您需要向下滚动才能查看此 div 的所有内容)。这个锚是位置:固定在这个 div 的顶部,所以当你向下滚动时,div 锚将一直可见。 我的问题是当您缩小浏览器窗口的宽度时,我希望第二个锚点在空间用完时低于第一个锚点,但是在浏览器窗口物理到达锚点之前,不会发生环绕,所以 div 越来越小并且两个锚点相互重叠。

当我删除固定位置时,当我调整浏览器窗口的大小并且 div 的宽度会按预期缩小一个锚点环绕在另一个锚点下方时。所以我猜我只需要固定 y 轴而不需要 x 轴。

【问题讨论】:

    标签: html css gwt


    【解决方案1】:

    位置属性适用于整个元素。您真正需要的是一种新的位置属性。

    您可以将固定定位应用于包含您的两个锚点的元素,如果您的锚点设置为浮动,它们将在需要时环绕:

    <style type="text/css">
      #fixed {
        position: fixed;
      }
      .left {
        float: left;
      }
      .right {
        float: right;
      }
    </style>
    
    ...
    
    <div id="fixed">
      <div class="left">Lorem ipsum dolor sit amet,</div><div class="right">consectetur adipiscing elit.</div>
    </div>
    <div id="content">
      <p>something here...</p>
    </div>
    

    【讨论】:

    • 这不起作用...我已经将固定定位设置为锚的容器而不是锚本身。我将不得不看一下 JQuery 的实现,看看他们是如何做到的。
    • 您总是可以使用 $(window).scroll 来模拟固定定位,但如果可能的话,我会尽量避免这种情况。什么不完全有效? (我在发布之前测试了代码,它似乎对我有用。)抱歉,我的第一个答案无法提供更直接的帮助。
    • 背景没有滚动?!
    【解决方案2】:

    关于fixed-y / scrollable-x 的一个类似问题是subject of an earlier discussion,其结论是你需要JavaScript 来完成它,正如其他人所说的那样。

    该答案中的一般方法是每隔十分之一秒左右查看元素是否应该移动,如果是,则移动它们。

    【讨论】:

      【解决方案3】:

      看起来这可能与 this question 重复。

      简而言之,纯 CSS 无法做到这一点。您将需要 JavaScript。我推荐jQuery

      【讨论】:

      • 我正在使用 GWT,所以我想看看该方法的实现。你能给我一个代码示例来实现这一点吗?谢谢。
      • @MayumiL 抱歉,我对 GWT 不熟悉
      • 我的意思是 JQuery sn-ps.. 谢谢
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-25
      • 2013-06-16
      • 1970-01-01
      • 1970-01-01
      • 2014-09-07
      • 1970-01-01
      相关资源
      最近更新 更多