Bootstrap v5 中固定列的问题
Issues with fixed column in Bootstrap v5
我正在使用 Bootstrap v5 并且想要一个网格布局,其中一列有 position:fixed 以便它滚动时留下很长的一列。
问题如下:
每当第一行的高度变得太大以至于第二行(带有 position:fixed 列)移出视口时,该列(“一些示例内容”)也会消失。对于较小的高度,它按预期工作。
示例代码为:
<div class="container">
<div class="row mt-5">
<div class="col-md-8" style="min-height:200px; border: 1px solid red">
</div>
<div class="col-md-4">
Box1
</div>
</div>
<div class="row mt-3">
<div class="col-md-8" style="min-height:4000px; border: 1px solid red">
</div>
<div class="col-md-4">
<div style="position:fixed">
Some sample content
</div>
</div>
</div>
<div class="row">
<div class="col-md-8" style="min-height:500px; border: 1px solid red">
</div>
<div class="col-md-4">
Box End
</div>
</div>
您可以在以下位置找到示例:https://jsfiddle.net/4cma32k9/1/
你有什么解决办法吗?
最好的,
汤姆
当我尝试解决 JSFiddle 中的问题时,我只是添加了边框,我已经看到了你的
Some sample Content
无论您做什么,文本都由视口定位。至此你的结果就是你想要的大屏?
<div class="col-md-4" style="border:1px solid green;" >
<div style="position:fixed; border:1px solid gold;">
Some sample content
</div>
</div>
position:fixed
similarty position:absolute
both abolute and fixed
take the defined element out of the normal flow. Depends on the relatively positioned parent element.
可能 bootstrap 出现了一些问题。尝试找出没有 bootstrap 代码。给两个或多个 div 并设置样式。然后尝试塑造它并达到你想要的,如果它不起作用,我会在有空的时候写并尝试。
请确保您尝试所有选项并给我反馈。
使用置顶位置:
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/5.0.0-alpha2/css/bootstrap.min.css" >
<div class="container">
<div class="row mt-5">
<div class="col-md-8" style="min-height:200px; border: 1px solid red">
</div>
<div class="col-md-4">
Box1
</div>
</div>
<div class="row mt-3">
<div class="col-md-8" style="min-height:4000px; border: 1px solid red">
</div>
<div class="col-md-4">
<div class="sticky-top">
Some sample content
</div>
</div>
</div>
<div class="row">
<div class="col-md-8" style="min-height:500px; border: 1px solid red">
</div>
<div class="col-md-4">
Box End
</div>
</div>
</div>
<div>
<div style="position:fixed; z-index:9999;">
do something ....
</div>
</div>
所以无论这个div里面有什么内容,它的位置总是在其他内容的前面。如果你想让这个div中的内容在另一个div的内容之后,那么你可以使用z-index:-9999
我正在使用 Bootstrap v5 并且想要一个网格布局,其中一列有 position:fixed 以便它滚动时留下很长的一列。
问题如下:
每当第一行的高度变得太大以至于第二行(带有 position:fixed 列)移出视口时,该列(“一些示例内容”)也会消失。对于较小的高度,它按预期工作。
示例代码为:
<div class="container">
<div class="row mt-5">
<div class="col-md-8" style="min-height:200px; border: 1px solid red">
</div>
<div class="col-md-4">
Box1
</div>
</div>
<div class="row mt-3">
<div class="col-md-8" style="min-height:4000px; border: 1px solid red">
</div>
<div class="col-md-4">
<div style="position:fixed">
Some sample content
</div>
</div>
</div>
<div class="row">
<div class="col-md-8" style="min-height:500px; border: 1px solid red">
</div>
<div class="col-md-4">
Box End
</div>
</div>
您可以在以下位置找到示例:https://jsfiddle.net/4cma32k9/1/
你有什么解决办法吗?
最好的, 汤姆
当我尝试解决 JSFiddle 中的问题时,我只是添加了边框,我已经看到了你的
Some sample Content
无论您做什么,文本都由视口定位。至此你的结果就是你想要的大屏?
<div class="col-md-4" style="border:1px solid green;" >
<div style="position:fixed; border:1px solid gold;">
Some sample content
</div>
</div>
position:fixed
similartyposition:absolute
both abolute and fixed take the defined element out of the normal flow. Depends on the relatively positioned parent element.
可能 bootstrap 出现了一些问题。尝试找出没有 bootstrap 代码。给两个或多个 div 并设置样式。然后尝试塑造它并达到你想要的,如果它不起作用,我会在有空的时候写并尝试。
请确保您尝试所有选项并给我反馈。
使用置顶位置:
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/5.0.0-alpha2/css/bootstrap.min.css" >
<div class="container">
<div class="row mt-5">
<div class="col-md-8" style="min-height:200px; border: 1px solid red">
</div>
<div class="col-md-4">
Box1
</div>
</div>
<div class="row mt-3">
<div class="col-md-8" style="min-height:4000px; border: 1px solid red">
</div>
<div class="col-md-4">
<div class="sticky-top">
Some sample content
</div>
</div>
</div>
<div class="row">
<div class="col-md-8" style="min-height:500px; border: 1px solid red">
</div>
<div class="col-md-4">
Box End
</div>
</div>
</div>
<div>
<div style="position:fixed; z-index:9999;">
do something ....
</div>
</div>
所以无论这个div里面有什么内容,它的位置总是在其他内容的前面。如果你想让这个div中的内容在另一个div的内容之后,那么你可以使用z-index:-9999