web-dev-qa-db-fra.com

sass: premier enfant ne travaille pas

Je n'utilise pas SASS depuis très longtemps et je voulais savoir s'il y avait des problèmes avec les pseudo-éléments tels que :first-child ou :last-child?

25
ApPeL

Bien qu'Andre ait raison de dire qu'il existe des problèmes avec les pseudo-éléments et leur prise en charge, en particulier dans les navigateurs plus anciens (IE), cette prise en charge s'améliore constamment.

En ce qui concerne votre question, y a-t-il des problèmes, je dirais que je n'en ai pas vraiment vu, bien que la syntaxe du pseudo-élément puisse être un peu délicate, surtout lors de la première analyse. Alors:

div#top-level
  declarations: ...
  div.inside
    declarations: ...
    &:first-child
      declarations: ...

qui compile comme on pourrait s'y attendre:

div#top-level{
  declarations... }
div#top-level div.inside {
  declarations... }
div#top-level div.inside:first-child {
  declarations... }

Je n'ai vu aucune documentation à ce sujet, sauf pour la déclaration que "sass peut faire tout ce que css peut faire." Comme toujours, avec Haml et SASS, l'indentation est tout.

44
nomadkbro

Je pense qu'il vaut mieux (pour mon expérience) utiliser: :first-of-type, :nth-of-type(), :last-of-type. Cela peut être fait avec un petit changement de règles, mais j'ai pu faire bien plus que des sélecteurs *-of-type, Que *-child.

12
IGRACH

Tout d'abord, il existe encore des navigateurs qui ne prennent pas en charge ces pseudo-éléments (c'est-à-dire: premier enfant,: dernier enfant), vous devez donc "traiter" ce problème.

Il y a un bon exemple comment faire fonctionner cela sans utiliser de pseudo-éléments:

http://www.darowski.com/tracesofinspiration/2010/01/11/this-newbies-first-impressions-of-haml-and-sass/

- voir l'exemple de tuyau de séparation.

J'espère que cela a été utile.

0
Andrei Sfat