我有一个包含背景图像的数字列表。类似于以下内容:
<ul>
<li>
<figure style="background-image: url(...);"></figure>
</li>
<li>
<figure style="background-image: url(...);"></figure>
</li>
<li>
<figure style="background-image: url(...);"></figure>
</li>
</ul>
这些图像中的每个图像都将其background-size
设置为,cover
并background-attachment
设置为fixed
。
figure {
width: 100%;
height: 100%;
background-size: cover;
background-attachment: fixed;
}
当每个图形都占据整个视口时,这可以正常工作,但是如果存在任何偏移,则背景图像将被裁剪。
。
我希望图像可以垂直或水平剪切,但不能同时剪切,并且要以图形本身的大小为中心。
我知道有JavaScript解决方案,但是有没有办法使用CSS做到这一点?
不幸的是,这只是固定位置在CSS中的工作原理,而在纯CSS中则无法解决-您必须使用Javascript。
之所以出现这种情况是由于组合background-attachment: fixed
和background-size: cover
。当您指定background-attachment: fixed
它时,它实际上会使background- image
行为就像是一幅position: fixed
图像,这意味着它是从页面流和定位上下文中取出的,并且相对于视口而不是相对于其背景图像的元素。
因此,每当您同时使用这些属性时,cover
无论元素本身的大小如何,都会相对于视口的大小来计算值,这就是为什么当元素与视口的大小相同但被裁剪时,它可以按预期工作的原因元素小于视口时的意外方式。
为了解决这个问题,您基本上需要使用background-attachment: scroll
事件监听器并将其绑定到scroll
JS中的事件,该事件监听器手动更新background- position
相对于窗口已滚动的距离的相对值,以模拟固定位置,但仍background-size: cover
相对于容器元素而不是视口进行计算。
描述 (Description) background-attachment确定平铺上下文和背景图像的滚动状态。 可能的值 (Possible Values) scroll - 设置为滚动的背景图像将与文档的其余部分一起滚动。 fixed - 设置为固定的背景图像将保持锁定到位,同时文档的其余部分滚动。 适用于 (Applies to) 所有HTML元素。 DOM语法 (DOM Syntax) o
问题内容: 我有这个HTML: 使用此CSS: 我正在应用的背景图像是200x100像素,但我只想显示200x50像素的背景图像的裁剪部分。 似乎不是正确的CSS属性。我该怎么用呢? 不应使用,因为我在Sprite上下文中使用了上述CSS,在该Sprite上下文中,我要显示的图像部分小于定义CSS的元素。 问题答案: 您可以将图形放置在具有其自身尺寸上下文的伪元素中: 浏览器支持很好,但是如果需要
问题内容: 我正在尝试在属性不足的属性中混合使用和属性。基于W3C的文档 应以斜杠()分隔属性之后。 W3C示例: 等效于: 但这是行不通的!还不清楚如何在和分别具有和或具有相同的值时使用简写属性。尚不清楚slash()是如何发生的?在我的Chrome15中无法正常运行。 我试图简化的示例是此CSS代码: 一个更清洁的例子 这不起作用 这也行不通 问题答案: 您的jsfiddle使用代替 似乎是“
问题内容: 我想让div元素延伸到33%的宽度,并在CSS中完成背景图片 如何在mouseover或mouseneter上对div中的背景图像进行动画处理,是否有可以执行此操作的插件?background div必须使用background-size:cover,因为它是一个弹性页面。 我还没有小提琴,因为我不知道从哪里开始或如何开始 问题答案: 对于那些想要破解CSS过渡缩放以应用于背景尺寸的人
尽管CSS允许给任何元素添加背景,但通常用在块级元素上。 背景属性应用在目标元素上,不过考虑到大部分HTML元素是具有透明背景的,那么在 body 上应用一个背景色,看起来将是给所有透明背景元素添加了一个默认背景。 背景色(background-color) 缺省值:transparent 可被子元素继承:不能。 我们在CSS颜色单位课程中已经学习过如何定义颜色,背景色也一样: body{ bac
以下是具有背景颜色的折线图的示例。 我们已经在Google Charts Configuration Syntax一章中看到了用于绘制图表的配置 。 现在,让我们看一个带背景颜色的折线图的示例。 配置 (Configurations) 我们使用background配置来更改图表的背景颜色。 options.setBackgroundColor("#f1f8e9"); 例子 (Example) H