Subtract Pixels From Percentage in SASS?

11,354

Solution 1

I don't see how that would even work, fact is SASS can't magically know the size your box will have.

Now if I get what you're trying to do, best solution would be to wrap .box's parent width into a variable and then substract your image width to that variable - considering 100% width means it will get 100% of a certain width.

Solution 2

You can use the calc() function to get what you want. It's experimental but still pretty good supported by the different browsers.

With Sass, you can create a calc mixin to get this working on more browser versions with the-webkit and -moz prefixes (no need of the Opera one):

@mixin calc($key, $value) {
  #{$key}: -webkit-calc(#{$value});
  #{$key}: -moz-calc(#{$value});
  #{$key}: calc(#{$value});
}

And call it with something like:

.bio {
  @include calc("width", "100% - #{$image-size}");
}
Share:
11,354
realph
Author by

realph

Updated on July 13, 2022

Comments

  • realph
    realph almost 2 years

    I know you're able to do some simple math in Sass/Scss. But is there a way to subtract pixels from percentages? For example:

    $image-size: 200px;
    
    .bio {
        width: 100% - $image-size;
    }