Я не могу пояснять, некогда, но задача же понятная - надо сдвигать блок вручную, то есть скриптом. На чистом цсс... хз, карочи, там просто
dropdown_align=function(){
var ns=button.nextSibling,ps=button.previousSibling,
dd=button.querySelector('.ddc_window'),ds=dd.style;
ds.left=ds.right='';
if(!ps||button.offsetLeft-ps.offsetLeft<0) ds.left='0px';
else if(!ns || ns.offsetLeft<button.offsetLeft) ds.right='7px';
else {var bw=button.getBoundingClientRect().width,
dw=dd.getBoundingClientRect().width;
ds.right=((bw-dw)/2)+'px';}
},
В точности такая же была задача и вот это ^^^ все четенько выравнивает.