Es posible que desee cambiar !(IE)
a (!IE)
Además, el "normal" <body>
etiqueta que está hablando es de un comentario condicional. El hecho de que esté en una línea diferente no importa, todavía está dentro de la etiqueta de comentario condicional, por lo que se ve afectado como tal.
Comentarios condicionales para el trabajo IE mediante el uso de comentarios HTML normales <!-- -->
por lo que cualquier código dentro de un condicional "falso" se acaba de comentar; <!-- <body class="ie6"> -->
IE entonces tiene su propia sintaxis dentro de eso. Como tal, los navegadores que no son de IE solo ven una cadena comentada, y IE la trata como una declaración para ejecutar.
Debido a esto, solo se muestra una etiqueta de cuerpo, y solo esa se usa.
Más explicación de
<!--[if (gt IE 9)|!(IE)]><!-->
<body>
<!--<![endif]-->
Para IE, esto dice:
<if greater than ie9, or not ie> (ie conditional comment)
<!--> (empty comment) (--> putting this here to stop SO ruining syntax highlighting :D)
<body>
<end if> (ie conditional comment)
Si usted no entiende por qué, lea el párrafo que comienza "comentarios condicionales para el trabajo de IE .. . ".
Este mismo bloque, a cualquier otro navegador tiene el siguiente aspecto:
<!--[if (gt IE 9)|!(IE)]><!--> (this is just one comment, containing the text "[if (gt IE 9)|!(IE)]><!")
<body>
<!--<![endif]--> (again, just one comment, containing "<![endif]")
Explicó un poco más sobre "la magia" en una edición de mi respuesta, después de que la aceptó, así que solo estoy poniendo esto aquí para asegurarse de que vea :) – Joe