sticky 相关问题

在网页中,粘性元素是页面的一个元素,它保持在屏幕上的固定位置,使其始终可见。

为什么这个类似 html 表格的结构在离开视口时不会垂直滚动,并带有粘性标题和粘性第一列?

在我将真实数据放入其中并将其重构为React组件之前,我试图弄清楚如何为类似表格的结构构建这个基本模板(我知道它不是一个实际的表格)。我有...

回答 1 投票 0

当找到特定值时,按列值对多维数组的行进行排序,并使用粘性第一行

我的多维数组按 OwnerNickName 字段按字母顺序排序,但我需要将 OwnerNickName = 'My House' 行作为粘性第一行,然后按

回答 3 投票 0

二维数组的自定义行由多列组成,其中一行“粘在”最后一个位置

我有一个数组,假设 $xyz 包含: [ 7399 => [ '计数' => 103, '名称' => '2° 学期 - 2012', ], 7398 => [ '计数' => 50, 'n...

回答 2 投票 0

不是程序员所以不知道代码的问题

我正在使用 Blogger 开发一个博客,现在运行一个固定的侧边栏广告小部件以沿着屏幕浮动,我发现了一个有效的代码(因为我尝试了各种代码)并且无法使用模板内置变量。 ..

回答 1 投票 0

使垫子抽屉左侧内容粘性

我有一个带有滚动的页面,使用垫子抽屉组件 左边有一个菜单。 我希望当用户滚动页面时菜单内容保留在屏幕上 这是 stackblitz 的例子。 我有

回答 1 投票 0

角度表多个粘性标题

我们如何调整代码以便可以制作多个粘性标题,我想使第一列为名称,第二列为无粘性,然后最后一列为粘性。目前...

回答 2 投票 0

带有边框半径和粘性标题的 HTML 表格

我有一个 HTML ,带有边框半径和使用位置的粘性标题:sticky,如下所示: https://codepen.io/muhammadrehansaeed/pen/OJpeeKP 但是,当使用 滚动时 我有一个带有 <table> 的 HTML border-radius 和使用 position: sticky 的粘性标题,如下所示: https://codepen.io/muhammadrehansaeed/pen/OJpeeKP 但是,当使用粘性标题滚动时,表格行会伸出粘性标题的圆角所在的位置。请参阅此图片的左上角: 有没有办法可以在使用粘性标题向下滚动时保持圆角,或者在标题变得粘性并从原始位置向下移动时删除粘性标题?理想情况下,我想要一个CSS解决方案。 您可以使用伪元素隐藏边框的某些部分: table thead th:first-child::before, table thead th:last-child::after { width: 1px; height: 5px; background: white; content: ""; display: block; position: absolute; top: 0px; } table thead th:first-child::before { left: -1px; } table thead th:last-child::after { right: -1px; } 正如Ivan建议的那样,似乎使用伪元素来覆盖标题下方不需要的边框是(令人惊讶的)唯一可行的选择。我建议使用伪不仅用于覆盖“外部”区域,而且还用于绘制弧线和填充“内部”区域。可以使用堆叠背景来做到这一点。应用于原始代码: /* § Additions / Changes */ table thead th { position: relative; } /* Pseudos exceeding header boundary by border width; with rectangle covering half circle and rest of height */ table thead th:last-child::after, table thead th:first-child::before { content: ""; position: absolute; top: 0; bottom: 0; left: calc(-1 * var(--global-border-width-1)); width: var(--global-border-radius); background-image: linear-gradient(to bottom, transparent var(--global-border-radius), var(--global-title-color) 0), radial-gradient(circle at var(--global-border-radius) var(--global-border-radius), var(--global-title-color) var(--global-border-radius), var(--global-content-background-color) 0); background-position: top left; background-size: var(--global-border-diameter) 100%, var(--global-border-diameter) var(--global-border-diameter); background-repeat: no-repeat; } table thead th:last-child::after { left: auto; right: calc(-1 * var(--global-border-width-1)); background-position: top right; } /* § Declarations and original style */ html { --global-content-background-color: white; --global-title-color: black; --global-background-color: lightblue; --global-border-color: black; --global-border-radius: 20px; --global-border-width-1: 10px; --global-space-fixed-2: 10px; --global-space-fixed-3: 15px; --global-border-diameter: calc(2 * var(--global-border-radius)); background-color: var(--global-content-background-color); } table { color: var(--global-title-color); background-color: var(--global-content-background-color); border-collapse: separate; border-color: var(--global-title-color); border-style: solid; border-radius: var(--global-border-radius); border-width: 0 var(--global-border-width-1) var(--global-border-width-1) var(--global-border-width-1); border-spacing: 0; width: 100%; } table thead { position: sticky; top: 0; z-index: 10; } table thead th { color: var(--global-background-color); background-color: var(--global-title-color); padding: var(--global-space-fixed-2) var(--global-space-fixed-3); vertical-align: bottom; } table tbody td { border-top: var(--global-border-width-1) solid var(--global-border-color); padding: var(--global-space-fixed-2) var(--global-space-fixed-3); vertical-align: top; } table tbody tr:last-child td:first-child { border-bottom-left-radius: var(--global-border-radius); } table tbody tr:last-child td:last-child { border-bottom-right-radius: var(--global-border-radius); } /* § Unrelated / demo */ * { scroll-margin-top: calc(var(--global-space-fixed-2) * 4 + 1rem); /* = height of sticky thead + top padding of cell, provided text in thead does not wrap */ scroll-margin-bottom: 1em; } td { height: 60vh; } td a { float: right } tr:last-child td { vertical-align: bottom; } a[name]:empty::before { content: attr(name); } th:not(#\0):hover::before { background-image: linear-gradient(to bottom, transparent var(--global-border-radius), #0F08 0), radial-gradient(circle at center, #00F8 var(--global-border-radius), #F2F4 0); background-position: top left; background-size: var(--global-border-diameter) 100%, var(--global-border-diameter) var(--global-border-diameter); } <table> <thead> <tr> <th>Fake non-transparent "border-radius"</th> </tr> </thead> <tbody> <tr> <td> <a href="#⬆️" name="⬇️"></a> For fixed header</td> </tr> <tr> <td> <a href="#⬇️" name="⬆️"></a> Using CSS stacked background images in pseudo elements</td> </tr> </tbody> </table> 只需从表格中删除边框,并为表格主体中的第一个和最后一个表格单元格添加左右边框: tbody td:first-child { border-left: 1px solid black; } tbody td:last-child { border-right: 1px solid black; } tbody tr:last-child td{ border-bottom: 1px solid black; } tbody tr:last-child td:first-child { border-bottom-left-radius: 2px; } tbody tr:last-child td:last-child { border-bottom-right-radius: 2px; } 当然是使用适当的缩进、嵌套和变量! 使用许多伪选择器看起来样式相当丑陋,但似乎可以解决您的问题。 有一个更紧凑的解决方案。只需将具有背景颜色的框阴影添加到第一个 < th > 和最后一个 < th > 即可隐藏元素。 在此示例中,在右侧,您可以看到表格行由于边框半径而可见。在左边,我应用了盒子阴影。 盒子阴影:0 -2.1rem 0 .6rem #E5E7EB; 在这里,它是灰色的,以便您可以看到它的工作原理,但您只需使用与背景相同的颜色即可使其完全不可见。 这是最终结果以及我正在使用的代码: th:第一个孩子 { 边界半径:0.75rem 0 0 0; 左边框:.1rem 实心 $color-gray-200; 框阴影:0 -2.1rem 0 .6rem $color-gray-200; } th:最后一个孩子{ 边界半径:0 0.75rem 0 0; 右边框:.1rem 实心 $color-gray-200; 盒子阴影:1rem -2.1rem 0 .6rem $颜色白色; } 可能需要调整框阴影以隐藏基于所选边框半径的行。 不确定你是否熟悉jquery,如果熟悉的话你可以在滚动内容时动态更改 border-top-left-radius: 等于粘性标题的半径,但这对于新手来说有点棘手jquery/JS。 其次,您可以将粘性标题封闭到父级(例如class="parent")),并将父级背景设置为白色,没有边框。并保持粘性标题的边框半径不变。因此,当您滚动内容时将位于该父级下方(例如 class="parent")。为了确保父级出现在该行上方,您可以给出 z-index: 10

回答 5 投票 0

添加基于scrollTop()的类并为导航栏使用位置粘性时出现问题

我正在尝试构建一个导航栏,当用户开始滚动时,填充会缩小。缩小是通过简单地在滚动时向标题元素添加一个类,然后更改填充来完成的......

回答 2 投票 0

Flutter 条子水平导航

我是flutter开发的新手,正在尝试制作一个滚动时粘在页面顶部的水平导航栏。我发现我需要将 customScrollView 与 Sliver 一起使用...

回答 1 投票 0

滚动两个高度不同的DIV;一个等待另一个

因此,在 HTML 文档中,我有两个并排的 DIV,每个 DIV 的高度不同。当用户开始向下滚动时,两个 DIV 应该同时开始滚动,正如您所期望的那样。当...

回答 1 投票 0

滚动时粘性横幅上方有间隙

在 div 内滚动时,我编写了一个由图像和 h2 组成的横幅,以粘贴到所述 div 的顶部。当位于 div 顶部时,横幅上方没有间隙,但是当 scr...

回答 1 投票 0

位置粘性在我的固定侧边栏元素上无法正常工作?

我有以下简单的标记,其中包括侧边栏和主要内容。我可以添加其他元素,但无法删除现有元素(使用库)。我想更新代码以便该页面...

回答 1 投票 0

如何为具有粘性位置的元素设置动画

告诉我如何为具有粘性位置的元素设置动画 我希望动画不要在初始位置播放,但是当元素运动时,动画会平滑地达到顶部值。 我...

回答 1 投票 0

在CSS中如何在英雄部分的标题后面制作粘性导航栏?

我试图同时实现两种样式,一种包含粘性位置,另一种包含粘性元素的父级: 我想要页面的第一部分,我们称之为“...

回答 2 投票 0

在CSS中如何让嵌套元素粘在整个网站上?

我试图同时实现两种样式,一种包含粘性位置,另一种包含粘性元素的父级: 我希望我的网页的第一部分占据整个

回答 1 投票 0

如何让桌头有粘性但有溢出

我试图在滚动时使表格的 粘在页面顶部,但是表格宽度应受其父项限制并允许沿 x 方向滚动。 然而,一旦

回答 3 投票 0

可滚动的 html 表格通过粘性标题滚动

使用 HTML 和 CSS 创建可滚动表格时,表格主体会滚动到粘性表格标题后面,并且至少部分在标题上方可见。 类似的问题还有很多...

回答 1 投票 0

使用 CSS Sticky 属性滚动时标题不会粘住

我有一个简单的日历视图,可以静态地编码为下面的 React 组件。有一个父容器,它包含两个容器时间段和天数。我希望他们挨着......

回答 1 投票 0

将子项放置在窗格窗口内

我正在尝试实现一个可调整大小的窗口,其中包含一些小部件,其中一些应该居中,一些应该左对齐。目前,所有小部件均居中: 从 tkinter 导入 * 根=...

回答 2 投票 0

粘性位置未使用 Flexbox 完全滚动

.标题, 。页脚 { 文本对齐:居中; 高度:300px; 背景:白色; } 。容器 { 显示:柔性; 宽度:600 像素; 保证金:0 自动; 背景:#fafafa; } 。主要的 { 弹性:0 0 66.66...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.