2011-01-11 22 views
16

Im tratando de demo CSS3PIE y no funciona en IE en absoluto.CSS3 y PIE no funciona en IE 8

HTML:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
    <head> 
    <meta http-equiv="content-type" content="text/html; charset=windows-1250"> 
    <link href="test.css" type="text/css" rel="stylesheet"> 
    <title>Test</title> 
    </head> 
    <body> 

    <div id="title"></div> 
    <div id="sub_title"></div> 
    <div id="main_area"> 
     <div id="date_area"></div> 
    </div> 

    </body> 
</html> 

css:

body{ 
margin: 0 auto; 
} 

#title{ 
margin: 0 auto; 
width: 100%; 
height: 40px; 
background-color: white; 
} 

#sub_title{ 
    margin: 0 auto; 
    width: 100%; 
    height: 25px; 
    background-color: green; 
} 

#date_area{ 
    width: 310px; 
    height: 250px; 
    border: 1px solid #4A4949; 
    padding: 60px 0; 
    text-align: center; 
    -webkit-border-radius: 1px; 
    -moz-border-radius: 1px; 
    border-radius: 1px; 
    -webkit-box-shadow: #707070 2px 2px 4px; 
    -moz-box-shadow: #707070 2px 2px 4px; 
    box-shadow: #707070 2px 2px 4px; 
    background: #EBEBEB; 
    background: -webkit-gradient(linear, 0 0, 0 bottom, from(#EDEBEB), to(#C9C7C8)); 
    background: -moz-linear-gradient(#EDEBEB, #C9C7C8); 
    background: linear-gradient(#EDEBEB, #C9C7C8); 
    -pie-background: linear-gradient(#EDEBEB, #C9C7C8); 
    behavior: url(/PIE.htc); 
} 

El resultado es simplemente una manzana con un borde, sin gradiente/sombra etc

Cualquier ayuda/solución sería muy apreciada.

+0

alguna razón para no usar 'filtro: progid: DXImageTransform.Microsoft.gradient (startColorstr = '# EDEBEB', endColorstr = '# C9C7C8', GradientType = 0);'? –

Respuesta

34

La ubicación behavior debe ser relativa a su archivo HTML, no su CSS como cualquier otra declaración usando url(). Así que asumiendo que su index.html y PIE.htc está en la raíz y el CSS se encuentra dentro de una carpeta 'css', hay que ir como esto:

background-image: url(../images/example.jpg); 
behavior: url(PIE.htc); 

También, trate de añadir un archivo .htaccess con el siguiente contenido en la misma ubicación que el PIE.htc file:

AddType text/x-component .htc 

Espero que esto ayude.

+0

Eso lo arregló en IE10 para el modo de compatibilidad IE8, pero no en el IE8 real ... ¿alguna idea? – DrCord

+0

@DrCord wow, no sabía eso ... No estoy seguro de eso ya que actualmente no estoy confiando en CSS3PIE. Apoyo IE8 + y código una sólida estructura de diseño; con respecto a los "efectos visuales sofisticados": lo que funciona en IE, funciona en IE, y lo que no, no es gran cosa, el diseño se ve bien de todos modos. –

+0

Ese archivo htaccess hizo el trabajo por mí, gracias – Metzed

0

Asegúrese de tener la última versión beta. Si el archivo HTC aún causa problemas, pruebe la implementación de JS.

2

tratar de limpiar la caché de su navegador. Especialmente cuando cambias de modo de compatibilidad. Realmente ayuda

+2

Esto debería ser como comentario, no como respuesta. –

4

sumando: AddType text/x-component .htc - al archivo .htaccess funcionó como un encanto para mí.

La propiedad abreviada de CSS le permite controlar qué esquinas redondear o no.

border-radius: 0 15px 15px 0;/*(top-left, top-right, bottom-right, bottom-left). */