CSS calc() convert decimals to pixels
I'm trying to achieve css parallax effect via css-variables privided by scroll-out script.
Basically what script does - it sets --viewport-y css variable which I want to rely when calculating top value for image. The problem is --viewport-y values are decimals - e.g. 0.861, 0.034 etc
How do I get pixels value from this values?
I created snippet to demonstrate the issue where I changing opacity easily, but unable to set left property
body {
--test: 0.5;
}
.container {
background: yellow;
width: 100px;
height: 100px;
margin: 30px;
position: absolute;
opacity: calc( var(--test));
left: calc( 100 * var(--test))px;
}<div class="container"></div>css css-variables
add a comment |
I'm trying to achieve css parallax effect via css-variables privided by scroll-out script.
Basically what script does - it sets --viewport-y css variable which I want to rely when calculating top value for image. The problem is --viewport-y values are decimals - e.g. 0.861, 0.034 etc
How do I get pixels value from this values?
I created snippet to demonstrate the issue where I changing opacity easily, but unable to set left property
body {
--test: 0.5;
}
.container {
background: yellow;
width: 100px;
height: 100px;
margin: 30px;
position: absolute;
opacity: calc( var(--test));
left: calc( 100 * var(--test))px;
}<div class="container"></div>css css-variables
use % instead of pixels?
– Pixelomo
Nov 16 '18 at 8:47
add a comment |
I'm trying to achieve css parallax effect via css-variables privided by scroll-out script.
Basically what script does - it sets --viewport-y css variable which I want to rely when calculating top value for image. The problem is --viewport-y values are decimals - e.g. 0.861, 0.034 etc
How do I get pixels value from this values?
I created snippet to demonstrate the issue where I changing opacity easily, but unable to set left property
body {
--test: 0.5;
}
.container {
background: yellow;
width: 100px;
height: 100px;
margin: 30px;
position: absolute;
opacity: calc( var(--test));
left: calc( 100 * var(--test))px;
}<div class="container"></div>css css-variables
I'm trying to achieve css parallax effect via css-variables privided by scroll-out script.
Basically what script does - it sets --viewport-y css variable which I want to rely when calculating top value for image. The problem is --viewport-y values are decimals - e.g. 0.861, 0.034 etc
How do I get pixels value from this values?
I created snippet to demonstrate the issue where I changing opacity easily, but unable to set left property
body {
--test: 0.5;
}
.container {
background: yellow;
width: 100px;
height: 100px;
margin: 30px;
position: absolute;
opacity: calc( var(--test));
left: calc( 100 * var(--test))px;
}<div class="container"></div>body {
--test: 0.5;
}
.container {
background: yellow;
width: 100px;
height: 100px;
margin: 30px;
position: absolute;
opacity: calc( var(--test));
left: calc( 100 * var(--test))px;
}<div class="container"></div>body {
--test: 0.5;
}
.container {
background: yellow;
width: 100px;
height: 100px;
margin: 30px;
position: absolute;
opacity: calc( var(--test));
left: calc( 100 * var(--test))px;
}<div class="container"></div>css css-variables
css css-variables
asked Nov 16 '18 at 8:43
godblessstrawberrygodblessstrawberry
1,333920
1,333920
use % instead of pixels?
– Pixelomo
Nov 16 '18 at 8:47
add a comment |
use % instead of pixels?
– Pixelomo
Nov 16 '18 at 8:47
use % instead of pixels?
– Pixelomo
Nov 16 '18 at 8:47
use % instead of pixels?
– Pixelomo
Nov 16 '18 at 8:47
add a comment |
2 Answers
2
active
oldest
votes
Move px inside the calc expression, like this:
body {
--test: 0.5;
}
.container {
background: yellow;
width: 100px;
height: 100px;
margin: 30px;
position: absolute;
opacity: calc( var(--test));
left: calc( 100px * var(--test));
}<div class="container"></div>add a comment |
Using decimal values for px is perfectly fine. But the way you are using calc with units is wrong. You should do it as follows:
body {
--test: 0.5;
}
.container {
background: yellow;
width: 100px;
height: 100px;
margin: 30px;
position: absolute;
opacity: calc(var(--test));
left: calc(100px * var(--test));
}<div class="container"></div>The reason it works like that is that you can mix different units within calc. For example calc(100% - 10px).
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53334239%2fcss-calc-convert-decimals-to-pixels%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Move px inside the calc expression, like this:
body {
--test: 0.5;
}
.container {
background: yellow;
width: 100px;
height: 100px;
margin: 30px;
position: absolute;
opacity: calc( var(--test));
left: calc( 100px * var(--test));
}<div class="container"></div>add a comment |
Move px inside the calc expression, like this:
body {
--test: 0.5;
}
.container {
background: yellow;
width: 100px;
height: 100px;
margin: 30px;
position: absolute;
opacity: calc( var(--test));
left: calc( 100px * var(--test));
}<div class="container"></div>add a comment |
Move px inside the calc expression, like this:
body {
--test: 0.5;
}
.container {
background: yellow;
width: 100px;
height: 100px;
margin: 30px;
position: absolute;
opacity: calc( var(--test));
left: calc( 100px * var(--test));
}<div class="container"></div>Move px inside the calc expression, like this:
body {
--test: 0.5;
}
.container {
background: yellow;
width: 100px;
height: 100px;
margin: 30px;
position: absolute;
opacity: calc( var(--test));
left: calc( 100px * var(--test));
}<div class="container"></div>body {
--test: 0.5;
}
.container {
background: yellow;
width: 100px;
height: 100px;
margin: 30px;
position: absolute;
opacity: calc( var(--test));
left: calc( 100px * var(--test));
}<div class="container"></div>body {
--test: 0.5;
}
.container {
background: yellow;
width: 100px;
height: 100px;
margin: 30px;
position: absolute;
opacity: calc( var(--test));
left: calc( 100px * var(--test));
}<div class="container"></div>answered Nov 16 '18 at 8:48
Dániel Kis-NagyDániel Kis-Nagy
550513
550513
add a comment |
add a comment |
Using decimal values for px is perfectly fine. But the way you are using calc with units is wrong. You should do it as follows:
body {
--test: 0.5;
}
.container {
background: yellow;
width: 100px;
height: 100px;
margin: 30px;
position: absolute;
opacity: calc(var(--test));
left: calc(100px * var(--test));
}<div class="container"></div>The reason it works like that is that you can mix different units within calc. For example calc(100% - 10px).
add a comment |
Using decimal values for px is perfectly fine. But the way you are using calc with units is wrong. You should do it as follows:
body {
--test: 0.5;
}
.container {
background: yellow;
width: 100px;
height: 100px;
margin: 30px;
position: absolute;
opacity: calc(var(--test));
left: calc(100px * var(--test));
}<div class="container"></div>The reason it works like that is that you can mix different units within calc. For example calc(100% - 10px).
add a comment |
Using decimal values for px is perfectly fine. But the way you are using calc with units is wrong. You should do it as follows:
body {
--test: 0.5;
}
.container {
background: yellow;
width: 100px;
height: 100px;
margin: 30px;
position: absolute;
opacity: calc(var(--test));
left: calc(100px * var(--test));
}<div class="container"></div>The reason it works like that is that you can mix different units within calc. For example calc(100% - 10px).
Using decimal values for px is perfectly fine. But the way you are using calc with units is wrong. You should do it as follows:
body {
--test: 0.5;
}
.container {
background: yellow;
width: 100px;
height: 100px;
margin: 30px;
position: absolute;
opacity: calc(var(--test));
left: calc(100px * var(--test));
}<div class="container"></div>The reason it works like that is that you can mix different units within calc. For example calc(100% - 10px).
body {
--test: 0.5;
}
.container {
background: yellow;
width: 100px;
height: 100px;
margin: 30px;
position: absolute;
opacity: calc(var(--test));
left: calc(100px * var(--test));
}<div class="container"></div>body {
--test: 0.5;
}
.container {
background: yellow;
width: 100px;
height: 100px;
margin: 30px;
position: absolute;
opacity: calc(var(--test));
left: calc(100px * var(--test));
}<div class="container"></div>answered Nov 16 '18 at 8:48
strstr
18.4k65682
18.4k65682
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53334239%2fcss-calc-convert-decimals-to-pixels%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
use % instead of pixels?
– Pixelomo
Nov 16 '18 at 8:47