- From: Patrick Dark <www-style.at.w3.org@patrick.dark.name>
- Date: Wed, 8 Jul 2015 22:58:13 -0500
- To: Jonathan Kingston <jonathan@jooped.com>
- Cc: Florian Rivoal <florian@rivoal.net>, "www-style@w3.org" <www-style@w3.org>
- Message-ID: <559DF155.2050109@patrick.dark.name>
On 7/3/2015 2:18 AM, Jonathan Kingston wrote: > Which means we are back to if: > > --margin-size: 2rem; > --width-size: 20%; > margin: 1rem var(--margin-size); > width: calc(--width-size - var(--margin-size) * 2); > > is more readable than: > > width: 20%; > margin: 1rem 2rem; > box-sizing: margin-box; > > Authors choosing to extend the properties example would need to know of --width-size and --margin-size where as setting the width or margin works here. Both of these examples require three declarations; you have a superfluous |--width-size| variable in the first example. Your first example should read something more like: --x-margin: 2rem; margin: 1rem var(--x-margin); width: calc(20% - var(--x-margin) * 2); Alternatively, one might use: margin: 1rem 2rem; width: calc(20% - 2rem * 2); /* width minus x-margins */ Those changes narrow the difference in code verbosity that is your apparent point. On 7/3/2015 2:18 AM, Jonathan Kingston wrote: > >>calc however as mentioned removes meaning > >There are no semantics tied to CSS property values > > Less 'semantic' and more readable, CSS properties like all programming languages have intent. "Semantics" are "meanings". Your two examples accomplish the same thing; there's no difference in meaning as there would be if one, say, used a cite element instead of an em element. This logic is the equivalent of suggesting that the JavaScript code ++i has superior/inferior "semantics" or demonstration of "intent" in comparison with i += 1 or i = i + 1 despite the three constructs serving the same purpose. The techniques vary in simplicity, but the results are the same. On 7/3/2015 2:18 AM, Jonathan Kingston wrote: > The easier that is to read the easier a developers life is. > > The flex example would still need to use calc with min-width specified also variable width is often required. Readability is a valid argument, but that brings us back to the costs versus benefits of |box-sizing: margin-box|. Specifically, that calls for use cases. Florian's initial use case¹ has been demonstrated to be easily accomplished using other means. Ian's use case² (circa 1999) should probably be accomplished with x-padding on an ancestor element, but could also be accomplished using a calc() value. And the use case you've just presented³ should probably utilize the flexible box layout model (based on speculation that there should be four additional, 20%-wide boxes): <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>HTML Demo</title> <style> * { margin: 0; /* fallback */ margin: initial; } body { display: flex; background-color: white; } body > div { background-color: silver; flex-grow: 1; justify-content: space-around; margin: 1rem; min-height: calc(100vh - 2rem); } </style> </head> <body> <div/> <div/> <div/> <div/> <div/> </body> </html> ¹ https://lists.w3.org/Archives/Public/www-style/2015Jun/0123.html ² https://lists.w3.org/Archives/Public/www-style/1999Nov/0037.html ³ https://lists.w3.org/Archives/Public/www-style/2015Jul/0048.html
Attachments
- application/x-zip-compressed attachment: flexible.box.layout.xhtml.zip
Received on Thursday, 9 July 2015 03:58:46 UTC