JavaScript/ECMAscript 6 classes organization
Most interesting,


In BaseObject, you should really have a constructor that builds this.listeners, it would make your code much cleaner afterwards
I am not sure why your listeners are not private in BaseObject ?
I am not sure what is more important to you, learn EC6 or position divs efficiently, if the latter is more important, than this code is massive overkill ;)


If you want to avoid having a constructor for BaseObject, then I would re-write on like this:

on(eventname,func){
    this.listeners = this.listeners || [];
    this.listeners[eventname] = this.listeners[eventname] || [];
    this.listeners[eventname].push(func);
    return this;
}