Doing this in CSS requires a bit of a hack, but it can be done. You are going to have to do a bit of math, and find how to correctly time the animation:
div {
width: 300px;
height: 300px;
animation: anim 300s infinite;
background: brown;
}
@keyframes anim {
0% {
background: red;
}
0.33% {
background: blue;
}
100% {
background: blue;
}
}
JSFiddle demo
The one problem with this is that it is harder to change the timing. With the current setting, the red - blue
transition takes 1 second, like you had in your JSFiddle.
How you calculate it is simple:
100 / #_seconds = percentage in animation for 1 sec
e.g. 100 / 300 = 0.33
You can read more about this at this site:
http://samuelmichaud.fr/2013/web-design/add-a-delay-between-repeated-css3-animations/