28219 sujets

CSS et mise en forme, CSS3

Bonjour à tous,

Voilà j'ai un pbm que je n'arrive vraiment pas à résoudre malgré plusieures heures de recherche.

Je mets en place des sites e-commerce supposés fléxibles, et je cherche un moyen d'annuler (supprimer, effacer, faire disparaitre, "disable" quoi) tous les styles prédéfinis dans une feuille de style globale, et ce, dans un bloc précis de la page.

Le but pour l'utilisateur du site en question est de disposer, via un editeur wysiwyg métant à jour ce bloc, d'une "zone libre" de tout style préformaté, afin qu'il puisse mettre ce qui lui plait.

exemple simple, les <div> sont préformatés { font-family: arial; ... }
La question : comment annuler ce style dans ma "zone libre" de façon à ce que le navigateur interprète le texte avec sa typo par défaut.

Si vous avez réussi à comprendre, bravo,
Et merci d'avance.

Yann.
Modifié par Ze Nenex (08 Aug 2006 - 17:43)
Salut zenex et bienvenue. Il faut que tu utilise le sélécteur universel et rédéfinisse tous les attributs que tu as auparavant défini.

#zone *
{
margin: 0;
padding: 0;
border: none....etc
}


Tu peux aussi faire en sorte que cette zone ne soit pas un sujet de tes sélecteurs, comme ça ils ne seront attaqués pas tes css.

A+
Bonjour coccimaster,
et merci pour ta réponse rapide.

Cependant elle ne me parait pas réalisable car tu me proposes d'écraser les valeurs de ma css globales.

Mon souhait serait non pas de les écraser, mais de les "void". Soit faire en sorte que ce qui se trouve dans ma freezone ne soit sujet à [u]aucun[/u] style, ce qui laisse donc le navigateur libre d'interpreter son contenu (p, ul... avec padding, h1 à h6 avec tailles des polices respectives, etc...), comme s'il sagissait d'une page vierge de css (sauf que la il s'agit un bloc de ma page).

J'espere avoir été plus clair avec cette réponse,
Merci pour ton accueil Smiley cligne

Yann.
Ze Nenex a écrit :
car tu me proposes d'écraser les valeurs de ma css globales.

non, tu donne un id à ta zone vierge (je l'avais appelée zone dans mon p'tit css), et que tu utilise
#zone *
tu ne ciblera que les éléments de cette zone, pas les autres. Tu n'écrase pas le reste donc
Mince, je me suis encore mal exprimé,

Par "écraser" je pensais à cette méthode que tu décris, qui consisterait à redéfinir dans la zone libre toutes les valeurs spécifiques de la css globale.

Malheureusement, comme spécifié dans mon dernier post, je ne cherche pas a redéfinir dans cette zone libre un border: none, mais plutôt à faire en sorte que les borders soient interpretés comme le ferait un navigateur en compilant une page vierge (soit pour IE en 2px inset #fff).

Pour être plus précis, j'aimerais qu'il éxiste ceci : #zone * { styles: default; }

Yann.
Dans ce cas, il faut que tu utilise la deuxième solution, c'est à dire faire en sorte que ton #zone ne soit pas ciblé par tes sélécteurs, en placant des id sur toutes tes autres parties et en commençant tous tes sélecteurs par ceux-ci.

A ma connaissance, il n'y a pas de méthode pour réinitialiser les css directement par la feuille de style. En javascript peut-étre, avec les objets cssRules et styleSheet??
styleSheet n'est qu'un collecteur qui ne s'applique - melheureusement pour moi, qu'au niveau 0 (document).

Ca risque d'être assez difficile, vu la compléxité du site en question. Mais s'il n'existe vraiment aucune solution js, alors tu as raison, il va falloir nettoyer ma css de façon à ce qu'elle ne cible pas ma zone.

Merci encore pour tes réponses,
Yann.
Bonjour,

"void" un style ne signifie pas grand chose. Voir :
http://openweb.eu.org/articles/lacher_prise/

Un "élément" (pour faire simple) est nécessairement soumis au moins aux styles particuliers que lui applique l'agent utilisateur ( les styles de l'User agent, UA).

Ces styles ne sont pas normalisés en HTML, ni en XHTML1.0. Il existe donc des styles légèrement différents d'un navigateurs à l'autre (voir les marges de l'élément form, par exemple).

La valeur auto peut rétablir parfois la valeur par défaut de la CSS de l'UA, pour certaines propriétés.

Maintenant, pour éviter des discussions fascinantes mais inutiles, et gagner du temps: Ze Nenex, pourrais-tu précisément et tout simplement indiquer les styles exacts que tu souhaites ramener à leurs valeurs UA ?
Bonjour Laurent Denis

Tout à fait d'accord avec toi,
Et je cherche justement à reproduire ces valeurs, c'est à dire libre d'interpretation par les navigateurs, et ce dans une zone de ma page. Page formatée au préalable par une css globale.

Je cherhe à émuler une zone non-css dans une page formatée par une css.

a écrit :
Maintenant, pour éviter des discussions fascinantes mais inutiles, et gagner du temps: Ze Nenex, pourrais-tu précisément et tout simplement indiquer les styles exacts que tu souhaites ramener à leurs valeurs UA ?

Tous les styles.

[EDIT] Et je sens que ça va se régler vite fait bien fait avec une iframe, puisque de toute façon le document include (qui doit être libre de tout style) est un document htm généré par un wiziwyg à partir d'un back office. En plus ça me fera gagné du temps, et que j'en ai besoin... de temps.

[EDIT2] "void" n'était qu'une expression, désolé Smiley cligne

Yann.
Modifié par Ze Nenex (08 Aug 2006 - 17:29)
Il n'y a pas de zone non-css Smiley cligne

Mais je vois quand même ce que tu veux dire. Et l'iframe est effectivement une solution simple et efficace.