/* * Visual Portfolio Lazyload Images fallback for old browsers * which does not support CSS :has() */ :is(.vp-portfolio__item-img, .vp-portfolio__thumbnail-img) { // Extra check for lazy loading class on the inner image // to make sure image will be lazy loaded by Visual Portfolio. &:is(.vp-has-lazyload, .vp-has-lazyloading, .vp-has-lazyloaded)::before { position: absolute; top: 0; right: 0; bottom: 0; left: 0; // Fixed possible bug with inaccessible links on images in the Classic style. pointer-events: none; visibility: visible; content: ""; background-image: var(--vp-lazyload-images__background); background-size: var(--vp-lazyload-images__background-size); opacity: 1; transition: var(--vp-lazyload-transition-duration) var(--vp-lazyload-transition-duration) opacity, var(--vp-lazyload-transition-duration) var(--vp-lazyload-transition-duration) visibility; } &:is(.vp-has-lazyloading)::before { animation: vp-lazyload-placeholder var(--vp-lazyload-images__animation-duration) linear infinite; } &:is(.vp-has-lazyloaded)::before { visibility: hidden; opacity: 0; } }