Удалить пробел в CSS-выделении
Я пытаюсь добавить эффект выделения с помощью CSS3-анимации в Wordpress, так как он не поддерживает <marquee>
тег. Я хотел бы избавиться от пустого пространства между каждой петлей. Я пытался использовать Nowrap, но это не работает.
@keyframes marquee {
0% {
text-indent: 430px
}
100% {
text-indent: -485px
}
}
@-webkit-keyframes marquee {
0% {
text-indent: 430px
}
100% {
text-indent: -485px
}
}
.marquee {
font-size: 50px;
overflow: hidden;
white-space: nowrap;
animation: marquee 12s linear infinite;
-webkit-animation: marquee 12s linear infinite;
}
.marquee:hover {
-webkit-animation-play-state: paused;
animation-play-state: paused;
}
<p class="marquee">
<a href="#">
SOON SOON SOON SOON SOON SOON SOON </a></p>
Ссылка здесь: http://www.houseofbase.fr/preview/wordpress/comingsoon/
4 ответа
Решение
Это не очень хорошая идея для использования text-indent
для преобразования. Используйте это вместо вашей анимации:
@keyframes marquee {
0% {
transform: translateX(100vw);
}
100% {
transform: translateX(-100vw);
}
}
@-webkit-keyframes marquee {
0% {
transform: translateX(100vw);
}
100% {
transform: translateX(-100vw);
}
}
@keyframes marquee {
0% {
transform: translateX(100vw);
}
100% {
transform: translateX(-100vw);
}
}
@-webkit-keyframes marquee {
0% {
transform: translateX(100vw);
}
100% {
transform: translateX(-100vw);
}
}
.marquee {
font-size: 50px;
overflow: hidden;
white-space: nowrap;
animation: marquee 12s linear infinite;
-webkit-animation: marquee 12s linear infinite;
}
.marquee:hover {
-webkit-animation-play-state: paused;
animation-play-state: paused;
}
<p class="marquee">
<a href="#">
SOON SOON SOON SOON SOON SOON SOON </a></p>
Как то так делай что хочешь.
.marquee {
width: 100%;
height: 80px;
margin: 0 auto;
overflow: hidden;
white-space: nowrap;
}
.marquee-content {
display: inline-block;
margin-top: 5px;
animation: marquee 10s linear infinite;
}
.item-collection-1 {
position: relative;
left: 0%;
animation: swap 10s linear infinite;
}
@keyframes swap {
0%, 50% {
left: 0%;
}
50.01%,
100% {
left: 100%;
}
}
.marquee-content:hover {
animation-play-state: paused
}
.item1 {
display: inline-block;
height: auto;
width: 500px;
background: cyan;
vertical-align: top;
margin-left: 15px;
}
.item2 {
display: inline-block;
height: auto;
width: 500px;
background: magenta;
vertical-align: top;
margin-left: 15px;
}
/* Transition */
@keyframes marquee {
0% {
transform: translateX(0)
}
100% {
transform: translateX(-100%)
}
}
<div class="marquee">
<div class="marquee-content">
<span class="item-collection-1">
<span class="item1"><a href="http://www.google.com">soon soon soon soon soon soon soon soon soon soon soon soon soon soon</a></span>
<span class="item1"><a href="http://www.google.com">soon soon soon soon soon soon soon soon soon soon soon soon soon soon</a></span>
</span>
<span class="item-collection-2">
<span class="item2"><a href="http://www.google.com">soon soon soon soon soon soon soon soon soon soon soon soon soon soon</a></span>
<span class="item2"><a href="http://www.google.com">soon soon soon soon soon soon soon soon soon soon soon soon soon soon</a></span>
</span>
</div>
<div>
Не знаю, если я понимаю, но попробуйте использовать отрицательное поле слева, как:
.marquee a{ margin-left: -50%; }