Recently, David Hucklesby offered us a problem with fitting list based
navigation to design intentions. His article was titled, "Spreading list
items across total width".

 

I hate to sound like a doctor, correcting semantic. But what is a total
width? What composite of measurements is used to calculate a total width? If
you are using a "liquid" layout, even that single value for a single
selector like 'body {width:100%;}' says a million different things depending
on layout and what it contains.

 

David Hucklesby got confused, which seems to be a major theme around
cyber-town these days. He got confused about how to display a desired
design. Let's never mind his particular confusion that carbon copies most
concerns popped into css-d these days. Let's look at resolving why he got
confused in the first place.

 

Where does our design strategy go when we try and strap our 'black-hole' css
list-navigation style sheet into screen reader, mobile and media. Not the
pretend gimped alternative formats that people mistakenly code with a lame
head statement about style type, while looking the other way. We want, we
need to focus on the real code distributed on real devices read by a
universe full of unique css standards based equipment! How do we setup
rollovers using basic css? That sort of thing. Very basic. People around
here are just not ready for media-rich interaction yet.

 

Like the mindless majority, David is wasting energy going in a proprietary
direction. Anything squeezing extended (Microsoft calls it enhanced) css
into trial and error compression is black hole coding because it eventually
ties even super-computer assembly into an inability to progress or adapt the
code purpose. Too semantic for you? 

 

It takes some basic learning curve dynamics, but all pixel measurements need
to be replaced with em's. That's simply because pixels are a static
(compressed) unit made to enable display within close-to-standards
environment by software platform engineers. Those engineers weren't black
leather sadists. Think like a font designer, vector layouts. Pixels are for
machines, coders need something more fluid. Em's, on the other hand, are a
call-up of typographic dimension; something any font designer knows is
vector based and therefore very liquid in nature.

 

Great. So I'm coding in em's, so what's the big deal? Well, now it seems a
no-brainer that any static or quasi static font placement will big-time
throw a wrench in your design wheel: so, make all dimensions %'s.

 

Finally, if you can adjust your skill-set as far as %'s and em's, you may be
wondering why you ever allowed browser and version compatibility to enter
into your navigation streams. Surely we remember that Apple and Microsoft
display foundations rest on fixed proprietary sizing. UGH! Or rather, (ug).
Body {font-size:100%;} and that problem is solved with M and A still
smiling. Assuming that we've lost all of our pixel fixation on the page. 

 

Now what about that list navigation code? Dump it! WHAT!? That's right! Why
bother with extended css language?

Apart from a garbling war between M and A to show off the best proprietary
fit, there is a much easier and non-confrontational way to code css
navigation. That method replaces OL, UL and DT with DIV.

 

Lists, as we know them (UL, OL and DT), are page parasites. The extended css
needed to squeeze "lists" into a navigation structure, will knock out older
browsers and seriously deprecate intended design. Examples of selector
parasites typically found in such out-of-control design are as follows. 

 

Pseudo selectors: the basic a:hover/visited/active/link are acceptable, but
focus before and after are all long after 50% of existing browser technology
and 90% of compatibility tests.

Descendent selectors like 'div p', or 'div.p'.

Child selectors like 'div > p'.

Adjacent sibling like 'div + p'.

Attributed selectors like 'body[div=p].

And yes, even grouped selectors like 'div, p' cause almost all of our
viewers headaches.

They can all be displayed on any old machine with properly sequenced code or
code instancing.

 

To review, when anything like a navigation list refuses to conform to code,
revisit your coding syntax.

http://www.onderhond.com/blog/work/spreading-list-items is a typical code
nightmare. No harm meant to Open Cube, but David's spreading list problem is
sadly typical: geared to proprietary redundancy and upgrade dependent
marketing. People! Given the KNOWN BROWSER CONFLICTS with extended css,
examine a very cubesque segment of David's spreading list css.

ul.issues li {color: .etc (actually, short form proprietary draft code like
'ul issues.li > li' is leaner, two step black hole code; but say no more).

 

Div's, em's and %'s (without any messy code shortcuts) and the spread
problem never happened. Excepting inconsequential one-pixel, 1% and
left-right variants due to proprietary machine language that makes
absolutely no difference to your website visitor, and that is all an easy
workaround. Conventional lists and tables look great in a few confined
places to present proprietary data (they were never intended to be anything
else). Spatial liquid placement in the div unit is the only true standard
every browser recognizes.

 

Remember, messes are a great way to draft quick solutions; inside of a
specific design platform or environment, in-house design. Just keep things
in a real perspective. Any liquid layout problem is easily fixed with clean
css, also known as css for the real world. So goodbye float, hello to liquid
tops and margins, relatives and absolutes. Translate that spreading list
mess into non-extended css, basic foundations. Even when you pull down the
layer trip for version 2+ visitors, keep it basic. Double the number of
lines of css, true. But no proprietary gimping.

 

Then, when you encounter problems, and you'll only find REAL PROBLEMS, bring
them into forum context. Propel a problem, if necessary, right into Bill
Gate's diamond encrusted lap. Be famous (horrible as that thought may become
for you), but stop drooling over draft garbage. Pretending black hole
compression should reach the real world? Ha! WE love the way you fight
reality, David Hucklesby.

 

As an afterthought, there is a possibility that the final css 3.0
specifications will make it easy to size font shapes vertically and
horizontally. For now we are tweaked into an observance of proportionality
confined to the fonts' axial specifications. Fortunately, our platform
engineers left us line-height and letter-spacing and em font size. And there
are some plain simple 2+ hacks to fit type size like an image object?
Semantically speaking (uh-oh, that doctor just came back), confinement tends
to scare coders into a forest of messy quick fixes. No insult intended. Just
statement of fact. Revisit our navigation layout semantic.

 

Mark

cssGoat.com

 

personal note: check-in on Stu Nichol's test of dt script overlays as
proprietary code-hack filter cum tracker environment

 

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of David Hucklesby
Sent: Wednesday, December 19, 2007 11:11 AM
To: Niels Matthijs; css-d@lists.css-discuss.org
Subject: Re: [css-d] Spreading list items across total width

 

On Wed, 19 Dec 2007 15:23:24 -0000, Niels Matthijs wrote:

> 

> I've been having some problems with a list.

> 

> I'm using a list as mark-up for my main navigation, the list has 4 items
and the 4

> items have to be spread evenly across the total width of a container
(4x25%). I'm

> looking for a way to make this work in a liquid/elastic layout.

> 

> I've tried many things, sadly I haven't found a solution yet. I documented
the methods  

> I have tried here:

> http://www.onderhond.com/blog/work/spreading-list-items

> 

[...]

 

In addition to Thierry's solution for containing floats, I'd also suggest

reducing the 25% to 24.5%. In my experience, Internet Explorer cannot

add, especially where percentages are concerned.

 

Cordially,

David

--

 

 

______________________________________________________________________
css-discuss [EMAIL PROTECTED]
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