html - 极简图像 slider 包含使用背景图像转换的最低限度的 HTML 和 CSS

标签 html css flexbox background background-image

在尝试使用尽可能少的HTML代码(并尽可能多地放入CSS中)设置背景时,我陷入了这个 jsfiddle 演示。

主要问题
为什么第三张和第四张幻灯片的背景大小中心原点与第一张和第二张幻灯片不同?删除 -image 部分并仅使用简写 background 显然会破坏背景位置和居中,尽管这些规则是在 CSS 中明确设置的。我忽略了什么?

额外问题
过渡有两种效果:首先是水平滑动效果,然后是最后的放大效果。是否可以使两种效果并行工作,而不是一个接一个地工作?换句话说,在幻灯片水平滑动时开始缩放,以获得更动态的平滑过渡?

.

style="background-image: url(https://...
提供所需的缩放/居中结果,背景图像很好地拟合/居中:
enter image description here

.

style="background: url(https://...
给出了不需要的结果,背景图像未正确拟合/居中:
enter image description here

最佳答案

CSS 变量就是为此目的而创建的,您可以调整背景大小以获得所需的过渡效果:

container {
  display: flex;
  margin: auto;
  width: 612px;
  outline: 1px solid black;
  height: 306px;
}

slide {
  flex: 1;
  background-image: var(--i);
  background-position: center;
  background-size: auto 100%;
  padding: 2px 0 0 2px;
  color: rgba(0, 0, 0, 0.5);
  transition: all .67s ease;
}

container slide:hover {
  flex: 15;
  background-size: auto 120%;
}
<container>
  <slide style="--i: url(https://cdn.dribbble.com/users/729829/screenshots/4185141/galshir-cactus-coffee.png)">1</slide>
  <slide style="--i: url(https://cdn.dribbble.com/users/729829/screenshots/6146136/galshir-tea-biscuit_2x.png)">2</slide>
  <slide style="--i: url(https://cdn.dribbble.com/users/729829/screenshots/4185141/galshir-cactus-coffee.png)">3</slide>
  <slide style="--i: url(https://cdn.dribbble.com/users/729829/screenshots/6146136/galshir-tea-biscuit_2x.png)">4</slide>
</container>

关于html - 极简图像 slider 包含使用背景图像转换的最低限度的 HTML 和 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66695234/

相关文章:

html - 使淡入淡出在 ng show 和 hide 上更平滑

javascript - 堆叠式进度条

css - WP 排队问题 : Script not loading files

javascript - 如何使用 CSS 或 Javascript 隐藏和显示 DIV

javascript - Angular 2 : Form submission canceled because the form is not connected

javascript - 在输入单选更改时禁用部分中的所有元素

css - 如何在 primefaces 的北方布局下隐藏空白区域?

css - 如何使 flexbox 尺寸强制容器的增长

html - bootstrap 下拉菜单使用 flexbox 和 space-between 内容来填充空间

html - 如何消除 flex 元素内的差距?