28172 sujets

CSS et mise en forme, CSS3

Hello !

Je viens à vous car j'ai un petit problème en LESS, un problème de position pour être exact. En effet, je cherche à positionner un bloc en position relative, or j'ai l'impression qu'il traduit mal la propriété calc().

J'ai pourtant essayé de diverses manières que voici :


Première méthode :

.position{
    position:relative;
    top:calc(50% - 150px);
    left:calc(50% - 150px);
}

.block-titre{
    height:300px;
    width:300px;
    .position;
}


Seconde méthode :

@position:relative;
@top:calc(50% - 150px);
@left:calc(50% - 150px);

.block-titre{
    height:300px;
    width:300px;
    position:@position;
    top:@top;
    left:@left;
}


Evidemment, j'ai dû faire une bêtise Smiley langue ! Mais je ne vois pas ou... Je note cependant que cela fonctionne si je n'utilise pas la propriété calc() comme ceci :


@position:relative;
@top:150px;
@left:150px;

.block-titre{
    height:300px;
    width:300px;
    position:@position;
    top:@top;
    left:@left;


Ou encore comme ceci :

.position{
    position:relative;
    top:150px;
    left:150px;
}

.block-titre{
    height:300px;
    width:300px;
    .position;
}


Pour être honnête, je sèche. Quelqu'un à une idée? Smiley smile
Ce comportement est normal, comme avec n'importe quel autre préprocesseur (Sass, Stylus...). En effet la fonction calc() se scope avec les fonctionnalités de Less, il faut donc entrer la règle sous forme d'un string :
width: ~"calc(100% - @{id1width})";

J'ai récupéré l'exemple sur la réponse de cette issue Github.
Meilleure solution
Modérateur
Olivier C a écrit :
Ce comportement est normal, comme avec n'importe quel autre préprocesseur (Sass, Stylus...). En effet la fonction calc() se scope avec les fonctionnalités de Less, il faut donc entrer la règle sous forme d'un string :
width: ~"calc(100% - @{id1width})";

J'ai récupéré l'exemple sur la réponse de cette issue Github.


En fait, j'ai toujours "stringé" l'intérieur du calc() comme cela :
width: calc(~"100% - @{id1width}");

mais c'est bon à savoir qu'on peut faire les deux Smiley smile
Formidable !

C'est assez spécifique et je n'avais pas trouvé la réponse sur le web. Merci à tous les deux pour votre rapidité et votre précision... Chirurgicale ! Smiley smile

Petit aparté, le nouveau look d'alsacréations est au top du top, j'adore. C'est propre !