They may be showing different because there is a problem in your HTML, maybe an extra closing div tag? Check that the HTML validates and that there is nothing odd in there. As far as I can tell that HTML you posted is not correct and that is a very possible reason for your problem.
Otherwise it may help posting some screenshots so that we can see the actual difference…
What is the difference between them?
If you are animating using position:relative then it would instead be more performant to use transform:translate instead.
Note that your top:8% on btn-position3 may not work the same cross browser unless the parent has a fixed height. Percentage top should resolve to auto if the containing block has no height defined. It looks like Firefox will apply the percentage if that class is applied to the button-base element but Chrome will not apply it because the wrapping anchor has no height defined. Firefox is incorrect in its behaviour here.