Depending on if you need it to go exactly to 3px, or anywhere between 9px and 3px, you could give your content to the right an absolute position. This way the content will stay put when the circle expands or decreases: JS Fiddle
Note: The actual margins/pixels do not match the desired 3-9px margins - just an a example. Change the content in the circle to see how the gap changes.
.circle {
display: inline-block;
border: 1px solid black;
border-radius: 50%;
margin-right: 9px;
padding: 10px;
height: 30px;
line-height: 30px;
}
.rightContent {
position: absolute;
left: 70px;
top: 0;
line-height: 70px;
}
Otherwise, if you do need the margin to be exactly 3px or 9px depending on the content, you will need JS.