28217 sujets

CSS et mise en forme, CSS3

Bonjour à tous,

je n'arrive pas a appliquer une feuille de style print via la PI xml-stylesheet. Voici le code :

<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/css" href="svground-style.css" title="***********" media="screen" charset="iso-8859-1"?>
<?xml-stylesheet type="text/css" href="svground-print-style.css" title="Feuille de style pour imprimer - économique" media="print" charset="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<!-- etc etc -->


Je mets un *{display:none;} mais tout reste affiché. Bref, ma feuille de style n'est pas appliquée. Tout est valide, les chemins sont bons, d'où ma question : est-ce une erreur de ma part ou un manque d'implémentation ?
(ça ne fonctionne pas non plus sous Opéra, ce qui me laisse penser que ça vient de moi Smiley lol ).

Amicalement,

SirWam

EDIT : ça marche avec <link/>, mais ne me répondez pas "bah met ça dans un link" : l'architecture de mon truc ne s'y prête pas.
Modifié par SirWam (04 Aug 2005 - 10:48)
En fait, le mime-type envoyé n'était pas le bon. Ce qui m'étonne, c'est que ça marche pour media="all" en text/plain mais pas pour print...
Donc les feuilles de styles css -> text/css.

Cya all
...mais voilà qu'un autre problème surgit Smiley eek

<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/css" href="truc.css.php" media="screen" charset="iso-8859-1"?>
<?xml-stylesheet type="text/css" href="truc-print-style.css.php" title="Feuille de style pour l&apos;impression" media="print" charset="iso-8859-1"?>


dans ce cas, seule la première processing-instruction est prise en compte. Si j'inverse les deux, les styles pour le media="screen" ne sont plus appliqués mais les styles pour le media="print" si !

Quelqu'un aurait-t-il une piste ?

Amicalement,

SirWam
Merci mais il n'y a rien à faire Smiley confus

Je vous ai préparé une petite page qui résume tout...

Si quelqu'un pouvait trouver l'origine du problème, ça serit franchement cool (ça fait pas mal de temps que je galère avec ce bug Smiley rolleyes ).

Cya all

EDIT : et si vous trouvez le problème aussi étrange que je le trouve, dites le moi avant que je pète un plomb Smiley biggol
Modifié par SirWam (04 Aug 2005 - 00:32)
Ahem... Tout d'abord, ton titre principal qui te sert de test aura plus de chance de disparaître si la CSS print lui dit de le faire Smiley cligne

... Ce que ne fait pas :


h1{
        [b]display:block;[/b]
        }


Un display:none sera déjà plus probant.

Mais surtout, je ne devais pas être bien réveillé hier Smiley rolleyes En effet, tu utilises incorrectement l'attribut title des tes feuilles de styles.

L'attribut title de <link...>, <style...> et <?xml-stylesheet...> a une fonction particulière : il identifie les groupes de feuilles de styles alternatives/préférés et les différencie des CSS permanentes. Seules les CSS ayant le même title peuvent être appliquées simultanément. Des CSS permanentes ne doivent pas avoir d'attribut title, ou doivent avoir des title vides (C'est la solution généralement adoptée quand il n'y a pas de styles alternatifs).

Pour que ton jeu de style fonctionne, il faut donc :
- soit donner la même valeur d'attribut title à ta CSS screen et à ta CSS print (ce qui définit un jeu de style dit "préféré", malgré l'absence de styles alternatifs).
- soit, plus simple, enlever les titles, ou mettre des titles vides, pour définir tes deux CSS comme jeu "permanent".

Voir l'exemple de page test que je t'indiquais ci-dessus, qui repose justement sur ce mécanisme. On pourrait y ajouter une deuxième CSS print, portant le title de la CSS alternative, et qui ne serait donc appliquée que quand le style alternatif est lui-même sélectionné pour l'affichage...

Voir :
- http://openweb.eu.org/articles/presentations_alternatives/ pour un résumé succint de ces mécanismes
- http://blog-and-blues.org/weblog/2005/08/04/437 pour un exposé plus complet.

Une fois ceci corrigé, tout se passe normalement.
Modifié par Laurent Denis (04 Aug 2005 - 09:14)
Oh merci beaucoup Smiley biggrin

mainteant tout est clair. Je me demandais pourquoi je n'avais jamais vu cet article, avant que je ne vois la date

a écrit :
Une des sources d'erreurs fréquente

On parle de moi ? Smiley lol

En tout cas merci beaucoup, sans toi je n'y serait jamais arrivé Smiley rolleyes

Cya