HighDots Forums  

Controlling font size accurately across browsers

Cascading Style Sheets Layout/presentation on the WWW (comp.infosystems.www.authoring.stylesheets)


Discuss Controlling font size accurately across browsers in the Cascading Style Sheets forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Andy Dingley
 
Posts: n/a

Default Controlling font size accurately across browsers - 09-18-2005 , 12:20 PM






I have a large commercial site to rebuild, where the design has been
produced by the pixel-counting method. It's also one of those sites
where cramming every space full of content is seen as better than a more
spread-out and usable design that uses some scrolling. Not surprisingly
it's the work of paper-based magazine designers, not web designers.

This leaves me with several conflicting requirements:

- The body text size for the "article" pages should be 1em, for
well-known usability reasons.

- The "index" pages may require pixel-based font sizing control,
because otherwise I can't constrain the text to fit in the available
space. These spaces are fixed pixel widths - they're usually the size of
a bitmap image. Additionally they're often "headline text" which means
few short words and some clunky behaviour for linewrapping.

- It must work cross-browser, including IE6 and IE/Mac


The real problem here is that IE blows the whole lot apart. With its
well-known problems of an excessive default scaling for ems to pixels, I
can produce a good implementation for the well-behaved browsers (even on
the Mac) but any IE rendering of the page only works when the user's
text size is reduced to "Smaller". This is particularly bad if I attempt
to use <h*> markup, where the differences are particularly visible.

Any suggestions ?

Are there any "CSS hack" based techniques which will let me set a
default size of 1em/100% for web browsers, then an 85% value for IE
only, hidden by some parser hack ?


(I am _not_ interested in a discussion of em vs. pixel sizing - that's a
different issue)


Reply With Quote
  #2  
Old   
C A Upsdell
 
Posts: n/a

Default Re: Controlling font size accurately across browsers - 09-18-2005 , 12:33 PM






Andy Dingley wrote:
Quote:
I have a large commercial site to rebuild, where the design has been
produced by the pixel-counting method. It's also one of those sites
where cramming every space full of content is seen as better than a more
spread-out and usable design that uses some scrolling. Not surprisingly
it's the work of paper-based magazine designers, not web designers.

The real problem here is that IE blows the whole lot apart. With its
well-known problems of an excessive default scaling for ems to pixels, I
can produce a good implementation for the well-behaved browsers (even on
the Mac) but any IE rendering of the page only works when the user's
text size is reduced to "Smaller". This is particularly bad if I attempt
to use <h*> markup, where the differences are particularly visible.

Any suggestions ?

Are there any "CSS hack" based techniques which will let me set a
default size of 1em/100% for web browsers, then an 85% value for IE
only, hidden by some parser hack ?

(I am _not_ interested in a discussion of em vs. pixel sizing - that's a
different issue)
body { font-size:85%; voice-family: "\"}\""; voice-family:inherit;
font-size:medium; }


Reply With Quote
  #3  
Old   
Andy Dingley
 
Posts: n/a

Default Re: Controlling font size accurately across browsers - 09-18-2005 , 04:16 PM



On Sun, 18 Sep 2005 12:33:59 -0400, C A Upsdell
<""cupsdellXXX\"@-@- (AT) XXXupsdell (DOT) com"> wrote:

Quote:
body { font-size:85%; voice-family: "\"}\""; voice-family:inherit;
font-size:medium; }
But isn't that (the Tantek Celik hack) just going to work on IE5 ? I
need to make it work on IE6


(By some bizarre logic, I don't actually need to support IE5 / PC as my
boss won't be testing for that, but he will be carefully testing the
almost unused IE5/Mac combination)


Reply With Quote
  #4  
Old   
C A Upsdell
 
Posts: n/a

Default Re: Controlling font size accurately across browsers - 09-18-2005 , 04:24 PM



Andy Dingley wrote:
Quote:
On Sun, 18 Sep 2005 12:33:59 -0400, C A Upsdell
""cupsdellXXX\"@-@- (AT) XXXupsdell (DOT) com"> wrote:


body { font-size:85%; voice-family: "\"}\""; voice-family:inherit;
font-size:medium; }

But isn't that (the Tantek Celik hack) just going to work on IE5 ? I
need to make it work on IE6
Works for me with IE6. Don't know about IE7.





Reply With Quote
  #5  
Old   
Martin Geisler
 
Posts: n/a

Default Re: Controlling font size accurately across browsers - 09-18-2005 , 05:26 PM



-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQBDLdt26nfwy35F3TgRAg3bAJoCXF5Z2wyNg+XWLCIjAQ rJ6N6t/QCgxHLq
/vTPJN+Kqe3BZEMmtYFZMb0=
=5FNq
-----END PGP SIGNATURE-----

Reply With Quote
  #6  
Old   
C A Upsdell
 
Posts: n/a

Default Re: Controlling font size accurately across browsers - 09-18-2005 , 05:42 PM



Martin Geisler wrote:
Quote:
Andy Dingley <dingbat (AT) codesmiths (DOT) com> writes:


On Sun, 18 Sep 2005 12:33:59 -0400, C A Upsdell
""cupsdellXXX\"@-@- (AT) XXXupsdell (DOT) com"> wrote:


body { font-size:85%; voice-family: "\"}\""; voice-family:inherit;
font-size:medium; }

But isn't that (the Tantek Celik hack) just going to work on IE5 ? I
need to make it work on IE6

Wouldn't it be easier to use a documented features of IE then: the
conditional comments? Like this:

!--[if IE]
style type="text/css"/
... your IE rules here ...
/style>');
![endif]--

I find this approach much better than relying on various parsing
errors in IE to get things right. Using a comment which will be
ignored by all browsers except IE is much cleaner.
This requires a separate stylesheet for IE. There is some advantage to
having everything in one stylesheet.

We'll have to see what IE7 does with this.




Reply With Quote
  #7  
Old   
Andy Dingley
 
Posts: n/a

Default Re: Controlling font size accurately across browsers - 09-18-2005 , 08:33 PM



On Sun, 18 Sep 2005 17:42:53 -0400, C A Upsdell
<""cupsdellXXX\"@-@- (AT) XXXupsdell (DOT) com"> wrote:

Quote:
Martin Geisler wrote:

Wouldn't it be easier to use a documented features of IE then: the
conditional comments? Like this:

!--[if IE]
style type="text/css"/
... your IE rules here ...
/style>');
![endif]--

This requires a separate stylesheet for IE.
Not necessarily - I could inline the stylesheet into the page HTML. All
the pages are auto-generated by XSLT, so this would actually be quite
easy to do (if <xsl:comment> can generate that fragment)

As a performance issue I want to avoid the number of separate documents
to be retrieved, but I can live with a few lines added to each HTML
document.


Reply With Quote
  #8  
Old   
C A Upsdell
 
Posts: n/a

Default Re: Controlling font size accurately across browsers - 09-18-2005 , 09:29 PM



Andy Dingley wrote:
Quote:
On Sun, 18 Sep 2005 17:42:53 -0400, C A Upsdell
""cupsdellXXX\"@-@- (AT) XXXupsdell (DOT) com"> wrote:
Wouldn't it be easier to use a documented features of IE then: the
conditional comments? Like this:

!--[if IE]
style type="text/css"/
... your IE rules here ...
/style>');
![endif]--

This requires a separate stylesheet for IE.

Not necessarily - I could inline the stylesheet into the page HTML. All
the pages are auto-generated by XSLT, so this would actually be quite
easy to do (if <xsl:comment> can generate that fragment)

As a performance issue I want to avoid the number of separate documents
to be retrieved, but I can live with a few lines added to each HTML
document.
But this creates a maintenance problem: a change in the CSS for IE
would then require that all the pages be updated.

Another issue is that order matters with CSS: when putting CSS in a
single stylesheet, one can put the declarations in just the right order
to achieve the desired results; one cannot readily do so with multiple
stylesheets or with embedded CSS.



Reply With Quote
  #9  
Old   
Jukka K. Korpela
 
Posts: n/a

Default Re: Controlling font size accurately across browsers - 09-19-2005 , 07:26 AM



C A Upsdell <""cupsdellXXX\"@-@- (AT) XXXupsdell (DOT) com"> wrote:

Quote:
!--[if IE]
style type="text/css"/
... your IE rules here ...
/style>');
![endif]--
- -
We'll have to see what IE7 does with this.
My bet is that for some n > 6, IE version n will still recognize the
"if IE" hack, yet process CSS more by the book than IE 6 does.
Thus, if the trick relies on "known" misfeatures of IE 6, it will break
down quite often.

I have some difficulties in understanding the "/>" vs. ">" as well as the
poor lonesome apostrophe, too, but I guess they were just typos. The sad
thing is that CSS checkers probably would not catch them, since they are
inside a comment, as far as "standards" are concerned. The construct
<style type="text/css"/> may have interesting effects, and different
effects by old (SGML) HTML rules, by XML and XHTML rules, and by tagsoup
processing.

--
Yucca, http://www.cs.tut.fi/~jkorpela/


Reply With Quote
  #10  
Old   
Martin Geisler
 
Posts: n/a

Default Re: Controlling font size accurately across browsers - 09-19-2005 , 07:58 AM



-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQBDLqf66nfwy35F3TgRAu3bAKCir4vosbdwhJTb3+4tBU s9d6ZwkACeKS19
XjeuFrMnelR2hfCQKtxaWDQ=
=vTIq
-----END PGP SIGNATURE-----

Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.