html - 当屏幕尺寸减小时,如何使最左边的弹性项目保持固定在屏幕上,而其他弹性项目向右移动并向右溢出?
问题描述
我正在创建一个响应式首页,其中包含随页面调整大小的文章。我有一个 div 'flex-container' 将包含 3 或 4 篇文章,也许更多。如果页面尺寸增加,文章会展开,如果页面尺寸减小,它们会被挤在一起并略微重叠,用户可以向右滚动以查看屏幕上的文章。
我希望 'flex-continainer' div 的左侧保持固定在屏幕的左侧,并且只有它的右侧从屏幕的右侧流出,因此第一篇文章始终可见并且用户必须向右滚动才能看到其余部分。我很难做到这一点并使滚动条正确显示。随着屏幕尺寸的缩小,'flex-container' div 的中心保持在屏幕的中心,并且文章从屏幕的左侧和右侧溢出。所以第一篇文章的左侧是不可见的。
.flex-container {
display: flex;
padding: 0;
margin: 0;
width: 100vw;
height: 100vh;
align-items: center;
justify-content: space-evenly;
background-color: grey;
overflow-x: scroll;
}
.article {
display: flex;
width: 30%;
min-width: 200px;
max-width: 400px;
height: 50%;
padding: 20px;
margin-left: -30px;
border: solid 4px white;
border-radius: 16px;
background: linear-gradient(270deg, rgba(0, 0, 0, 0.8), rgb(77, 74, 74));
box-shadow: -10px 0px 10px 10px rgba(0, 0, 0, 0.3);
}
.article:hover {
z-index: 1;
}
h2 {
font-size: 2.5vw;
}
<div class="flex-container">
<div class="article">
<h2>Heading 1</h2>
</div>
<div class="article">
<h2>Heading 2</h2>
</div>
<div class="article">
<h2>Heading 3</h2>
</div>
</div>
解决方案
我认为,如果您将margin-right
第一篇文章设置为0
并省略justify-content
容器,您将获得所需的结果。
工作示例:
.flex-container {
display: flex;
padding: 0;
margin: 0;
width: 100vw;
height: 100vh;
align-items: center;
background-color: grey;
overflow-x: scroll;
}
.article {
display: flex;
width: 30%;
min-width: 200px;
max-width: 400px;
height: 50%;
padding: 20px;
margin-left: -30px;
border: solid 4px white;
border-radius: 16px;
background: linear-gradient(270deg, rgba(0, 0, 0, 0.8), rgb(77, 74, 74));
box-shadow: -10px 0px 10px 10px rgba(0, 0, 0, 0.3);
}
.article:first-child {
margin-left: 0;
}
.article:hover {
z-index: 1;
}
h2 {
font-size: 2.5vw;
}
<div class="flex-container">
<div class="article">
<h2>Heading 1</h2>
</div>
<div class="article">
<h2>Heading 2</h2>
</div>
<div class="article">
<h2>Heading 3</h2>
</div>
</div>
推荐阅读
- ios - App Store Connect TestFlight 显示没有构建
- javascript - 如何防止 ReactJS 中的双击
- python - 向 hr.employees 添加字段
- javascript - 在 Electron 中使用“remote-debugging-port”时如何获取 Chrome 的远程调试 URL?
- python - How to iterate through the inputs to a function
- python - 模块“numba.findlib”没有属性“get_lib_dir”
- isabelle - Power with integer exponents in Isabelle
- assembly - 如何修复 i386-elf-_g++ x86_64-elf-g++:找不到命令
- artificial-intelligence - What are the differences between a production system and an expert system?
- dart - How to avoid writing an import for every single file in dart/flutter?