Moins et Bootstrap: comment utiliser un span3 (ou spanX [nombre]) classe mixin?
Est-il possible d'ajouter span3
classe dans un mixin pour éviter de le mettre dans chaque élément dans mon code HTML?
Quelque chose comme:
.myclass {
.span3;
//other rules...
}
MODIFIER
Je m'excuse j'ai oublié de préciser un détail important: span3
est une norme de classe de Bootstrap.
Je n'ai pas trouver la définition d'un fichier de Bootstrap cadre.
La réponse est "oui", en supposant que
.span3
est défini dans le code. Ce n'est pas de travail pour vous? Vous pouvez avoir besoin de modifier votre question avec plus de détails.OriginalL'auteur Federico Bellucci | 2013-03-21
Vous devez vous connecter pour publier un commentaire.
Nouvelle Réponse (nécessite MOINS de 1.4.0)
Ce que vous avez réellement le désir est quelque chose de connu comme extension en MOINS et SASS terminologie. Par exemple, vous voulez un élément HTML (juste un exemple)...
...à entièrement se comporter comme si elle avait un
span3
classe de bootstrap, ajouté à cela, mais sans l'ajout de cette classe dans le code HTML. Cela peut être fait en MOINS de 1.4.0 à l'aide de:extend()
, mais toujours pas facilement, principalement en raison de la dynamique de génération de classe de bootstrap ne seront pas ramassés par:extend()
.Ici est un exemple. Assumer cette initiale de MOINS de code (pas généré dynamiquement
.span3
classes de bootstrap):Vous ajoutez ce MOINS de code en 1.4.0:
Qui produit ce CSS:
NOTE comment il n'a pas étendre automatiquement les autres instances de
.span3
. Ce qui est différent que SASS, mais il ne signifie que vous devez être un peu plus explicite dans l'extension. Cela a l'avantage d'éviter de trop CSS code de la météorisation.Étendre complètement, il suffit d'ajouter le
all
mot-clé dans leextend()
(c'est mis à jour à partir de mon code d'origine, comme j'étais pas au courant de laall
option):Qui produit ce:
Qui rend votre
.myclass
entièrement équivalent (dans mon exemple) à la.span3
classe. Ce que cela signifie dans votre cas, cependant, est que vous avez besoin de redéfinir une classe dynamique des générations de bootstrap non-dynamique. Quelque chose comme ceci:C'est donc le
:extend(.span3)
trouverez une codés en dur de la classe pour s'étendre à d'. Cela devra être fait pour n'importe quel sélecteur de chaîne dynamique qui utilise.span@{index}
pour ajouter le.span3
.Réponse Originale À Cette Question
Cette réponse suppose que vous désiré pour mixin propriétés à partir d'une générées dynamiquement classe (c'est ce que j'ai pensé que votre problème a été).
Bon, je crois que j'ai découvert votre problème. Tout d'abord, bootstrap définit le
.spanX
à la série de classes dans lemixin.moins
fichier, de sorte que vous aurez évidemment besoin d'être sûr que vous avez compris que dans le fichier de démarrage de la charge. Cependant, je suppose que c'est une donnée que vous avez ceux qui figurent déjà.Principal Problème
La question principale est de savoir comment bootstrap est la génération de ceux qui sont aujourd'hui, à travers une dynamique de nom de classe dans une boucle. C'est la boucle qui définit la
.spanX
série:Actuellement, parce que le nom de la classe elle-même est généré dynamiquement, il ne peut pas être utilisé comme un mixin nom. Je ne sais pas si c'est un bug ou simplement une limitation de MOINS, mais je sais que à l'heure actuelle de l'écriture, tout générées dynamiquement nom de la classe ne fonctionne pas comme un mixin nom. Par conséquent,
.span3
peut-être dans le code CSS pour mettre une classe dans votre code HTML, mais il n'est pas directement disponible pour l'accès à l'mixin fins.Le Correctif
Toutefois, en raison de la façon dont ils ont structuré le code, vous pouvez toujours obtenir ce que vous avez besoin, car comme vous pouvez le voir ci-dessus dans la boucle de code, ils utilisent un vrai mixin lui-même pour définir le code de la
.spanX
classes. Par conséquent, vous devriez être en mesure de le faire:La
.span(3)
code est ce que la boucle pour remplir la.span3
classe, donc de l'appeler pour vos cours vous donnera le même code que.span3
. Plus précisément bootstrap a ce définies dansmixins.less
pour que mixin:De sorte que vous obtiendrez le
width
propriétés de la.span3
dans votre.myclass
.Il y a une différence entre le
.span3
classe mixin (qui est ce que votre question s'affiche à la recherche d'une réponse) et d'avoir une classe ajouté pour un élément, qui n'est pas quelque chose de fait par css ou MOINS, mais dans le code HTML. Donc oui, une règle de.span3 .someChildClass
ne s'applique pas à un élément qui a eu.span3
inclus comme un mixin. Si c'est ce que vous avez besoin, vous devez le faire par le biais de l'HTML.Juste pour préciser mon commentaire précédent. Un mixin ne pas ajouter des classes à un élément avec la classe de mélange. Si votre
.myclass
ne gagne pas la.span3
classe par le biais d'un mixin. Ce qu'il gagne sont les propriétés de la.span3
classe dans le.myclass
.Ma question était claire à ce sujet: "Est-il possible d'ajouter span3 classe dans un mixin pour eviter de le mettre dans chaque élément dans mon code HTML?" Mon objectif était de reproduire la présence de span3 classe sans explicitement de l'ajouter à chaque élément. Ainsi, l'ajout de la durée de(x) à la mixin est pas une solution pour que et, de toute évidence, il n'en est pas une du tout.
Ce qui était un peu confus, a été l'interprétation de "ajouter span3 classe dans un mixin." Sachant que MOINS de capacités, j'ai lu que comme "ajouter le span3 des propriétés de la classe par un mixin" parce que c'est ce mixin faire, ils ajoutent des propriétés de classes, pas les classes elles-mêmes. Je n'étais pas au courant que vous n'étiez pas au courant de ce fait :-). Il n'y a qu'une solution partielle à MOINS de 1.4. Je vais mettre à jour ma réponse, mais il n'est pas encore aussi "jolie" une résolution que vous désirez.
OriginalL'auteur ScottS
C'est facile à faire avec Less.js mais la vraie question est: "dois-je mélanger grille structurelle des classes avec ma non-structurelle des classes?"
Et la réponse est non.
C'est une mauvaise idée, l'avantage d'un système de grille, c'est qu'il crée une séparation des préoccupations entre structurels de style et d'autres style. Je ne suis pas en disant: "il ne faut jamais, jamais, jamais". Mais en général, il ne devrait pas. Je n'aime pas voir ceci:
Où la
span3
est dans le mêmediv
comme le.sidebar
classe. Le problème c'est que maintenant, votre barre latérale n'est pas juste "flotter" à l'intérieur d'une colonne de la grille, c'est devenu une partie de la grille - qui (en général) le rend encore plus difficile de maintenir vos styles parce que des solutions de contournement que vous devez créer à force ce genre de style pour être réactif.OriginalL'auteur jonschlinkert
Eh bien, vous pouvez le faire, mais vous devez définir
.somethign
tout d'abord, dans cet exemple, je vais le fairefont-wight: bold;
etfont-size 20px
. Comme vous pouvez le voir dans la deuxième classe .corps je n'avais pas à définirfont-weight: bold;
etfont-size: 20px;
j'ai juste ajouté.something
en elleVous pouvez voir un exemple ici. http://jsfiddle.net/7GMZd/
VOUS NE POUVEZ PAS LE FAIRE DE CETTE FAÇON
Pour info, à moins que je me manque quelque chose, vous n'avez pas ajouter une ressource externe à l'jsfiddle (par ex. less.js) qui permettrait de compiler moins. Une meilleure ressource pour le test est less2css.org
OriginalL'auteur Kyrbi