I am trying to get an image on a background image both of which should be responsive. I have it working in Chrome and IE10/11 on Windows, and even Safari 8 on iPhone, but in Firefox the background image isn’t displayed at all - the h1 has 0 height.
That works fine. However, my container is display: flex which seems to scupper the layout, even though the header isn’t a flex element. Looks like I need a rethink!
If container is display:flex then all those direct children (header,left-column,main,right-column,footer) are flex items and will behave as flex items as directed by the rules you have set for the flex container.
It all depends what you are using flex for but there is a bug/behaviour in flexbox where percentage padding and margins are treated as zero.
So the question still comes down to what have you got planned for that layout and why the need for flex? You may be able to use another method instead or indeed just use flex for certain items.