I have taken Tom answer and added overflow: hidden to the div.
This way, you don't need to set the div on the border of the body
CSS
#circle {
position: relative;
left: 40px;
top: 40px;
width: 100px;
height: 100px;
overflow: hidden;
}
#circle:after {
width: 100px;
height: 100px;
background: red;
border-radius: 50%;
display: block;
content: '';
position: absolute;
top: -20px;
left: -5px;
}