Answer based on this post
You have to make a container for each circle with a 1:1 aspect ratio. thanks to Nathan Ryan who pointed out a css solution for this.
He gives a solution for a 4:3 aspect ratio but for your issue, you need a 1:1 aspect ratio. That is why you need to change margin-top:75%; to margin-top:100%; for you container .circle
Fiddle
html :
  <div class="circles">  
      <div class="circle_container">
          <div class="circle">
            <span class="circle1"></span>
          </div>
      </div>  
      <div class="circle_container">
          <div class="circle">
            <span class="circle2"></span>
          </div>
      </div> 
      <div class="circle_container">
          <div class="circle">
            <span class="circle3"></span>
          </div>
      </div>    
      <div class="circle_container">
         <div class="circle">
            <span class="circle4"></span>
          </div>
      </div>
      <div class="circle_container">
          <div class="circle">
            <span class="circle5"></span>
          </div>
      </div>  
      <div class="circle_container">
          <div class="circle">
            <span class="circle6"></span>
          </div>
      </div>
</div>
CSS :
html, body {
    background: pink;
    font-family: 'Helvetica Neue' sans-serif;
    font-size:100%;
}
.circle_container{
    float:left;
    position: relative;
    width: 30%;
    margin:10%;
}
.circle {
    margin-top: 100%
}
.circle1, .circle2,.circle3,.circle4,.circle5,.circle6 {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background: #000;
    border-radius: 50%;
}
Setting your container to float:left; instead of display:inline-blockwill avoid the "white-spaces" between your circles and you will have total control of the width and margins of your circles.