html - 对齐溢出内的项目:在容器内以全宽滚动
问题描述
所以这有点复杂......我有一个设置最大宽度的容器,在该容器内我有一个滑块,我希望它是全宽的,带有溢出-x:滚动,以便它滚动里面的内容它水平。
我使用此处找到的代码 ( https://css-tricks.com/full-width-containers-limited-width-parents/ ) 来强制容器内的全宽滑块 div 拉伸到屏幕边缘。
但是,在初始加载时,我希望滑块内第一项的 LEFT SIDE 与容器的左侧对齐(但当用户滚动时仍滚动到边缘),然后当用户到达最后一项时滑块,我希望这个项目继续滚动,直到它碰到容器的右侧。
我认为我需要在:first-child
和:last-child
psuedo 上使用一些左/右边距做一些聪明的事情,但我无法弄清楚确保第一个项目完全从容器的左边缘开始,然后是最后一个孩子是什么总是在右边缘完成。(在任何屏幕尺寸下)
到目前为止,我已经设置了一个小提琴:
https://jsfiddle.net/89bk1fyp/
.container {
max-width:600px;
margin:0 auto;
position:relative;
background-color:#dedede;
}
.full-width-slider {
overflow-x: auto;
display:flex;
width: 100vw;
position: relative;
left: 50%;
right: 50%;
margin-left: -50vw;
margin-right: -50vw;
}
.one-item {
min-width:300px;
margin:20px 20px 20px 0;
background-color:#000;
color:#000;
}
<div class="container">
<div class="full-width-slider">
<div class="one-item">
Lorem Ipsum
</div>
<div class="one-item">
Lorem Ipsum
</div>
<div class="one-item">
Lorem Ipsum
</div>
<div class="one-item">
Lorem Ipsum
</div>
<div class="one-item">
Lorem Ipsum
</div>
<div class="one-item">
Lorem Ipsum
</div>
</div>
</div>
第一个黑框,我希望它在灰色容器的左边缘开始,但是当用户向右滚动时滚动到屏幕边缘......我想在灰色容器的右边缘结束的最后一个黑框,但仍然是全宽。
也许是这样的:
.one-item:first-child {
margin-left: Calc?
}
.one-item:last-child {
margin-right: Calc?
}
希望那是有道理的!?
解决方案
您几乎可以根据此处使用的公式https://css-tricks.com/full-width-containers-limited-width-parents/#with-known-non-parent-width
它需要取反值,因为它用于使用负边距将全宽元素拖到两侧 - 你想要相反的情况,你希望第一个和最后一个滑块项目远离外边缘价值。
.one-item:first-child {
margin-left: calc(-.5 * (-100vw + 600px));
}
.one-item:last-child {
margin-right: calc(-.5 * (-100vw + 600px));
}
推荐阅读
- r - FUN(X[[i]], ...) 中的错误:使用 R 子组分析时,结果必须以 0/1 数字形式提供
- python - 使用 google colab pro termianl 自动运行 notebook
- java - Spring 处理 bean 与库的冲突
- reactjs - React 问题路由:无需第二次重新渲染
- python - 调用类内部的方法将对象保存在字典中
- node.js - nodemailer 错误,获取:无效登录:451 4.7.0 临时服务器错误。请稍后再试。(研究过,stackoverflow上的资源有限)
- remote-desktop - Microsoft 的远程桌面连接 (mstsc.exe) 在哪里缓存 OCSP 响应?
- php - 如何在 WordPress Shortcode 中为 UTF-8 Url 编码转换重音字母
- python - 在 jupyer notebook 中改变 pandas df 的外观
- r - R中的foreach循环为我的数组输出返回NA值