657 votes

Qu'est-ce qu'une feuille de style de l'agent utilisateur ?

Je travaille sur une page web dans Google Chrome. Elle s'affiche correctement avec les styles suivants.

table {
    display: table;
    border-collapse: separate;
    border-spacing: 2px;
    border-color: gray;
}

Il est important de noter que je n'ai pas défini ces styles. Dans les outils de développement de Chrome, il est indiqué feuille de style de l'agent utilisateur à la place du nom du fichier CSS.

Maintenant, si je soumets un formulaire et qu'une erreur de validation se produit, j'obtiens la feuille de style suivante :

table {
    white-space: normal;
    line-height: normal;
    font-weight: normal;
    font-size: medium;
    font-variant: normal;
    font-style: normal;
    color: -webkit-text;
    text-align: -webkit-auto;
}

table {
    display: table;
    border-collapse: separate;
    border-spacing: 2px;
    border-color: gray;
}

El font-size de ces nouveaux styles perturbe ma conception. Existe-t-il un moyen de forcer mes feuilles de style et, si possible, d'écraser complètement la feuille de style par défaut de Chrome ?

10 votes

Notez également que sur Chrome (51), vous n'obtenez que ces deux entrées de table lorsque vous n'avez pas de déclaration de doctype. Sinon, vous n'obtenez que la deuxième entrée.

1 votes

Videz le cache de chrome dans plus d'outils -> Effacer les données de navigation.

303voto

deleted account Points 1386

Quels sont les navigateurs cibles ? Les différents navigateurs définissent des règles CSS par défaut différentes. Essayez d'inclure une réinitialisation CSS, telle que l'option meyerweb réinitialisation CSS o normaliser.css pour supprimer ces valeurs par défaut. Google "CSS reset vs normalize" pour voir les différences.

0 votes

Merci Oli. Y a-t-il un effet secondaire à la suppression des CSS par défaut du navigateur ? Je suppose que ce n'est pas recommandé, n'est-ce pas ? Je dois choisir entre votre réponse (réinitialisation) et la réponse de @BenM qui consiste à remplacer le style par le nôtre. Une idée de l'approche recommandée ?

21 votes

Je réinitialise/normalise toujours mon CSS avant chaque projet, de cette façon vous avez un terrain "presque" égal entre les navigateurs. Je n'ai jamais entendu parler d'un "effet secondaire" négatif en tant que tel, je suis sûr que si vous faites une recherche rapide sur Google, vous trouverez que c'est recommandé.

2 votes

La réinitialisation des styles peut entraîner des résultats bizarres avec les champs de formulaire, notamment autour des bordures de champ ou des éléments en plusieurs parties comme type="file".

200voto

Jesper Mygind Points 2046

Si <!DOCTYPE> n'est pas présent dans votre contenu HTML, il se peut que le navigateur donne la préférence à la "feuille de style de l'agent utilisateur" plutôt qu'à votre feuille de style personnalisée. L'ajout du doctype corrige ce problème.

11 votes

C'est un bon indice. Vous m'avez fait gagner du temps dans mes recherches. Il faut noter que dans mon cas, j'avais cette déclaration de doctype mais j'avais un script avant. Il semble que le DOCTYPE doit arriver en premier dans la page pour entrer en considération.

4 votes

L'ajout de <!DOCTYPE> a résolu un problème très bizarre d'alignement vertical tr/td que j'avais. Merci pour cette réponse.

4 votes

C'est du chipotage, mais <!DOCTYPE html> a réglé le problème pour moi.

139voto

Jukka K. Korpela Points 71599

Concernant le concept de "feuille de style de l'agent utilisateur", consultez la section Cascade dans la spécification CSS 2.1.

Les feuilles de style des agents utilisateurs sont remplacées par tout ce que vous avez défini dans votre propre feuille de style. Elles ne sont que le point de départ : en l'absence de toute feuille de style fournie par la page ou par l'utilisateur, le navigateur doit toujours rendre le contenu. en quelque sorte et la feuille de style de l'agent utilisateur ne fait que le décrire.

Ainsi, si vous pensez avoir un problème avec la feuille de style d'un agent utilisateur, alors vous avez vraiment un problème avec votre balisage, ou votre feuille de style, ou les deux (sur lesquels vous n'avez rien écrit).

1 votes

@givanse, non, vous voyez les effets des feuilles de style de l'agent utilisateur lorsque vous ne les remplacez pas, et votre exemple de balisage ne fait pas exception. Il sera analysé comme un li contenant deux ul qui ne contiennent que du texte ; ils sont stylisés par la feuille de style de l'agent utilisateur, mais cette stylisation peut être remplacée. (Le fait que le balisage soit invalide dépend du contexte et de la version HTML ; mais cela n'affecte pas le style).

0 votes

@givanse, ce problème n'est pas pertinent pour la question "qu'est-ce qu'une feuille de style utilisateur". Si vous pensez que le problème est important, postez-le comme une nouvelle question, avec suffisamment de détails. Mais la balle dans votre jsfiddle est simplement une balle pour la feuille de style utilisateur. li et votre feuille de style ne le remplace pas.

0 votes

Dans mon cas, il s'agissait d'un problème de spécification CSS, mais ces informations sur l'agent utilisateur étaient également utiles.

59voto

Daniel Points 993

Marquer le document comme HTML5 par le doctype approprié sur la première ligne, a résolu mon problème.

<!DOCTYPE html>
<html>...

14 votes

Pouvez-vous m'expliquer comment cela est censé fonctionner ? Comment HTML 5 est associé aux styles indéfinis ? Je vais confirmer mais avez-vous un truc prêt à être utilisé pour le confirmer ?

50voto

Kenneth Stoddard Points 626

Une feuille de style d'agent utilisateur est une "feuille de style par défaut" fournie par le navigateur (par exemple, Chrome, Firefox, Edge, etc.) afin de présenter la page d'une manière qui satisfait aux "attentes générales en matière de présentation". Par exemple, une feuille de style par défaut fournit des styles de base pour des éléments tels que la taille de la police, les bordures et l'espacement entre les éléments. Il est courant d'utiliser une réinitialiser pour gérer les incohérences entre les navigateurs.

Du cahier des charges...

La feuille de style par défaut d'un agent utilisateur doit présenter les éléments du langage du document de manière à répondre aux attentes générales en matière de présentation du langage du document. ~ La Cascade .

Pour plus d'informations sur les agents utilisateurs en général, voir agent utilisateur .

0 votes

J'ai l'impression que cela répond plus à la question qu'à la réponse acceptée...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X