是否可以使用 CSS 将文本添加到悬停时的每个图像路径?
Is it possible to add text to every image path on hover using CSS?
我想知道,我的网站上有很多图片的行为取决于 class。例如,我想知道是否可以使用 CSS 来执行此操作。
.willReactOnHover.class1{ background: url('../images/image1.png');}
.willReactOnHover.class2{ background: url('../images/image2.png');}
然后,悬停
.willReactOnHover:hover{
background: /*Here, .class1 would be .image1-hover.png AND
.class2 would be .image2-hover.png */
}
我不知道是否可以只在所有现有路径上添加一个后缀 -hover,即使不同...我知道 javascript 我可以,但我喜欢纯粹的 CSS 解决方案,否则我必须为每个 class 创建悬停事件,但由于每个 class 的任务相同,我不知道是否有最佳方法。或者我可以使用 CSS 选择器来实现这个目标吗?
您似乎可以为每个需要的 class 定义一个 CSS 规则。
也许以下内容对您有所帮助。
.willhover.class1 {
color: blue;
}
.willhover.class2 {
color: green;
}
.willhover.class1:hover {
background-color: yellow;
}
.willhover.class2:hover {
background-color: beige;
}
<div class="willhover class1">Class 1</div>
<div class="willhover class2">Class 2</div>
但是,您仍然需要创建特定的两种类型的 CSS 规则,一种用于指向非悬停图像,另一种用于指向悬停图像。
在 CSS-3 之前人们经常使用 background-position
和图像精灵,所以你可以使用老马背景位置,像这样:
.willReactOnHover.class1{ background: url('../images/image1.png');}
.willReactOnHover.class2{ background: url('../images/image2.png');}
.willReactOnHover:hover{
background-position:-10px;
}
不幸的是,目前这对于纯 CSS 似乎是不可能的。如果你使用预处理器,比如 LESS, you could use a loop 来很容易地完成你想要的:
例子CSS
@url: "../images/image";
@ext: ".png";
@hover: "_hover";
.generate-images(5);
.generate-images(@n, @i: 1) when (@i =< @n) {
.class@{i} {
background-image: url("@{url}@{i}@{ext}");
}
.class@{i}:hover {
background-image: url("@{url}@{i}@{hover}@{ext}");
}
.generate-images(@n, (@i + 1));
}
演示
我想知道,我的网站上有很多图片的行为取决于 class。例如,我想知道是否可以使用 CSS 来执行此操作。
.willReactOnHover.class1{ background: url('../images/image1.png');}
.willReactOnHover.class2{ background: url('../images/image2.png');}
然后,悬停
.willReactOnHover:hover{
background: /*Here, .class1 would be .image1-hover.png AND
.class2 would be .image2-hover.png */
}
我不知道是否可以只在所有现有路径上添加一个后缀 -hover,即使不同...我知道 javascript 我可以,但我喜欢纯粹的 CSS 解决方案,否则我必须为每个 class 创建悬停事件,但由于每个 class 的任务相同,我不知道是否有最佳方法。或者我可以使用 CSS 选择器来实现这个目标吗?
您似乎可以为每个需要的 class 定义一个 CSS 规则。
也许以下内容对您有所帮助。
.willhover.class1 {
color: blue;
}
.willhover.class2 {
color: green;
}
.willhover.class1:hover {
background-color: yellow;
}
.willhover.class2:hover {
background-color: beige;
}
<div class="willhover class1">Class 1</div>
<div class="willhover class2">Class 2</div>
但是,您仍然需要创建特定的两种类型的 CSS 规则,一种用于指向非悬停图像,另一种用于指向悬停图像。
在 CSS-3 之前人们经常使用 background-position
和图像精灵,所以你可以使用老马背景位置,像这样:
.willReactOnHover.class1{ background: url('../images/image1.png');}
.willReactOnHover.class2{ background: url('../images/image2.png');}
.willReactOnHover:hover{
background-position:-10px;
}
不幸的是,目前这对于纯 CSS 似乎是不可能的。如果你使用预处理器,比如 LESS, you could use a loop 来很容易地完成你想要的:
例子CSS
@url: "../images/image";
@ext: ".png";
@hover: "_hover";
.generate-images(5);
.generate-images(@n, @i: 1) when (@i =< @n) {
.class@{i} {
background-image: url("@{url}@{i}@{ext}");
}
.class@{i}:hover {
background-image: url("@{url}@{i}@{hover}@{ext}");
}
.generate-images(@n, (@i + 1));
}
演示