Calcul de la largeur du pourcentage au pixel puis moins par pixel en moins CSS

Je vais calculer la largeur dans un élément du pourcentage au pixel, donc je vais moins-10px en utilisant LESS et calc () . Son possible?

div {
    span {
        width:calc(100% - 10px);
    }
}

J'utilise CSS3 calc() donc ça ne marche pas: calc(100% - 10px)

Exemple:, si 100% = 500px donc, largeur = 490px (500-10);

J'ai fait une démo pour tester : http://jsfiddle.net/4DujZ/55/

Donc padding dira: 5 (10px / 2) tout le temps quand je redimensionne.

Puis-je le faire en moins ? Je sais comment faire dans jQuery et CSS simple comme le remplissage de marge ou bien... mais je vais essayer de faire fonctionnel dans de MOINS avec calc()

91
demandé sur l2aelba 2013-02-11 18:55:00

4 réponses

Vous pouvez échapper les arguments calc afin de les empêcher d'être évalués lors de la compilation.

En utilisant votre exemple, vous entoureriez simplement les arguments, comme ceci:

calc(~'100% - 10px')

Démonstration : http://jsfiddle.net/c5aq20b6/


, je trouve que je l'utiliser dans l'une des trois façons suivantes:

Échappement De Base

Tout ce qui se trouve dans les arguments calc est défini comme une chaîne, et est totalement statique jusqu'à ce qu'il soit évalué par client:

Moins D'entrée

div {
    > span {
        width: calc(~'100% - 10px');
    }
}

Sortie CSS

div > span {
  width: calc(100% - 10px);
}

Interpolation des Variables

Vous pouvez insérer une variable LESS dans la chaîne:

Moins D'entrée

div {
    > span {
        @pad: 10px;
        width: calc(~'100% - @{pad}');
    }
}

Sortie CSS

div > span {
  width: calc(100% - 10px);
}

Mélange des valeurs échappées et compilées

Vous voudrez peut-être échapper à une valeur de pourcentage, mais allez-y et évaluez quelque chose sur la compilation:

Moins D'entrée

@btnWidth: 40px;
div {
    > span {
        @pad: 10px;
        width: calc(~'(100% - @{pad})' - (@btnWidth * 2));
    }
}

Sortie CSS

div > span {
  width: calc((100% - 10px) - 80px);
}

Source: http://lesscss.org/functions/#string-functions-escape.

221
répondu natchiketa 2018-09-05 18:47:00

Je pense que width: -moz-calc(25% - 1em); est ce que vous cherchez. Et vous pouvez donner à ce lien un regard pour toute aide supplémentaire

0
répondu Akshay Khandelwal 2013-02-11 17:57:56

Ou, vous pouvez utiliser l'attribut margin comme ceci:

    {
    background:#222;
    width:100%;
    height:100px;
    margin-left: 10px;
    margin-right: 10px;
    display:block;
    }
-3
répondu THeBAckwardss 2013-02-11 14:59:56

Essayez ceci :

width:auto;
margin-right:50px;
-3
répondu user1552559 2016-01-22 16:51:35