- CSS 教程
- CSS - 教程
- CSS - 简介
- CSS - 语法
- CSS - 选择器
- CSS - 包含
- CSS - 度量单位
- CSS - 颜色
- CSS - 背景
- CSS - 字体
- CSS - 文本
- CSS - 图像
- CSS - 链接
- CSS - 表格
- CSS - 边框
- CSS - border-block 属性
- CSS - 边框内联
- CSS - 边距
- CSS - 列表
- CSS - Padding 属性
- CSS - 光标
- CSS - 轮廓
- CSS - 维度
- CSS - 滚动条
- CSS - 内联块
- CSS - 下拉列表
- CSS - visibility 属性
- CSS - Overflow 属性
- CSS - 清除修复
- CSS - float(浮点)
- CSS - 箭头
- CSS - resize 属性
- CSS - quotes 属性
- CSS - order 属性
- CSS - Position 属性
- CSS - hypens 属性
- CSS - :hover(悬停)
- CSS - display(显示)
- CSS - focus 属性
- CSS - zoom(缩放)
- CSS - translate 属性
- CSS - Height 属性
- CSS - hyphenate-character 属性
- CSS - Width 属性
- CSS - opacity 属性
- CSS - z-index 属性
- CSS - bottom 属性
- CSS - 导航栏
- CSS - 覆盖
- CSS - 表单
- CSS - 对齐
- CSS - 图标
- CSS - 图片库
- CSS - 注释
- CSS - 加载器
- CSS - Atrribute 选择器属性
- CSS - 运算器
- CSS - root
- CSS - 盒子模型
- CSS - 计数器
- CSS - Clip (Obsolete) 属性
- CSS - writing-mode 属性
- CSS - Unicode-bidi 属性
- CSS - min-content 属性
- CSS - 全部
- CSS - inset 属性
- CSS - isolation 属性
- CSS - overscroll-behavior 属性
- CSS - justify-items 属性
- CSS - justify-self 属性
- CSS - tab-size 属性
- CSS - pointer-event 属性
- CSS - place-content 属性
- CSS - place-items 属性
- CSS - place-self 属性
- CSS - max-block-size 属性
- CSS - min-block-size 属性
- CSS - mix-blend-mode 属性
- CSS - max-inline-size 属性
- CSS - min-inline-size 属性
- CSS - offset 属性
- CSS - accent-color 属性
- CSS - user-select 属性
- CSS 高级
- CSS - grid 属性
- CSS - Grid 布局
- CSS - flexbox
- CSS - vertical-align 属性
- css - positioning
- css - layers
- css - pseudo_classes
- CSS - 伪元素
- CSS - @ 规则
- CSS 滤镜 - text-effect 属性
- CSS 分页媒体
- CSS 打印
- CSS - 布局
- CSS - 验证
- CSS - 图像精灵
- CSS - !important
- CSS - 数据类型
- CSS3 教程
- CSS - 圆角
- CSS - 边框图像
- CSS - 多种背景
- CSS - 渐变
- CSS - box-shadow 属性
- CSS - box-decoration-break 属性
- CSS - caret-color 属性
- CSS - text-shadow 属性
- CSS - 2D 转换
- CSS - 3D 变换
- CSS - transition 属性
- CSS - 动画
- CSS - 多列布局
- CSS - 盒子大小调整
- CSS - 工具提示
- CSS - buttons
- CSS - 分页
- CSS - 变量
- CSS - 媒体查询
- CSS - 值函数
- CSS - 数学函数
- CSS - Mask 属性
- CSS - shape-outside 属性
- CSS - 样式图像
- CSS - 特异性
- CSS - 自定义属性
- CSS 响应式
- CSS - 响应式网页设计 (RWD)
- CSS - 响应式设计视口
- CSS - 响应式网格视图
- CSS - 响应式媒体查询
- CSS - 响应式图像
- CSS - 响应式视频
- CSS - 响应式框架
- CSS 引用
- CSS - 所有属性列表
- CSS - 颜色引用
- CSS - 浏览器支持参考
- CSS - 网页字体
- CSS 工具
- CSS - PX 到 EM 的转换
CSS - overflow-anchor 属性
称为 Scroll Anchoring 的功能是一项浏览器功能。此功能试图防止一种常见情况,即在 DOM 完全加载之前,您可能会向下滚动网页,并且加载到当前位置上方的任何元素都会将您进一步推向页面下方。
CSS overflow-anchor 属性可用于防止此浏览器功能在加载新内容时自动滚动页面。如果加载新内容时,页面不会向上或向下滚动。
可能的值
- auto −调整滚动位置时,该元素将成为潜在的锚点。
- none -该元素不会被选为潜在锚点,从而允许内容重排。
适用于
所有 HTML 元素。
DOM 语法
object.style.overflowAnchor = "auto|none";
Safari 浏览器不支持属性 overflow-anchor。
CSS overflow-anchor - none 值
以下示例设置 overflow-anchor: none。当我们单击该按钮时,我们可以看到上面创建的新框如何将文本向下推。
<html>
<head>
<style>
.container-overflow {
padding: 2px;
width: 280px;
aspect-ratio: 1;
border: 3px solid #2d7742;
overflow: scroll;
overflow-anchor: none;
display: flex;
flex-direction: column;
align-items: center;
background-color: #2fe262;
}
.box {
background-color: #D90F0F;
width: 150px;
height: 20px;
margin: 5px;
padding: 5px;
text-align: center;
aspect-ratio: 4/1;
}
h4 {
text-align: center;
color: #1c0fd9;
}
button {
background-color: #e5e90f;
border: none;
padding: 10px;
border-radius: 5px;
font-size: medium;
}
</style>
</head>
<body>
<p>Click the button to create a new text boxes. The new text boxes will push the existing text down.</p>
<div class="container-overflow">
<div id="newText"></div>
<h4>qikepu CSS Overflow-anchor</h4>
<p>It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites</p>
<button onclick="addText()">Click me</button>
</div>
<script>
function addText(){
let newTextBox = document.querySelector("#newText");
let newTextDiv = document.createElement("div");
newTextDiv.className = "box";
newTextBox.appendChild(newTextDiv);
}
</script>
</body>
</html>
CSS overflow-anchor - auto 值
以下示例展示了如何使用 overflow-anchor: auto 属性来使用其默认的滚动锚定行为。在这里,我们看到单击按钮 (click me) 时,新文本框被添加到按钮上方。属性 overflow-anchor:当 DOM 中当前位置上方的 DOM 发生更改时,自动锁定用户在页面上的位置。这允许用户保持锚定在页面上的位置,即使新元素被加载到 DOM 中也是如此。
<html>
<head>
<style>
.container-overflow {
padding: 2px;
width: 280px;
aspect-ratio: 1;
border: 3px solid #2d7742;
overflow: scroll;
overflow-anchor: auto;
display: flex;
flex-direction: column;
align-items: center;
background-color: #2fe262;
}
.box {
background-color: #D90F0F;
width: 150px;
height: 20px;
margin: 5px;
padding: 5px;
text-align: center;
aspect-ratio: 4/1;
}
h4 {
text-align: center;
color: #1c0fd9;
}
button {
background-color: #e5e90f;
border: none;
padding: 10px;
border-radius: 5px;
font-size: medium;
}
</style>
</head>
<body>
<p>Click the button to add a new text box. The existing text will stay visible (when you set overflow-anchor: auto) even if you add new text boxes.</p>
<div class="container-overflow">
<div id="newText"></div>
<h4>qikepu CSS Overflow-anchor</h4>
<p>It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites</p>
<button onclick="addText()">Click me</button>
</div>
<script>
function addText(){
let newTextBox = document.querySelector("#newText");
let newTextDiv = document.createElement("div");
newTextDiv.className = "box";
newTextBox.appendChild(newTextDiv);
}
</script>
</body>
</html>