Maison >interface Web >tutoriel CSS >Héritage CSS et auto

Héritage CSS et auto

高洛峰
高洛峰original
2017-02-10 16:21:041183parcourir

Une fable très simple, un arbre millénaire fut frappé par la foudre et resta immobile, mais fut détruit par l'invasion des fourmis. Les personnes qui pensent maîtriser CSS sont souvent déconcertées par de petits problèmes. Il s'agit généralement d'une très petite valeur. Après des couches d'amplification et de distorsion, la structure entière sera déformée. CSS est un langage très simple, facile à apprendre et à utiliser, mais c'est aussi le plus sujet au code indésirable. Cela est dû au fait de ne pas étudier la langue en profondeur. Selon moi, CSS est composé des trois blocs suivants : valeur par défaut, système d'héritage et système pondéré. La valeur par défaut est l'attribut spécifié par le navigateur par défaut si l'utilisateur ne définit pas l'attribut. Le framework CSS possède essentiellement un fichier appelé reset.css, qui est utilisé pour le réinitialiser et éliminer les différences entre les navigateurs. Le système d’héritage est ce sur quoi nous nous concentrerons ci-dessous. Le système de pondération, c’est-à-dire la question de la priorité, dépasse le cadre de cet article et ne sera pas abordé davantage.

En CSS, de nombreuses propriétés peuvent être héritées. Par exemple, si la police d'un paragraphe est définie sur blanc, la police de son élément n'a pas besoin d'être définie ou est définie pour hériter, elle sera blanche. . Ces attributs sont appelés propriétés héritées. Il obtiendra la valeur calculée et convertie de l'attribut correspondant de l'élément parent si l'élément parent est dans la même situation que lui, il continuera à rechercher, et enfin à utiliser la navigation si c'est le cas. introuvable. La valeur par défaut du périphérique.

Ce qui suit est une liste des propriétés héritées :

  • border-collapse

  • border-spacing

  • côté légende

  • couleur

  • curseur

  • direction

  • cellules vides

  • police

  • famille de polices

  • font-stretch

  • font-size

  • font-size-adjust

  • font -style

  • font-variant

  • font-weight

  • espacement des lettres

  • hauteur de ligne

  • style-liste

  • opacité

  • list-style-image

  • list-style-type

  • citations

  • texte -align

  • text-indent

  • text-transform

  • espace blanc

  • espacement des mots

http://www.php.cn/

Nous donnons l'élément parent Le style de police est défini, mais le sous-élément n'est pas défini Lorsque le sous-élément est supprimé, on constate que sa valeur est convertie au format RVB (sauf IE, bien sûr !)

Cependant, dans IE7 et les versions précédentes, l'utilisation de l'héritage pour définir des attributs de style autres que la direction et la visibilité n'est pas prise en charge. Pour plus de détails, veuillez consulter ici et ici

Dans IE8, text-align, qui était à l'origine une propriété héritée, échoue dans th.

 <table>
  <tr>
    <th>Ruby</th>
    <th>Rouvre</th>
  </tr>
  <tr>
    <td>By</td>
    <td>司徒正美</td>
  </tr>
</table>
 
  table, tr, td, th {
    border-collapse: collapse;
    border: 1px solid #000;
  }
  table {
    text-align: right;
  } 
  td, th {
    width: 100px;
  }

À l'origine, cela devait hériter du paramètre de texte aligné à droite du tableau, mais cela a échoué...

Il est également possible de résoudre ce bug de retard mental dans IE8 C'est simple, il suffit de définir explicitement l'héritage.

 
  table, tr, td, th {
    border-collapse: collapse;
    border: 1px solid #000;
  }
  table {
    text-align: right;
  }
  td, th {
    width: 100px;
  }
  th {
    text-align: inherit;
  }

De plus, certaines propriétés CSS ne peuvent pas être héritées, les plus classiques sont la série border. C'est ce qu'on appelle une propriété non héritée. Si nous ne la définissons pas, nous ne pouvons obtenir que la valeur par défaut du navigateur. La valeur par défaut est appelée valeur initiale dans Firefox. Une bonne nouvelle connexe est que les valeurs par défaut peuvent également être spécifiées dans Firefox, nous n'avons donc pas besoin de réinitialiser le style !

Ce qui suit est une liste de propriétés non héritées :

  • arrière-plan

  • frontière

  • bas

  • clair

  • affichage

  • flotteur

  • hauteur

  • gauche

  • marge

  • contour

  • débordement

  • rembourrage

  • position

  • droite

  • haut

  • visibilité

  • largeur

  • z- index

Nous définissons la couleur d'arrière-plan de l'élément parent Si nous ne définissons pas l'élément enfant, la valeur par défaut du navigateur, transparente, sera obtenue (. Le W3C semble avoir seulement besoin que toutes les couleurs soient converties au format RVB, et le a supplémentaire est Alpha)

Regardons ensuite auto, qui est une valeur ambiguë mais a un concept de longueur. S'applique aux propriétés suivantes :

  • débordement

  • curseur

  • hauteur

  • largeur

  • décalage du marqueur

  • marge

  • marge- * (gauche|bas|haut|droite|début|fin)

  • haut

  • bas

  • gauche

  • droite

  • table-layout

  • z-index

  • -moz-column-width

  • langues

dans un attribut mesurable d'un élément de niveau bloc ( par exemple width, height), si aucune valeur n'est définie, sa valeur par défaut est auto, mais elle peut facilement être écrasée par la valeur de l'élément parent, ce qui signifie qu'elle devient implicitement héritée. Dans les éléments en ligne, puisqu'il n'y a pas de modèle de boîte, même Firefox le renverra s'il n'est pas défini, ce qui est très préjudiciable au calcul précis de la largeur et de la hauteur de l'élément. Auto a également une symétrie, que nous utilisons souvent dans les mises en page centrées. Parmi les attributs non métriques, tels que le débordement, une analyse spécifique est requise.

Pour plus d'articles liés à l'héritage CSS et à l'auto, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn