I am trying to build a simple web application based on grids.
Like, have this widget occupy 1/3 of the screen on bottom, that one one line of large bold text on top, and let another one occupy the rest of the screen.
While grid layouts are were with us for ages in desktop applications, somehow it is a forbidden fruit in the world of the Web. When asking/searching on how to do it, you get an amazing mix of
– full screen grids are evil because they are against the Party Line
– long discussions about separation of structure and behavior
– pointers to gigantic galleries of half-working examples
– suggestions to use CSS (totally brain dead idea: the notion of “and the rest of the available space goes to element X” is completely foreign to CSS)
– complex ad hoc java script snippets that work in this particular case, but not the other
– some mix of the above
This “answer” on Stack Overflow is very indicative of the situation. It starts with “I must respectfully disagree with the answer that colspan is exclusively indicative of structure…” while the real answer is “no, you can’t do it with CSS”.
Finally, I find this: JQuery Layout plugin. Looks perfect. Alas, I can’t make it to work with the latest JQuery. Reason? $.browser()
has been removed. Apparently it also crossed a Party Line. The suggestion is to use a plugin like Modernizr, but there is no version of JQuery.Layout that uses Modernizr, and rewrite of a major piece of complex JavaScript code is not currently not in my plans.
So, my choice is to either use the layout plugin and get stuck with JQuery 1.2, or use the latest JQuery (1.10 at the time of writing) and do without the layout plugin.
Bottom line: DLL hell can be found anywhere, even in JavaScript land (surprise-surprise!). Especially when Party Lines get involved and people remove useful stuff they consider ideologically wrong.
PS. There is a release candidate of JQuery.Layout that is compatible with JQUery 1.9+, but it looks like all development seized in January 2013. Too bad…
Permalink
On the very page that you linked about jquery.browser, you can also read: “If needed, it is available as part of the jQuery Migrate plugin.” https://github.com/jquery/jquery-migrate
That plugin, officially maintained by the core jQuery team, restores (among other things) the $.browser property.
Of course, I have not tested it, so I cannot be sure that it works with jQuery Layout, but it seems to be something worth trying.