【CSS】解决在 flex 容器中使用 align-content 或 justify-content 属性 center 居中时的溢出滚动和截断问题 - 理解 safe 关键字
场景
<style>
.flex-wrap {
display: flex;
align-items: center;
justify-content: center;
width: 300px;
height: 150px;
& > div {
width: 100px;
height: 80px;
}
}
</style>
<div class="flex-wrap">
<div>1</div>
<div>2</div>
</div>
使用 overflow
为什么 justify-content: center;
会溢出,为什么 overflow
不是从溢出开始的地方滚动?
flex
的主轴与交叉轴
overflow scroll origin
更换 direction
解决方案
safe 关键字
.flex-wrap {
display: flex;
/* 同,在交叉轴(垂直方向)上居中时也可使用 safe */
align-items: center;
justify-content: safe center;
}
[{"url":"https://image.baidu.com/search/down?url=https://gzw.sinaimg.cn/mw2000/0085UwQ9ly1hs8s1ccmubj30mq0ao3yr.jpg","alt":""},{"url":"https://image.baidu.com/search/down?url=https://gzw.sinaimg.cn/mw2000/0085UwQ9ly1hs8s1cgt6ej30k20auaag.jpg","alt":""}]
flex-item margin: auto
.flex-wrap {
& > div:first-child {
margin-left: auto;
}
& > div:last-of-type {
margin-right: auto;
}
}
[{"url":"https://image.baidu.com/search/down?url=https://gzw.sinaimg.cn/mw2000/0085UwQ9ly1hs8sxi8cxbj30ka0aijrj.jpg","alt":""},{"url":"https://image.baidu.com/search/down?url=https://gzw.sinaimg.cn/mw2000/0085UwQ9ly1hs8sxi8v3jj30ji0acjrs.jpg","alt":""}]
添加父级,再给父级添加 overflow: auto
.flex-parent {
display: flex;
align-items: center;
justify-content: center;
overflow: auto;
.flex-wrap {
display: flex;
gap: 10px;
}
}
参考
css-align-3
css-overflow-3
Can’t scroll to top of flex item that is overflowing container
【布局技巧】Flex 布局下居中溢出滚动截断问题
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 kshao-blog-前端知识记录!
评论