W3C home > Mailing lists > Public > www-style@w3.org > January 2012

Re: CSS Referencing

From: Jon Rimmer <jon.rimmer@gmail.com>
Date: Thu, 5 Jan 2012 20:29:54 +0000
Message-ID: <CA+ZDCiBNNcW=TRgMm3wCDf3PTiSvVuXrXhHXrxVi2YpEBE9Z7Q@mail.gmail.com>
To: Matthew Wilcox <elvendil@gmail.com>
Cc: "Oliver St. John" <osj@cbord.com>, "www-style@w3.org" <www-style@w3.org>
On 5 January 2012 17:18, Matthew Wilcox <elvendil@gmail.com> wrote:
> @Jon
>
> That's fine in the context of a grid. But that is incredibly limiting
> - I have to have a grid and it's only about layout. I may not want a
> grid, it may not make any sense for my design, and my problem may not
> be a layout problem. Maybe I want to match colours, or font sizes,
> etc.

If you want to share colours, font sizes, etc, why can't you just use
CSS classes? It seems like we already have mechanisms to easily share
property values like colours and font sizes between elements. These
could be improved, but I think LESS and SASS style variables and
mixins would be a much better addition.

This referencing idea seems analogous to the goto keyword in
programming languages. It would provide a quick and easy way to point
one property to another, but the end result would likely be a horrible
spaghetti of cross referencing that would be very difficult to
understand and reason about. Programmers have learned through painful
experience that's what needed is a structured way to express and
abstract these kinds of dependencies.

Indeed, CSS is all about abstracting the common styling of elements
into discrete, reusable classes. Instead of just saying, have this
element act like this other element, you take what is common about the
two and express it as a class that you can reuse. Switching to a
mechanism where elements arbitrarily reference the properties of other
elements seems like a step away from abstraction and reuse to ad-hoc
messiness.

> I think the idea that grid answers the same problem as CSS Refernecing
> would be shoe-horning very specific sub-sets of one concept into
> fitting a given other framework. They're not the same problem.

I'm not convinced there is a problem, outside of layout. I can't
remember any occasion where I wanted some element to pick up the same
background-color or font-size as another element, but where I couldn't
just introduce a CSS class. Could you provide a use case, other than
for layout, where you think this kind of referencing would be useful?

> Also, having looked at the grid specification, I remain dubious as to
> how successful it will be with authors. The syntax is hard and
> unfamiliar. With that said, I am reading a spec, which is not the same
> as reading a clear explanation - so it may be simpler than it looks.

I'd recommend checking out some tutorials and examples. I don't think
it's as difficult as you imagine. I know Microsoft have some decent
documentation and examples for Grid Layout, for example[1]. Also, the
ideas in there are not novel, they're evolutions of similar approaches
used in UI toolkits like Microsoft's Silverlight and WPF, and Java's
Swing, and they've proved to be effective and understandable for users
of those technologies.

>
> What I like about CSS getting calc(), and constants is it allows us to
> define our own units and build our own grids with the existing layout
> tools.
>
> gridUnit = 24px;
>
> div#one { width: calc(6*gridUnit); }

[1] http://blogs.msdn.com/b/ie/archive/2011/04/14/ie10-platform-preview-and-css-features-for-adaptive-layouts.aspx
http://ie.microsoft.com/testdrive/HTML5/Griddle/Default.html
http://msdn.microsoft.com/en-us/library/hh673533.aspx
Received on Thursday, 5 January 2012 20:30:22 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 17:20:48 GMT