- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试创建一个仅使用 CSS 的水平滚动画廊,其中包含各种尺寸的图像。在您将此标记为重复之前(这个问题经常弹出),我确实做了很多研究,但还没有找到针对不同图像尺寸的任何解决方案。
到目前为止,我的解决方案是:
flex 盒方法:
/* setting up the site */
* {
margin: 0;
padding: 0;
}
body {
height: 100vh;
width: 100vw;
display: grid;
grid-template-columns: 1fr 8fr 1fr;
grid-template-rows: 1fr 8fr 1fr;
grid-template-areas:
". . ."
". wrap ."
". . .";
}
#wrapper {
grid-area: wrap;
overflow-x: auto;
overflow-y: hidden;
}
#wrapper ul {list-style: none;}
/* try using flexbox */
#wrapper ul {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
-webkit-overflow-scrolling: touch;
-ms-overflow-style: -ms-autohiding-scrollbar; /*suggestion from https://iamsteve.me/blog/entry/using-flexbox-for-horizontal-scrolling-navigation*/
height: 100%;
}
#wrapper ul li {
height: 100%;
flex:0 0 auto;
}
#wrapper ul li img {height: 100%;} /*<-- breaks the thing
<div id="wrapper">
<ul>
<li><a href="https://placeholder.com"><img src="http://via.placeholder.com/350x150"></a></li>
<li><a href="https://placeholder.com"><img src="http://via.placeholder.com/2000x1500"></a></li>
<li><a href="https://placeholder.com"><img src="http://via.placeholder.com/800x1800"></a></li>
<li><a href="https://placeholder.com"><img src="http://via.placeholder.com/350x150"></a></li>
<li><a href="https://placeholder.com"><img src="http://via.placeholder.com/2000x1500"></a></li>
<li><a href="https://placeholder.com"><img src="http://via.placeholder.com/350x150"></a></li>
</ul>
</div>
...但是如果我将图像的高度
设置为100%
,它会在图像后引入大量空白,从而破坏我整洁的图库。而且因为画廊包装器本身是一个没有绝对尺寸的网格元素,所以我唯一的选择是计算 vh
中图像的最终高度,这违背了使用 的全部目的FR
。我错了吗?还有更简单的方法吗?
旧的方法是使用 inline-block
,它有基本相同的问题:
/* setting site up */
* {
margin: 0;
padding: 0;
}
body {
height: 100vh;
width: 100vw;
display: grid;
grid-template-columns: 1fr 8fr 1fr;
grid-template-rows: 1fr 8fr 1fr;
grid-template-areas:
". . ."
". wrap ."
". . .";
}
#wrapper {
grid-area: wrap;
overflow-x: auto;
overflow-y: hidden;
}
#wrapper ul {list-style: none;}
/* trying inline-block */
#wrapper ul {
height: 100%;
display: block;
overflow-x: auto;
overflow-y: hidden;
white-space: nowrap;
}
#wrapper ul li {
display: inline-block;
height: 100%;
}
#wrapper ul li img {
height: 100%;
}
<div id="wrapper">
<ul>
<li><a href="https://placeholder.com"><img src="http://via.placeholder.com/350x150"></a></li>
<li><a href="https://placeholder.com"><img src="http://via.placeholder.com/2000x1500"></a></li>
<li><a href="https://placeholder.com"><img src="http://via.placeholder.com/800x1800"></a></li>
<li><a href="https://placeholder.com"><img src="http://via.placeholder.com/350x150"></a></li>
<li><a href="https://placeholder.com"><img src="http://via.placeholder.com/2000x1500"></a></li>
<li><a href="https://placeholder.com"><img src="http://via.placeholder.com/350x150"></a></li>
</ul>
</div>
第三个选项有点太过分了,也不适合移动设备。
那么有解决办法吗?
编辑:图库应具备的特性/属性:
最佳答案
你可以这样做:
* {margin:0;padding:0;box-sizing:border-box}
html, body {width:100%}
#wrapper {
display: flex;
justify-content: center; /* horizontal alignment / centering of the ul */
width: 1000px; /* for presentation */
max-width: 100%; /* responsiveness */
margin: 0 auto; /* horizontal alignment / centering on the page */
}
#wrapper > ul {
list-style: none;
display: flex;
overflow: auto; /* better this way */
overflow-y: hidden; /* appears just a little, don't know why (yet), needs to be set to hide it and make it look nicer */
max-height: 100vh;
}
#wrapper > ul > li {
height: 150px; /* needs to match the height of the "shortest" img or be less than that but not more */
flex: 0 0 auto; /* mandatory */
max-height: 100vh;
}
img { /* responsiveness */
display: block; /* to remove the bottom margin */
height: 100vh;
max-width: 100%;
max-height: 100%; /* mandatory */
}
<div id="wrapper">
<ul>
<li><a href="https://placeholder.com"><img src="http://via.placeholder.com/350x150"></a></li>
<li><a href="https://placeholder.com"><img src="http://via.placeholder.com/2000x1500"></a></li>
<li><a href="https://placeholder.com"><img src="http://via.placeholder.com/800x1800"></a></li>
<li><a href="https://placeholder.com"><img src="http://via.placeholder.com/350x150"></a></li>
<li><a href="https://placeholder.com"><img src="http://via.placeholder.com/2000x1500"></a></li>
<li><a href="https://placeholder.com"><img src="http://via.placeholder.com/350x150"></a></li>
</ul>
</div>
关于仅 CSS 水平滚动画廊,带有各种尺寸的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47527397/
我正在为我的网站编辑/创建以下脚本。正如你在下面看到的,我希望他添加一个 在每一行的开头。 (很难解释)。然后使用 var“getal”,我希望他在 4 个项目之后结束这个 DIV 标签(4x for
您好,我想使用 android 画廊和 gridview 教程开发相册,当我在 gridview 中单击图像时,单击图像位置的画廊 Activity 。 最佳答案 如果我是对的,您需要使用其位置转到图
我正在计划一个动态的 PHP 照片库,但在确定通过 MySQL 检索缩略图后显示缩略图的最佳方式时遇到了困难。我考虑过使用内联无序列表,但这导致拇指一个叠一个(触摸)。还尝试了一个表格,但不确定如何在
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
您好,我在使用 JS 创建动态图库时遇到了问题: 我不知道如何使用 JS - “gallery-pk-1-1”获取我的画廊 我不会用JS在相册中添加图片 点击打开漂亮的画廊(如果我只是使用上
有人会告诉我为什么:悬停不检测正确的 child 只将整体视为一个元素,即使我区分了更多的 child 并且一直在同一屏幕上更改我,如何解决?当我尝试将鼠标悬停在元素“.image”上时,我需要这样做
我正在尝试制作一个响应式 9×9 画廊,在悬停时带有叠加层(尝试使用带有颜色和文本的 div)。像这样:Slide in Overlay from the Bottom . 但是,我不能完全覆盖图像。
我想实现一个允许用户将项目拖出的画廊。这不应该妨碍滚动/滑动。 鉴于界面布局,用户只能沿垂直路径将项目拖出图库,并水平滚动图库。 这可行吗?有没有一种简单的方法来检测水平运动,将它们推迟到画廊的事件处
我正在尝试使用 Gallery 小部件构建一组水平滚动的 Web View 。问题是我无法滑动 View ,这当然适用于图像库。按照食谱代码,在 Activity 的 onCreate() I 中:
我正在尝试获取一个 slider 来展示我在帖子中的图片。我目前已设置好所有内容,但我只有一个 li 元素显示所有三张图片。我很想拥有三个 li 元素,每个元素显示一张图片,但我不知道如何自动隔离每张
我们使用的是 jQuery 1.7.1 和 Fancybox 1.3.4。我是 Fancybox 的新手。昨天之前我从未使用过它,但它在我正在工作的网站上广泛使用。设立 Fancybox 的人被解雇了
我想在我的 Activity 中查看画廊,但我不知道它发生了什么,它没有显示任何内容并崩溃。 在创建 Activity 方法时,我有: // initializing gallery view wit
我想根据数组中设置的图像数量创建一个图像 block 。喜欢这个画廊 block : [![在此处输入图像描述][1]][1] 我尝试的是这样的:
我有几个Venobox同一页面上的画廊。有些画廊有数百张照片,这就是为什么我只显示每个画廊的前 3 张缩略图。 当用户开始查看某个图库(单击任何缩略图)时,必须出现单击的图像,并且后台
我正在将 GLightbox JS 库用于作品集图库,并希望在单击内部元素外部时能够关闭图库。 我发现了类似性质的其他问题,但我避免使用 jQuery,并且无法找到适合此特定用例的解决方案。另外,看起
所以我试图循环遍历这个数组并每隔几秒更改一个图像源。现在我有一个 onload 事件调用 setTimeOut 方法,我认为该方法应该在页面加载后 5 秒更改图像,但它是立即执行的。问题是什么?这是我
我对 javascript 相当陌生,但我基本上试图通过图库进行下一次/上一次点击。我设法找到了教程和位来获取图像以供点击。但是我似乎无法弄清楚如何在第四张(最后一张)图像之后返回到该系列的开头。 这
我有一页 6 张图片,每张图片都不同的房子。单击时,我希望每张图像都能打开一个 fancybox 画廊,其中包含同一所房子的 4 张新的更详细的图像。最后,我希望 fancybox 中的 4 张详细照
我正在开发一个带有缩略图的简单 jQuery 图片库。 我想要的部分功能是,如果您单击当前显示的主画廊幻灯片 .show,它会删除 show 类,并淡出然后淡入下一张幻灯片并向其添加一个 show 类
我正在创建一个模板。除了 jquery 图像库之外,所有 xhtml/css 工作都已完成。周围有太多jquery库,我不知道如何根据情况定制它们 这是一个三列模板。第一列有导航。第二列将从第三列的缩
我是一名优秀的程序员,十分优秀!