123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525 |
- {
- "title":"calc() as CSS unit value",
- "description":"Method of allowing calculated values for length units, i.e. `width: calc(100% - 3em)`",
- "spec":"https://drafts.csswg.org/css-values-3/#calc-notation",
- "status":"cr",
- "links":[
- {
- "url":"https://hacks.mozilla.org/2010/06/css3-calc/",
- "title":"Mozilla Hacks article"
- },
- {
- "url":"https://developer.mozilla.org/en/docs/Web/CSS/calc",
- "title":"MDN Web Docs - calc"
- },
- {
- "url":"https://www.webplatform.org/docs/css/functions/calc",
- "title":"WebPlatform Docs"
- }
- ],
- "bugs":[
- {
- "description":"IE 9 - 11 and Edge do not support `width: calc()` on table cells. [Bug Report](https://web.archive.org/web/20171123043312/https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10982196/)"
- },
- {
- "description":"IE 9 - 11 don't render `box-shadow` when `calc()` is used for any of the values"
- },
- {
- "description":"IE10 crashes when a div with a property using `calc()` has a child with [same property with inherit](https://stackoverflow.com/questions/19423384/css-less-calc-method-is-crashing-my-ie10)."
- },
- {
- "description":"IE10, IE11, and Edge < 14 don't support using `calc()` inside a `transform`. [Bug report](https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/104773/)"
- },
- {
- "description":"IE11 is reported to have trouble with `calc()` with nested expressions, e.g. `width: calc((100% - 10px) / 3);` (i.e. it rounds differently)"
- },
- {
- "description":"IE11 is reported to not support `calc()` correctly in [generated content](https://stackoverflow.com/questions/31323915/internet-explorer-incorrectly-calculates-percentage-height-for-generated-content)"
- },
- {
- "description":"IE11 does not support transitioning values set with `calc()`"
- },
- {
- "description":"Safari & iOS Safari (both 6 and 7) does not support viewport units (`vw`, `vh`, etc) in `calc()`."
- },
- {
- "description":"IE & Edge are reported to not support calc inside a 'flex'. (Not tested on older versions)\r\nThis example does not work: `flex: 1 1 calc(50% - 20px);`"
- },
- {
- "description":"IE does not support `calc()` on color functions. Example: `color: hsl(calc(60 * 2), 100%, 50%)`."
- },
- {
- "description":"Firefox <48 does not support `calc()` inside the `line-height`, `stroke-width`, `stroke-dashoffset`, and `stroke-dasharray` properties. [Bug report](https://bugzilla.mozilla.org/show_bug.cgi?id=594933)"
- },
- {
- "description":"Firefox <59 does not support `calc()` on color functions. Example: `color: hsl(calc(60 * 2), 100%, 50%)`. [Bug Report](https://bugzilla.mozilla.org/show_bug.cgi?id=984021)"
- },
- {
- "description":"Firefox <66 does not support `width: calc()` on table cells. [Bug Report](https://bugzilla.mozilla.org/show_bug.cgi?id=957915)"
- }
- ],
- "categories":[
- "CSS3"
- ],
- "stats":{
- "ie":{
- "5.5":"n",
- "6":"n",
- "7":"n",
- "8":"n",
- "9":"a #2",
- "10":"a #3",
- "11":"a #3"
- },
- "edge":{
- "12":"y",
- "13":"y",
- "14":"y",
- "15":"y",
- "16":"y",
- "17":"y",
- "18":"y",
- "79":"y",
- "80":"y",
- "81":"y",
- "83":"y",
- "84":"y",
- "85":"y",
- "86":"y",
- "87":"y",
- "88":"y",
- "89":"y",
- "90":"y",
- "91":"y",
- "92":"y",
- "93":"y",
- "94":"y",
- "95":"y",
- "96":"y",
- "97":"y",
- "98":"y",
- "99":"y"
- },
- "firefox":{
- "2":"n",
- "3":"n",
- "3.5":"n",
- "3.6":"n",
- "4":"y x",
- "5":"y x",
- "6":"y x",
- "7":"y x",
- "8":"y x",
- "9":"y x",
- "10":"y x",
- "11":"y x",
- "12":"y x",
- "13":"y x",
- "14":"y x",
- "15":"y x",
- "16":"y",
- "17":"y",
- "18":"y",
- "19":"y",
- "20":"y",
- "21":"y",
- "22":"y",
- "23":"y",
- "24":"y",
- "25":"y",
- "26":"y",
- "27":"y",
- "28":"y",
- "29":"y",
- "30":"y",
- "31":"y",
- "32":"y",
- "33":"y",
- "34":"y",
- "35":"y",
- "36":"y",
- "37":"y",
- "38":"y",
- "39":"y",
- "40":"y",
- "41":"y",
- "42":"y",
- "43":"y",
- "44":"y",
- "45":"y",
- "46":"y",
- "47":"y",
- "48":"y",
- "49":"y",
- "50":"y",
- "51":"y",
- "52":"y",
- "53":"y",
- "54":"y",
- "55":"y",
- "56":"y",
- "57":"y",
- "58":"y",
- "59":"y",
- "60":"y",
- "61":"y",
- "62":"y",
- "63":"y",
- "64":"y",
- "65":"y",
- "66":"y",
- "67":"y",
- "68":"y",
- "69":"y",
- "70":"y",
- "71":"y",
- "72":"y",
- "73":"y",
- "74":"y",
- "75":"y",
- "76":"y",
- "77":"y",
- "78":"y",
- "79":"y",
- "80":"y",
- "81":"y",
- "82":"y",
- "83":"y",
- "84":"y",
- "85":"y",
- "86":"y",
- "87":"y",
- "88":"y",
- "89":"y",
- "90":"y",
- "91":"y",
- "92":"y",
- "93":"y",
- "94":"y",
- "95":"y",
- "96":"y",
- "97":"y",
- "98":"y",
- "99":"y",
- "100":"y"
- },
- "chrome":{
- "4":"n",
- "5":"n",
- "6":"n",
- "7":"n",
- "8":"n",
- "9":"n",
- "10":"n",
- "11":"n",
- "12":"n",
- "13":"n",
- "14":"n",
- "15":"n",
- "16":"n",
- "17":"n",
- "18":"n",
- "19":"y x",
- "20":"y x",
- "21":"y x",
- "22":"y x",
- "23":"y x",
- "24":"y x",
- "25":"y x",
- "26":"y",
- "27":"y",
- "28":"y",
- "29":"y",
- "30":"y",
- "31":"y",
- "32":"y",
- "33":"y",
- "34":"y",
- "35":"y",
- "36":"y",
- "37":"y",
- "38":"y",
- "39":"y",
- "40":"y",
- "41":"y",
- "42":"y",
- "43":"y",
- "44":"y",
- "45":"y",
- "46":"y",
- "47":"y",
- "48":"y",
- "49":"y",
- "50":"y",
- "51":"y",
- "52":"y",
- "53":"y",
- "54":"y",
- "55":"y",
- "56":"y",
- "57":"y",
- "58":"y",
- "59":"y",
- "60":"y",
- "61":"y",
- "62":"y",
- "63":"y",
- "64":"y",
- "65":"y",
- "66":"y",
- "67":"y",
- "68":"y",
- "69":"y",
- "70":"y",
- "71":"y",
- "72":"y",
- "73":"y",
- "74":"y",
- "75":"y",
- "76":"y",
- "77":"y",
- "78":"y",
- "79":"y",
- "80":"y",
- "81":"y",
- "83":"y",
- "84":"y",
- "85":"y",
- "86":"y",
- "87":"y",
- "88":"y",
- "89":"y",
- "90":"y",
- "91":"y",
- "92":"y",
- "93":"y",
- "94":"y",
- "95":"y",
- "96":"y",
- "97":"y",
- "98":"y",
- "99":"y",
- "100":"y",
- "101":"y",
- "102":"y",
- "103":"y"
- },
- "safari":{
- "3.1":"n",
- "3.2":"n",
- "4":"n",
- "5":"n",
- "5.1":"n",
- "6":"y x",
- "6.1":"y",
- "7":"y",
- "7.1":"y",
- "8":"y",
- "9":"y",
- "9.1":"y",
- "10":"y",
- "10.1":"y",
- "11":"y",
- "11.1":"y",
- "12":"y",
- "12.1":"y",
- "13":"y",
- "13.1":"y",
- "14":"y",
- "14.1":"y",
- "15":"y",
- "15.1":"y",
- "15.2-15.3":"y",
- "15.4":"y",
- "TP":"y"
- },
- "opera":{
- "9":"n",
- "9.5-9.6":"n",
- "10.0-10.1":"n",
- "10.5":"n",
- "10.6":"n",
- "11":"n",
- "11.1":"n",
- "11.5":"n",
- "11.6":"n",
- "12":"n",
- "12.1":"n",
- "15":"y",
- "16":"y",
- "17":"y",
- "18":"y",
- "19":"y",
- "20":"y",
- "21":"y",
- "22":"y",
- "23":"y",
- "24":"y",
- "25":"y",
- "26":"y",
- "27":"y",
- "28":"y",
- "29":"y",
- "30":"y",
- "31":"y",
- "32":"y",
- "33":"y",
- "34":"y",
- "35":"y",
- "36":"y",
- "37":"y",
- "38":"y",
- "39":"y",
- "40":"y",
- "41":"y",
- "42":"y",
- "43":"y",
- "44":"y",
- "45":"y",
- "46":"y",
- "47":"y",
- "48":"y",
- "49":"y",
- "50":"y",
- "51":"y",
- "52":"y",
- "53":"y",
- "54":"y",
- "55":"y",
- "56":"y",
- "57":"y",
- "58":"y",
- "60":"y",
- "62":"y",
- "63":"y",
- "64":"y",
- "65":"y",
- "66":"y",
- "67":"y",
- "68":"y",
- "69":"y",
- "70":"y",
- "71":"y",
- "72":"y",
- "73":"y",
- "74":"y",
- "75":"y",
- "76":"y",
- "77":"y",
- "78":"y",
- "79":"y",
- "80":"y",
- "81":"y",
- "82":"y",
- "83":"y"
- },
- "ios_saf":{
- "3.2":"n",
- "4.0-4.1":"n",
- "4.2-4.3":"n",
- "5.0-5.1":"n",
- "6.0-6.1":"y x",
- "7.0-7.1":"y",
- "8":"y",
- "8.1-8.4":"y",
- "9.0-9.2":"y",
- "9.3":"y",
- "10.0-10.2":"y",
- "10.3":"y",
- "11.0-11.2":"y",
- "11.3-11.4":"y",
- "12.0-12.1":"y",
- "12.2-12.5":"y",
- "13.0-13.1":"y",
- "13.2":"y",
- "13.3":"y",
- "13.4-13.7":"y",
- "14.0-14.4":"y",
- "14.5-14.8":"y",
- "15.0-15.1":"y",
- "15.2-15.3":"y",
- "15.4":"y"
- },
- "op_mini":{
- "all":"n"
- },
- "android":{
- "2.1":"n",
- "2.2":"n",
- "2.3":"n",
- "3":"n",
- "4":"n",
- "4.1":"n",
- "4.2-4.3":"n",
- "4.4":"a #1",
- "4.4.3-4.4.4":"a #1",
- "99":"y"
- },
- "bb":{
- "7":"n",
- "10":"y"
- },
- "op_mob":{
- "10":"n",
- "11":"n",
- "11.1":"n",
- "11.5":"n",
- "12":"n",
- "12.1":"n",
- "64":"y"
- },
- "and_chr":{
- "100":"y"
- },
- "and_ff":{
- "98":"y"
- },
- "ie_mob":{
- "10":"y",
- "11":"y"
- },
- "and_uc":{
- "12.12":"y"
- },
- "samsung":{
- "4":"y",
- "5.0-5.4":"y",
- "6.2-6.4":"y",
- "7.2-7.4":"y",
- "8.2":"y",
- "9.2":"y",
- "10.1":"y",
- "11.1-11.2":"y",
- "12.0":"y",
- "13.0":"y",
- "14.0":"y",
- "15.0":"y",
- "16.0":"y"
- },
- "and_qq":{
- "10.4":"y"
- },
- "baidu":{
- "7.12":"y"
- },
- "kaios":{
- "2.5":"y"
- }
- },
- "notes":"Support can be somewhat emulated in older versions of IE using the non-standard `expression()` syntax.\r\n\r\nDue to the way browsers handle [sub-pixel rounding](https://johnresig.com/blog/sub-pixel-problems-in-css/) differently, layouts using `calc()` expressions may have unexpected results.",
- "notes_by_num":{
- "1":"Partial support in Android Browser 4.4 refers to the browser lacking the ability to multiply and divide values.",
- "2":"Partial support in IE9 refers to the browser crashing when used as a `background-position` value.",
- "3":"Partial support in IE10/IE11 refers to calc not working properly with various use cases mentioned in known issues"
- },
- "usage_perc_y":95.58,
- "usage_perc_a":0.97,
- "ucprefix":false,
- "parent":"",
- "keywords":"",
- "ie_id":"csscalc",
- "chrome_id":"5765241438732288",
- "firefox_id":"",
- "webkit_id":"",
- "shown":true
- }
|