This might not have anything to do with ExtJS, but I have to provide all information in order to get a proper answer :D.
I have an application that uses ExtJS 4.1 for displaying some grid panels.
When I run the application on localhost, everything looks as it should.
When I deploy the application on a remote server, the grids are no longer displayed as required in IE8: all the information is squeezed in the table, irrespective of the column alignment(the column headers are good, but the other cells are overlapping).
To make things more general:
The same application runs good on localhost(no matter on what computer), but when I deploy it on a server, IE8 doesn’t display things as it should. This happens because of the CSS or JavaScript files(probably both related to ExtJS).
Why?
Per the OP’s request to post this as an answer:
By default, IE runs with Compatibility View enabled for Intranet sites. The reasoning for this was probably that most intranet sites using IE were written specifically for IE, and thus would break when IE began adhering more closely to standards.
This potentially causes a difference between what is viewed locally versus on an intranet (and on the internet). This can be changed across the board with a Windows group policy; some organizations are receptive to this, some can’t/won’t make a change.
If declaring
meta http-equiv="X-UA-Compatible" content="IE=edge"doesn’t fix the behavior (as stated in the comments), I would start by checking that compatibility view actually is the problem.Other Possibilities
I’m assuming that you have the correct doctype in place (e.g. HTML 5 or HTML 4 strict, though I believe others will work fine too). This works in conjunction with the “X-UA-Compatible” declaration.
Malformed markup can trigger Quirks Mode, which looks atrocious in almost any scenario. That’s probably not the case, since it looks fine locally but it’s easy to check. Make sure that your document is reasonably valid and–more importantly–that there are no leading characters before your DTD (which confuses the parser). Incorrect server code can cause data to be written to the response stream before the HTML, leading to this behavior.
Lastly, reduce the problem to its simplest form, i.e. find the most basic markup which causes the behavior. If this doesn’t give you any insight, post the broken code in a JS Fiddle.