<div class="t"> <div class="tc"> <div class="loader"> <div class="left"><span></span></div> <div class="right"><span></span></div> </div> </div> </div>
/* page */ html, body { height: 100%; margin: 0 } body { background-image: url('http://thumbs.media.smithsonianmag.com//filer/6d/20/6d207ae8-0c3c-455a-8ff2-8d3a7cf37ce0/smithsonian-photo-contest-winner-2012-crop.jpg__800x600_q85_crop.jpg'); background-position: center center; background-size: cover; } .t { width: 100%; height: 100%; display: table; } .tc { text-align: center; vertical-align: middle; display: table-cell; } /* radial loader */ .loader { display: inline-block; position: relative; } .left, .right { margin-top: -50px; margin-left: -50px; position: absolute; clip: rect(0, 100px, 100px, 50px); } .right { clip: rect(0px, 50px, 100px, 0px); } .left span, .right span { width: 80px; height: 80px; border-radius: 100%; position: absolute; opacity: 0.7; border: 10px solid #fff; } .left span { clip: rect(0px, 50px, 100px, 0px); -webkit-animation: rotate-left 5s infinite linear; -moz-animation: rotate-left 5s infinite linear; -ms-animation: rotate-left 5s infinite linear; -o-animation: rotate-left 5s infinite linear; animation: rotate-left 5s infinite linear; } .right span { clip: rect(0, 100px, 100px, 50px); -webkit-animation: rotate-right 5s infinite linear; -moz-animation: rotate-right 5s infinite linear; -ms-animation: rotate-right 5s infinite linear; -o-animation: rotate-right 5s infinite linear; animation: rotate-right 5s infinite linear; } /* rotate-left */ @-webkit-keyframes rotate-left { 0% { -webkit-transform: rotate(0deg); } 50% { -webkit-transform: rotate(180deg); } 100% { -webkit-transform: rotate(180deg); } } @-moz-keyframes rotate-left { 0% { -moz-transform: rotate(0deg); } 50% { -moz-transform: rotate(180deg); } 100% { -moz-transform: rotate(180deg); } } @-ms-keyframes rotate-left { 0% { -ms-transform: rotate(0deg); } 50% { -ms-transform: rotate(180deg); } 100% { -ms-transform: rotate(180deg); } } @-o-keyframes rotate-left { 0% { -o-transform: rotate(0deg); } 50% { -o-transform: rotate(180deg); } 100% { -o-transform: rotate(180deg); } } @keyframes rotate-left { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(180deg); } } /* rotate-right */ @-webkit-keyframes rotate-right { 0% { -webkit-transform: rotate(0deg); } 50% { -webkit-transform: rotate(0deg); } 100% { -webkit-transform: rotate(180deg); } } @-moz-keyframes rotate-right { 0% { -moz-transform: rotate(0deg); } 50% { -moz-transform: rotate(0deg); } 100% { -moz-transform: rotate(180deg); } } @-ms-keyframes rotate-right { 0% { -ms-transform: rotate(0deg); } 50% { -ms-transform: rotate(0deg); } 100% { -ms-transform: rotate(180deg); } } @-o-keyframes rotate-right { 0% { -o-transform: rotate(0deg); } 50% { -o-transform: rotate(0deg); } 100% { -o-transform: rotate(180deg); } } @keyframes rotate-right { 0% { transform: rotate(0deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(180deg); } }