【发布时间】:2021-03-29 21:22:09
【问题描述】:
我在我的项目中使用 angular 和 bootstrap。 我有一个标题,它由两个部分和一个内容区域组成。当分辨率较小时,标题会换行。
Header and content on large screens
Header and content on small screens, wrapped
<div class="sticky row">
<div class="col-md-7" style="height: 50px; background-color: seagreen;">
Header A
</div>
<div class="col-md-5" style="height: 50px; background-color: skyblue;">
Header B
</div>
</div>
<div style="height: 1500px; width: 100%; background-color: slategray;">
any content<br />
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita
kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
</div>
我还设置了标题,以便我的内容在标题下方流动。
.sticky {
position: -webkit-sticky; /* Safari */
position: sticky;
top: 0px;
}
正如您在 Stackblitz 中看到的那样,这很好用: https://stackblitz.com/edit/angular-bootstrap-responsive-sticky
但对于小屏幕,我希望 Header B 也可以滚动到 Header A 下方 并且不粘。 由于 Header A 和 Header B 在一个 div 中,我不知道是否有任何方法可以做到这一点,同时,我想保留标题的包装。
感谢您的任何想法:)
【问题讨论】:
-
您可以在标题中不使用网格来实现此目的。而不是行和两个列,只需使用两个内联块 div。
-
谢谢 Arcteezy,我试过了。问题是,在包装 div 后使用 inline-block 并没有填充整个宽度;就我而言,我有 60% 和 40% 的 div;左边一最小宽度:800px;用于制动。这使其余部分为空:i.stack.imgur.com/ZbJlG.png
-
您可以将移动设备的宽度设置为 100%。 BTW 下面是一个很好的解决方案,但有重复的代码。如果这是一个问题,我可以使用内联 div 给出解决方案。
-
嗯,我该怎么做?如上所述,我将宽度设置为 60 和 40。没有重复代码的解决方案会更优雅:) 你能把它作为答案发布吗?
-
看看下面的答案是否合适。
标签: css angular bootstrap-4 responsive sticky