[SASS] Problème @extend

Par lorraineS, il y a 11 ans


Les bases HTML/CSS

Bonjour les amis !

Je suis actuellement sur une refonte complète de mon portfolio, mais voilà, je sèche :

Pour faire simple, j'ai une section "works", qui contient deux principaux blocs :

Le premier nommé "latest-works", permet d'afficher mes 2 derniers projets tandis que le second bloc "latest-article" affiche un carousel qui lui, permet de faire défiler mes derniers articles.


(merci Lorem Picsum :p)

Voici le code HTML :

<section id="works" class="section-grey"> <div class="container"> <div class="latest-works"> <div class="row"> <div class="col-md-8 center-block text-center"> <h3>Check out our latest works</h3> <p>Magnis modipsae que voloratati andigen daepeditem quiate re porem aut labor.</p> </div> </div> <div class="row"> <div class="col-sm-6 pad-top-md"> <figure> <a href="#" class="thumb"> <img src="http://lorempicsum.com/up/627/400/4"> </a> <figcaption> <div class="info"> Grand Motel gets an identity brushup <div class="sub-info">Identity</div> </div> </figcaption> </figure> </div> <div class="col-sm-6 pad-top-md"> <figure> <a href="#" class="thumb"> <img src="http://lorempicsum.com/up/627/400/4"> </a> <figcaption> <div class="info"> Grand Motel gets an identity brushup <div class="sub-info">Identity</div> </div> </figcaption> </figure> </div> </div> </div> <div class="latest-article"> <div class="row pad-top-md"> <div id="owl-tintinautibet" class="owl-carousel"> <div class="item"> <figure> <a href="#" class="thumb"> <img src="http://lorempicsum.com/up/627/400/4"> </a> <figcaption> <div class="info"> Grand Motel gets an identity brushup <div class="sub-info">Identity</div> </div> </figcaption> </figure> </div> <div class="item"> <figure> <a href="#" class="thumb"> <img src="http://lorempicsum.com/up/627/400/4"> </a> <figcaption> <div class="info"> Grand Motel gets an identity brushup <div class="sub-info">Identity</div> </div> </figcaption> </figure> </div> </div> </div> </div> </div> </section>

(j'ai volontairement supprimé quelques blocs pour mes derniers articles, histoire d'avoir un code plus aéré).

Maintenant, le CSS :

.latest-works { figure { .thumb { background:url(../images/link.png) center center $blue no-repeat; display: block; img { opacity: 1; width: 100%; &:hover { opacity: 0.1; transition-duration: 0.4s; } } } .info { background: $white; border-bottom: 2px solid $intermediategrey; color: darken($blue, 10%); font-family: $main-font; font-size: 20px; font-weight: 700; letter-spacing: 0.025em; padding: $padding*1.5; line-height: 150%; .sub-info { color: inherit; font-weight: 300; font-size: 14px; line-height: 30px; } } } } .latest-article { @extend .latest-works; }

Comme vous pouvez le voir, j'ai simplement utilisé un @extend nomDeLaClasseAHeriter sur ma class latest-article.

Puisque mes blocs sont identiques, ils devraient normalement prendre le même style que ceux de latest-works, non ?

Alors soit je dérive totalement, soit j'ai mal utilisé le extand. Mais je penche plutôt pour la deuxième solution.

Si quelqu'un à une idée....

Merci par avance.
Steve

3 réponses

Metylene, il y a 11 ans
<div class="latest-works"> <div class="row"> <div class="col-md-8 center-block text-center"> <div class="latest-article"> <div class="row pad-top-md"> <div id="owl-tintinautibet" class="owl-carousel">

Est-ce que le problème ne viendrait pas du fait qu'il n'y a pas de "col-sm-6" sur chacun de tes items ? Sauf si tu veux que ça soit sur toutes la largeur puisque c'est un carroussel mais il n'y a pas non plus de "col-sm-12".

Romano83, il y a 11 ans

Regarde au niveau de ton fichier css si ta class .latest-article à bien les même propriétés que ta classe .latest-works.
A mon avis, ta classe .latest-article n'a pas pas de propriétés car elle extends d'une classe qui n'a pas de propriétés css; seuls les enfants de la classe .latest-works sonts stylisés...

EDIT : je viens de regarder sur codepen, le extends fonctionne... Ne tiens pas compte de mon message alors ;)

lorraineS, il y a 11 ans

Merci pour votre aide, c'est résolu. Je n'ai rien touché, le code était donc bon. Il fallait simplement redémarrer la machine... comme si sass n'avait pas réussi à faire la compilation du @extend hier soir...

Désolé pour la gêne, et merci encore. :p