One solution is to use your server-side programming to dynamically generate
the CSS file.  This way you can control all sorts of things in your layout
and look-and-feel relative to your database queries.

In your case, for your column of links, write an IF/ELSE statement based on
the record count. This code would be in the file that generates the CSS file
that is sent to the browser. Such as "site_styles.cfm or .php or .asp, or
..." which generates site_styles.css

IF #record count# > x
[css for one column width]
ELSE
[css for two columns]

The downside to this approach is that your CSS file is regenerated and
transmitted with EVERY call from the browser.  A workaround to "this
problem" would be to use inline CSS in the page that contains the link-list
column(s). This way you're not regenerating the entire CSS file, just the
particular code (selectors and rules) that pertain to a specific area of
your page.  This, of course, generates the dreaded future maintenance
problem(s)--you now can't go to one place to maintain your CSS, it is now
distributed throughout the site code/pages.


Dan K



-----Original Message-----
From: css-d-boun...@lists.css-discuss.org
[mailto:css-d-boun...@lists.css-discuss.org] On Behalf Of Colin (Sandy)
Pittendrigh
Sent: Sunday, October 09, 2011 7:22 AM
To: css-d@lists.css-discuss.org
Subject: [css-d] dynamic CSS strategies

This is a CSS discussion list.  So programming issues are not on topic
here.
But if I keep my dynamic CSS question abstract enough I don't see why it
isn't a CSS issue as much as anything else.

Let's say my content management system is currently using a three column
layout, where a left side column of links is usually defined as 16% of
available width.
However,  if it turns out the current page has a larger than normal number
of navigation links,  I could (somehow) set the navigation column width to
25% so it could contain two vertical rows of clickable links, rather than
one vertical column.

What is the best way to do this?

My CMS codes could calculate the number of needed links before generating
any output, and then choose from any one of several hard-coded CSS files
depending on the total link count.  Or I could manipulate the browser's CSS
on the fly with Javascript and the DOM tree (which used to be a
browser-sniffing nightmare, the last time I tried it).  Are there any
alternate strategies I'm not aware of.....simply because I'm an amateur
hacker and not a well-educated professional?



-- 
/*  Colin (Sandy) Pittendrigh  >--oO0>
    Have code will travel                  */
______________________________________________________________________
css-discuss [css-d@lists.css-discuss.org]
http://www.css-discuss.org/mailman/listinfo/css-d
List wiki/FAQ -- http://css-discuss.incutio.com/
List policies -- http://css-discuss.org/policies.html
Supported by evolt.org -- http://www.evolt.org/help_support_evolt/


______________________________________________________________________
css-discuss [css-d@lists.css-discuss.org]
http://www.css-discuss.org/mailman/listinfo/css-d
List wiki/FAQ -- http://css-discuss.incutio.com/
List policies -- http://css-discuss.org/policies.html
Supported by evolt.org -- http://www.evolt.org/help_support_evolt/

Reply via email to