This is like everything being consistently displayed in IE, FireFox and Chrome:
<!DOCTYPE html> <html style="min-width:100%;min-height:100%;height:100%;width:100%"> <body style="margin:0;min-width:100%;min-height:100%;height:100%;width:100%"> <div style="display:table;width:100%;height:100%;min-width:100%;min-height:100%;"> <div style="display:table-row;background:red;"> <div style="display:table-cell">A</div> </div> <div style="display:table-row;background:green;"> <div style="display:table-cell;background:yellow;width:100%;height:100%;">B</div> </div> <div style="display:table-row;background:blue;height:50px;"> <div style="display:table-cell">C</div> </div> </div> </body> </html>
The only difference is that I added display:table-cell divs in each table. It will have a height "C" of 50px, a minimum line of "A", and the rest will be filled with a yellow line of "B".
Looks like you can just leave by simply changing this inner βBβ div from display:block to display:table-cell , but I find it best to always have a table-cell in your table-row (could I be wrong? )
Screenshot of all three browsers with my changes:

EDIT:
If you are trying to make your lines be of equal height, you can use this markup:
<!DOCTYPE html> <html style="min-width:100%;min-height:100%;height:100%;width:100%"> <body style="margin:0;min-width:100%;min-height:100%;height:100%;width:100%"> <div style="display:table;width:100%;height:100%;min-width:100%;min-height:100%;"> <div style="display:table-row;background:red;height:33%"> <div style="display:table-cell">A</div> </div> <div style="display:table-row;background:green;height:33%"> <div style="display:table-cell;background:yellow;">B</div> </div> <div style="display:table-row;background:blue;height:33%;"> <div style="display:table-cell">C</div> </div> </div> </body> </html>

source share