home *** CD-ROM | disk | FTP | other *** search
/ db.tidbits.com / db.tidbits.com.tar / db.tidbits.com / getbits.acgi?tbart=05859.orig < prev    next >
Text File  |  2010-09-23  |  48KB  |  791 lines

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  2.         "http://www.w3.org/TR/html4/loose.dtd">
  3.  
  4. <html lang="en">
  5. <head>
  6.     <meta http-equiv="content-type" content="text/html;charset=utf-8">
  7.     <meta http-equiv="Content-Language" content="en">
  8.     <title>TidBITS : Building Characters: A Brief History of the Web War</title>
  9.  
  10.     <meta name="title" content="TidBITS : Building Characters: A Brief History of the Web War">
  11.     <meta name="description" content="TidBITS is a free email and Web publication covering the Macintosh Internet community.">
  12.     <link rel="image_src" href="/images/tblogo9.gif" />
  13.     <meta name="keywords" content="Apple, Mac, Macintosh, Mac OS, Mac OS X, newsletter, Internet, analysis, reviews, technology, news, TidBITS, TidBITS Talk, Engst">
  14.     <link rel="Help" href="http://www.tidbits.com/about/about-tidbits.html" title="About TidBITS">
  15.     <link rel="Search" href="http://www.tidbits.com/search/" title="Search All TidBITS Content">
  16.     <link rel="Author" href="http://www.tidbits.com/about/contact-info.html" title="Contact Information">
  17.     <link rel="Contents" href="tb-issues/" title="TidBITS Issue Archive">
  18.     <link rel="alternate" type="application/rss+xml" href="http://db.tidbits.com/feeds/tidbits.rss" title="TidBITS Full Text Feed">
  19.     <link rel="alternate" type="application/rss+xml" href="http://db.tidbits.com/commentfeeds/firehose.xml" title="TidBITS Full Comments Feed">
  20.  
  21.     <link rel="stylesheet" href="/tidbits_2010_001.css" type="text/css">
  22.     <LINK rel="stylesheet" type="text/css" media="print" href="/tb-new-print.css">
  23.     <script src="/javascript/tb.js" type="text/javascript"></script>
  24.     <meta name="viewport" content="width:940">
  25.     <script type='text/javascript' src='http://db.tidbits.com/ads/delivery/spcjs.php?id=2'></script>
  26.     <script src="/javascript/prototype.js" type="text/javascript"></script>
  27. <script src="/javascript/scriptaculous.js" type="text/javascript"></script>
  28. <script src="/js-global/FancyZoom.js" type="text/javascript"></script>
  29. <script src="/js-global/FancyZoomHTML.js" type="text/javascript"></script>
  30. <script type="text/javascript"  src="http://api.recaptcha.net/js/recaptcha_ajax.js"></script>
  31.  
  32. </head>
  33. <body onLoad="setupZoom()">
  34. <!-- popup query -->
  35. <div id="big_ole_background" style="display:none"> </div>
  36. <div id="tipbits_enclosure_preview" style="display:none">
  37. <div class="tearoffbox_wide_container">
  38. <div class="tearoffbox_wide_tips">
  39.  
  40. <div class="tip_display">
  41. <div class="preview">
  42. <h6><span id="p_tips_title"></span></h6>
  43. <p id="p_tips_text"></p>
  44. <p>Visit <a href="javascript:void(0)" id="p_url"><span id="p_label"></span></a></p>
  45. <p class="credit">Submitted by <span id="p_reader"></span></p>
  46. <p><input type="submit" value="Back" name="preview_tip" onClick="preview_box('ts','tipbits_enclosure_preview'); return false;"></p>
  47. </div>
  48. </div>
  49. <div class="tearoffbox_wide_bottom_tips">
  50. </div>
  51.  
  52. </div><!-- end tearoffbox_wide_tips -->
  53. </div><!-- end tearoffbox_wide_container for tips-->
  54. <!-- end tearoff box wide -->
  55. </div><!-- end enclosure -->
  56.  
  57. <div class="popup_box_with_captcha" id="ts" style="display:none">
  58.     <div id="popup_box_thanks" style="display:none" onClick="close_popup_thanks('popup_box_thanks', 'ts')"><br>Thanks for submitting your tip! All submissions are moderated by an editor before appearing online. We've reset the form so you can enter another tip. Or you can close the tip submission box.    <div class="x_close" id="thanks_upper_right"><a href="javascript:void(0)" onmousedown="close_popup_thanks('popup_box_thanks', 'ts'); return true;">Close</a></div></div>
  59.     <div class="tip_box_format">
  60.     <div id="ts_innards" onClick="close_popup_thanks('popup_box_thanks', 'ts')">
  61.         <div class="tip_box_head">TipBITS Submission</div>
  62.         <div class="tip_box_form">        
  63.                 
  64.             <div class="tbf_row" id="ts_message_box" style="display:none">
  65.                 <div class="tbf_wide"><div class="tbf_alert" id="ts_top_message"></div></div>
  66.             </div>
  67.             <div class="spacer"></div>
  68.  
  69.             <form action="foobar.cgi" method="get" name="submit_tip">
  70.  
  71.             <div class="tbf_row"><div class="tbf_wide_extra_top not_bold">Please submit only technical tips that will help other TidBITS readers better use their Macs, iPhones, and related software and hardware. All product announcements should be sent to <a href="mailto:releases@tidbits.com">releases@tidbits.com</a>.</div></div>
  72.             <div class="spacer"></div>
  73.             <div class="tbf_row">
  74.                 <div class="tbf_left">Tip title<span class="required_field">*</span></div><div class="tbf_right"><input type="text" value="" id="tip_title_id" name="tip_title" tabindex="1"></div>
  75.             </div>
  76.             <div class="spacer"></div>
  77.             <div class="tbf_row">
  78.                 <div class="tbf_left">Your tip<span class="required_field">*</span></div><div class="tbf_right"><textarea name="tip_text" rows="3" cols="40" tabindex="2"></textarea></div>
  79.             </div>
  80.             <div class="spacer"></div>
  81.             <div class="tbf_row">
  82.                 <div class="tbf_left">URL</div><div class="tbf_right"><input type="text" value="" name="tip_link_url" tabindex="3"><span class="tip_description"><br>Enter the URL to a Web page that supports your tip.</span></div>
  83.             </div>
  84.             <div class="spacer"></div>
  85.             <div class="tbf_row">
  86.                 <div class="tbf_left">Linked text</div><div class="tbf_right"><input type="text" value="" name="tip_link_label" tabindex="4"><span class="tip_description"><br>Enter the name of the page linked above.</span></div>
  87.             </div>
  88.             <div class="spacer"></div>
  89.             <div class="tbf_row">
  90.                 <div class="tbf_left">Your name<span class="required_field">*</span></div><div class="tbf_right"><input type="text" value="" name="tip_reader_name" tabindex="5"></div>
  91.             </div>
  92.             <div class="spacer"></div>
  93.             <div class="tbf_row">
  94.                 <div class="tbf_left">Your email<span class="required_field">*</span></div><div class="tbf_right"><input type="text" value="" name="tip_reader_email" tabindex="6"></div>
  95.             </div>
  96.             <div class="spacer"></div>
  97.             <div class="spacer"></div>
  98.                 <div class="tbf_wide"><span class="fine_print"><span class="required_field">* indicates required fields</span></span></div>
  99.             <div class="spacer"></div>
  100.             <div class="tbf_row">
  101.                 <div class="tbf_wide_extra_top"><span class="fine_print">To help us avoid automated posts and spam, please enter the words below.</span></div>
  102.             </div>
  103.             <div class="spacer"></div>
  104.             <div class="tbf_row">
  105.                 <div class="tbf_wide"><div id="ts_recaptcha"></div></div>
  106.             </div>
  107.             <div class="spacer"></div>
  108.             <div class="tbf_row">
  109.                 <div class="tbf_wide"><input type="submit" value="Preview Your Tip" name="preview_tip" onClick="fill_preview('tipbits_enclosure_preview', 'ts', this.form); return false;" tabindex="7"> <input type="submit" value="Send Us Your Tip!" name="submit_this_tip" onClick="handle_tip_submission('ts', '', this.form, 'tip'); return false;" tabindex="8"></div>
  110.             </div>
  111.             <div class="spacer"></div>
  112.             <div class="tbf_row">
  113.                 <div class="tbf_wide"><span class="fine_print">When you submit a tip, you give us permission to use it. Read <a href="javascript:void(0)" onClick="generic_show_hide('tip_terms')">our terms</a> for more details. All submissions are reviewed before publication.</span></div>
  114.             </div>
  115.             
  116.             <div class="tbf_row" id="tip_terms" style="display: none">
  117.                 <div class="tbf_wide"><span class="fine_print">Our terms: By submitting a tip, you agree to assign TidBITS Publishing Inc., a non-exclusive, worldwide, perpetual license to reproduce, publish, and distribute your tip in connection with the TidBITS Web site and associated products in any media. You agree that you created the content you submitted, and that you have the right to assign us this license. You give us permission to use your name, but your email address won't be publicly displayed or shared. We review all submissions before publication, and reserve the right to select which submissions we feel are appropriate for our readers and to edit those we publish.</span></div>
  118.             </div>
  119.             <div class="spacer"></div>
  120.             </form>
  121.         </div><!-- end tip_box_form -->
  122.     </div><!-- end tip box innards -->
  123.     </div><!-- end tip box format -->
  124.     
  125.     <div class="x_close" id="ts_upper_right"><a href="javascript:void(0)" onmousedown="HidePopupContent('ts', 'ts', ''); return true;">Close</a></div>
  126.     
  127. </div><!-- end tip_submit box-->
  128.  
  129. <div class="popup_box_with_captcha" id="article_reference" style="display:none"><div class="article_ref_format"><textarea style="width:350px; height:100px;" name="article_ref" id="article_ref_box"></textarea></div>    <div class="x_close" id="article_reference_upper_right"><a href="javascript:void(0)" onmousedown="HidePopupContent('article_reference', 'article_reference', ''); return true;">Close</a></div>
  130. </div>
  131.  
  132. <div class="popup_box_with_captcha" id="comm" style="display:none">
  133.     <div class="tip_box_format">
  134.     <div id="comment_thanks" style="display:none" onClick="close_popup_thanks('comment_thanks', 'comm')"><br>Thanks for submitting a comment! Please check your email for a link that, when clicked, will verify that you're a real person and cause your comment to appear immediately. <div class="x_close" id="comment_upper_right"><a href="javascript:void(0)" onmousedown="close_popup_thanks('comment_thanks', 'comm'); return true;">Close</a></div></div>
  135.     <div id="comm_innards" onClick="close_popup_thanks('comment_thanks', 'comm')">
  136.         <div class="tip_box_head" id="comm_headline">Post a Comment</div>
  137.         <div class="tip_box_form">        
  138.                 
  139.             <div class="tbf_row" id="comm_message_box" style="display:none">
  140.                 <div class="tbf_wide"><div class="tbf_alert" id="comm_top_message"></div></div>
  141.             </div>
  142.             <div class="spacer"></div>
  143.  
  144.             <form action="foobar.cgi" method="get" name="post_comment" id="post_comment">
  145.             <input type="hidden" name="comment_nest" value=''>
  146.             <input type="hidden" name="comment_id" value=''>
  147.             <input type="hidden" name="article_id" value='4501'>
  148.             <input type="hidden" name="edit" value=''>
  149.             <div class="tbf_row">
  150.                 <div class="tbf_left">In reply to</div>
  151.                 <div class="tbf_right">
  152.                     <div id="cb_quoted_row">
  153.                         <div class='cb_open_quote'>“</div>
  154.                         <div id="cb_quoted"></div>
  155.                         <div class='cb_close_quote'>”</div>
  156.                     </div>
  157.                     <div class="spacer"></div>
  158.                 </div>
  159.             </div>
  160.             <div class="spacer"></div>
  161.  
  162.             <div class="tbf_row">
  163.                 <div class="tbf_left" style="padding-top:0">Your comment</div>
  164.                 <div class="tbf_right"><textarea tabindex="1" name="cb_item_add" id="cb_item_add" rows="4" cols="50" onKeyDown="count_insert('cb_item_add','cb_char_count')"></textarea><br><div class="cb_char_count" id="cb_add_count">Remaining characters: <span id="cb_char_count">0</span></div></div>
  165.             </div>
  166.             <div class="spacer"></div>            
  167.  
  168.             <div class="tbf_row">
  169.                 <div class="tbf_left">Your name</div><div class="tbf_right" style="margin-top:8px"><input tabindex="2" type="text" value="" name="cb_add_name" id="cb_add_name" style="margin-top: -4px"></div>
  170.             </div>
  171.             <div class="spacer"></div>
  172.             
  173.             <div class="tbf_row">
  174.                 <div class="tbf_left">Your email</div><div class="tbf_right"><input tabindex="3" type="text" name="cb_add_email" id="cb_add_email"></div>
  175.             </div>
  176.             <div class="spacer"></div>
  177.             
  178.             <div class="tbf_row">
  179.                 <div class="tbf_left"> </div><div class="tbf_right"><input id="comm_post_comment" tabindex="4" type="submit" value="Post Comment" name="submit_this_comment" style="width:100px; float:right" onClick="cb_post_submit(); return false;"></div>
  180.             </div>
  181.             <div class="spacer"></div>
  182.             
  183.             <div class="tbf_row" id="comment_terms">
  184.                 <div class="tbf_wide"><span class="fine_print">Our terms: We reserve the right to edit or delete any comment, so please post thoughtfully. We use your email address <i>only</i> to send you a one-time verification message confirming that you posted this comment. We also store your address to allow you to verify using other Web browsers in the future. For more info, see our <a href="http://db.tidbits.com/privacy.html">privacy policy</a>.</span></div>
  185.             </div>
  186.             <div class="spacer"></div>
  187.  
  188.             </form>
  189.         </div><!-- end comm_form -->
  190.     </div><!-- end comm box innards -->
  191.     </div><!-- end comm box format -->
  192.     
  193.     <div class="x_close" id="comm_upper_right"><a href="javascript:void(0)" onmousedown="HidePopupContent('comm', 'comm', ''); return true;">Close</a></div>
  194.     
  195. </div><!-- end comm_submit box-->
  196.  
  197.  
  198. <!-- start mainbody -->
  199. <div id="mainbody">
  200.  
  201. <!-- start header -->
  202. <div id="header">
  203.  
  204.  
  205.  
  206.     <div id="tblogo">
  207.     <a href="/"><img src="/images/tblogo20_01.gif" alt="TidBITS: Apple News for the Rest of Us" width="177" height="84" border="0"></a>
  208.  
  209.     </div><!-- end tblogo -->
  210.  
  211.  
  212. <!-- leaderboard ad -->
  213. <div id="top_banner">
  214. <script type='text/javascript'><!--// <![CDATA[
  215.     OA_show(3);
  216. // ]]> --></script><noscript><a target='_blank' href='http://db.tidbits.com/ads/delivery/ck.php?n=TBe5f7021'><img border='0' alt='' src='http://db.tidbits.com/ads/delivery/avw.php?zoneid=3&n=TBe5f7021'></a></noscript>
  217. </div><!-- end top_banner style -->
  218. <!-- end leaderboard ad -->
  219.  
  220.  
  221. </div><!-- end header  -->
  222.  
  223.  
  224. <!-- start content_container -->
  225. <div id="content_container">
  226.  
  227.  
  228. <!-- begin leftcolumn -->
  229. <div id="leftcolumn">
  230.  
  231. <!-- begin leftnav /left navigation -->
  232. <div>
  233.     <ul class="leftnav">
  234.         <!-- start search -->
  235.         <li class="topcorner">
  236.             <form action="http://db.tidbits.com" method="POST" name="search_form"><input type="hidden" name="advanced_search" value=''><input type="text" name="search_text" size="8" maxlength="70" value="Search" onFocus="this.value=''" onBlur="if (this.value == '') { this.value = 'Search'; }"> <span style="margin: 0 5px 0 5px; vertical-align: -2px"><span style="vertical-align: -2px"><input type="image" name="submit_search" src="/images/go_search_button.gif"></span>  <img src="/images/adv_search_button.gif" title="Click for Advanced Search" onClick="var f = document.search_form; f.search_text.value =''; f.advanced_search.value = '1'; f.submit();"></span></form>
  237.         </li>
  238.     </ul>
  239. </div>
  240. <!-- end search -->
  241.  
  242. <!-- Get TidBITS box (temp) -->
  243. <div>
  244.     <ul class="leftnav">
  245.         <li class="gettb"><strong>Get TidBITS via...</strong></li>
  246.     
  247.         <li><a href="http://www.tidbits.com/list" title="Subscribe via email" class="gettb">Email <img src="/images/gettb_button_email.gif" width="12" height="12" border="0" class="nav_img" alt="Email subscription options"></a></li>
  248.         <li><a href="/feeds/tidbits.rss" title="Subscribe via RSS" class="gettb">RSS <img src="/images/feed-icon-12x12.gif" width="12" height="12" border="0" class="nav_img" alt="Subscribe via RSS"></a></li>
  249.         <li><a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=276986548" title="Subscribe to the podcast" class="gettb">Podcast <img src="/images/feed-icon-12x12_podcast.gif" width="12" height="12" border="0" class="nav_img" alt="Subscribe to the postcast"></a></li>
  250.         <li><a href="http://www.twitter.com/TidBITS" title="Get Article Updates via Twitter" class="gettb">Twitter <img src="/images/feed_icon_12x12_twitter.png" width="12" height="12" border="0" class="nav_img" alt="Get Article Updates via Twitter"></a></li>
  251.         <li><a href="http://www.facebook.com/pages/TidBITS/195314925519" title="Go to the TidBITS Page at Facebook" class="gettb">Facebook <img src="/images/feed_icon_12x12_facebook.gif" width="12" height="12" border="0" class="nav_img" alt="Go to the TidBITS Page at Facebook"></a></li>
  252.     </ul>
  253. </div>
  254. <!-- end Get TidBITS box -->
  255.     
  256.     <ul class="leftnav">
  257.         <li><a href="/" class="tabhead">TidBITS Home</a></li>
  258.  
  259.         <li><a href="javascript:void(0)" title="Sections" class="tabhead" onClick="return showhide('articleslist')">Sections <span id="articleslist_triangle"><img src="/images/nav_triangle_open.gif" width="9" height="9" border="0" class="navtriangle" id="articleslist_tri_image" alt="Click to show or hide the contents of this section."></span></a></li>
  260.     
  261.     
  262.     </ul>
  263.  
  264. <div id="articleslist" style="display: none"><ul class="leftnav"><li><a href="/section/business" >Business Apps</a></li>
  265. <li><a href="/section/entertainment" >Entertainment</a></li>
  266. <li><a href="/section/links" >External Links</a></li>
  267. <li><a href="/section/home" >Home Macs</a></li>
  268. <li><a href="/section/inside" >Inside TidBITS</a></li>
  269. <li><a href="/section/iphone-ipad-ipod" >iPhone iPad iPod</a></li>
  270. <li><a href="/section/fun" >Just for Fun</a></li>
  271. <li><a href="/section/macs" >Macs & Mac OS X</a></li>
  272. <li><a href="/section/creative" >Media Creation</a></li>
  273. <li><a href="/section/net" >Networking</a></li>
  274. <li><a href="/section/opinion" >Opinion</a></li>
  275. <li><a href="/section/support" >Problem Solving</a></li>
  276. <li><a href="/section/security" >Safe Computing</a></li>
  277. <li><a href="/section/tech" >Tech News</a></li>
  278. <li><a href="/section/watchlist" >Watchlist</a></li>
  279. </ul></div>
  280.  
  281. <div>
  282. <ul class="leftnav">
  283.     <li><a href="javascript:void(0)" onClick="return showhide('stafflist')" title="Staff" class="tabhead">Staff <span id="stafflist_triangle"><img src="/images/nav_triangle_closed.gif" width="9" height="9" border="0" class="navtriangle" id="stafflist_tri_image" alt="Click to show or hide the contents of this section."></span></a></li>
  284. </ul>
  285. </div>
  286.  
  287. <div id="stafflist" style="display:block"><ul class="leftnav"><li><a href="/author/Adam+C+Engst" title="Adam Engst, Publisher">Adam Engst</a></li>
  288.     <li><a href="/author/Tonya+Engst" title="Tonya Engst, Editor in Chief">Tonya Engst</a></li>
  289.     <li><a href="/author/Jeff+Carlson" title="Jeff Carlson, Managing Editor">Jeff Carlson</a></li>
  290.     <li><a href="/author/Joe+Kissell" title="Joe Kissell, Senior Editor">Joe Kissell</a></li>
  291.     <li><a href="/author/Glenn+Fleishman" title="Glenn Fleishman, Contributing Editor">Glenn Fleishman</a></li>
  292.     <li><a href="/author/Mark+Anbinder" title="Mark Anbinder, Contributing Editor">Mark H. Anbinder</a></li>
  293.     <li><a href="/author/Matt+Neuburg" title="Matt Neuburg, Contributing Editor">Matt Neuburg</a></li>
  294.     <li><a href="/author/Rich+Mogull" title="Rich Mogull, Contributing Editor">Rich Mogull</a></li>
  295.     <li><a href="/author/Lex+Friedman" title="Lex Friedman, Staff Writer">Lex Friedman</a></li>
  296.     </ul>
  297.     </div>
  298.  
  299. <div>
  300. <ul class="leftnav">
  301.  
  302.     <li><a href="javascript:void(0)" title="Issues" class="tabhead" onClick="return showhide('issuelist')">Weekly Issues <span id="issuelist_triangle"><img src="/images/nav_triangle_closed.gif" width="9" height="9" border="0" class="navtriangle" id="issuelist_tri_image" alt="Click to show or hide the contents of this section."></span></a></li>
  303. </ul>
  304. </div>
  305.  
  306. <div id="issuelist" style="display:none"><ul class="leftnav"><li><div class="special"><form method="post" action="noaction.cgi" onsubmit="return false" id="issue_search_form" name="issue_search_form">Issue # <input type="text" onkeydown="if (event.keyCode == 13) { redirect_issue(this.form); }" id="issue_searchvalue" name="issue_number" style="width:35px; height: 10px"> <input onclick="redirect_issue(this.form)" type="image" name="submit_search" src="/images/go_search_button_blk.gif"></form></div></li><li><A HREF="/issue/526" >#526, 10 Apr 00</A></li>
  307. <li><A HREF="/issue/525" >#525, 03 Apr 00</A></li>
  308. <li><A HREF="/issue/524" >#524, 01 Apr 00</A></li>
  309. <li><A HREF="/issue/523" >#523, 27 Mar 00</A></li>
  310. <li><A HREF="/issue/522" >#522, 20 Mar 00</A></li>
  311. <li><A HREF="/issue/521" >#521, 13 Mar 00</A></li>
  312. <li><A HREF="/issue/520" >#520, 06 Mar 00</A></li>
  313. <li><A HREF="/issue/519" >#519, 28 Feb 00</A></li>
  314. <li><A HREF="/issue/518" >#518, 21 Feb 00</A></li>
  315.  
  316.  
  317. <li><a href="/backissues">Back Issues</a></li></ul></div>
  318.  
  319.  
  320. <div>
  321. <ul class="leftnav">
  322.  
  323.     <li><a href="/tidbitstalk" title="TidBITS Talk" class="tabhead">TidBITS Talk</a></li>
  324. </ul>
  325. </div>
  326.  
  327.  
  328.  
  329. <div>    
  330. <ul class="leftnav">
  331.     <li><a href="javascript:void(0)" onClick="return showhide('abouttidbits')" title="About TidBITS" class="tabhead">About TidBITS <span id="abouttidbits_triangle"><img src="/images/nav_triangle_closed.gif" width="9" height="9" border="0" class="navtriangle" id="abouttidbits_tri_image" alt="Click to show or hide the contents of this section."></span></a></li>
  332. </ul>
  333. </div>
  334.  
  335. <div id="abouttidbits" style="display:none">
  336. <ul class="leftnav"><li><a href="/about.html" title="About TidBITS">About Us</a></li><li><a href="/account.html" title="Account Help">Account Help</a></li><li><a href="/advertising.html" title="Advertise with TidBITS!">Advertise</a></li><li><a href="/contact.html" title="Contact Info">Contact</a></li><li><a href="/copyright.html" title="Copyright Terms">Copyright</a></li>
  337. </ul>
  338. </div>
  339.  
  340. <div>
  341. <ul class="leftnav">
  342. <li class="bottom"> </li>
  343. </ul>
  344. </div>
  345. <!-- end leftnav/left navigation -->
  346.  
  347. <!-- making sure nav elements hide/show before page loads --><script type="text/javascript"><!--
  348.     showhide('articleslist','show'); 
  349. // --></script>
  350.  
  351. <!-- begin sponsor_sidebox -->
  352.  
  353. <div class="sponsor_sidebox">
  354.  
  355. <ul>
  356.  
  357. <li><a href="http://www.webcrossing.com/">Web Crossing</a></li>
  358.  
  359. <li><a href="http://nuance.com/dragon/mac">Nuance</a></li>
  360.  
  361. <li><a href="http://www.smilesoftware.com/">Smile</a></li>
  362.  
  363. <li><a href="http://www.thedatarescuecenter.com/">The Data Rescue Center</a></li>
  364.  
  365. <li><a href="http://www.smithmicro.com/tidbits">Smith Micro</a></li>
  366.  
  367. <li><a href="http://crashplan.com/ref/tidbits.html">CrashPlan</a></li>
  368.  
  369. <li><a href="http://www.tidbits.com/about/support/contributors.html">Readers Like You!</a></li>
  370.  
  371. <li><a href="http://macte.ch/conf_tidbits">MacTech Conference</a></li>
  372.  
  373. <li><a href="http://www.usefulfruit.com/tb">Useful Fruit</a></li>
  374.  
  375. <li><a href="http://markspace.com/bits?source=tidbits">Mark/Space</a></li>
  376.  
  377. <li><a href="http://www.econtechnologies.com/tb">Econ Technologies</a></li>
  378.  
  379. </ul><div class='sponsor_sidebox_bottom'> </div>
  380. </div>
  381.  
  382.  
  383. <!-- end sponsor_sidebox -->
  384.  
  385.  
  386. </div> <!-- end leftcolumn div -->
  387.  
  388. <!-- end left column -->
  389.  
  390.  
  391. <!-- begin centercolumn_border -->
  392.  
  393. <div id="centercolumn_border">
  394.  
  395. <div class="center_top">Thoughtful, detailed coverage of the Mac, iPhone, and iPad, plus the best-selling <a href="http://www.takecontrolbooks.com/?pt=TB-TAGLINE" style="color:yellow">Take Control</a> ebooks.</div>
  396.  
  397. <!-- begin centercolumn -->
  398. <div id="centercolumn">
  399.  
  400.  
  401.  
  402. <!-- begin rightcolumn_container -->
  403. <div id="rightcolumn_container">
  404.  
  405. <!-- begin rightcolumn -->
  406.     <!-- rightcolumn is embedded within centercolumn so featured text wraps around it -->
  407.     <div id="rightcolumn">
  408.  
  409. <p class="top"> </p>
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420. <!-- Watchlist items -->
  421. <div class="tearoffbox_wide_container">
  422. <div class="tearoffbox_wide_watchlist">
  423. <p class="tearoffbox_wide_top_watchlist"> </p>
  424.  
  425. <h6><a href="/section/watchlist">TidBITS Watchlist</a></h6>
  426. <ul>
  427.  
  428. <LI><a href="/article/11625">Adobe Flash Player 10.1.85.3</a></LI>
  429.  
  430. <LI><a href="/article/11622">DEVONthink and DEVONnote 2.0.4</a></LI>
  431.  
  432. <LI><a href="/article/11620">Security Update 2010-006</a></LI>
  433.  
  434. <LI><a href="/article/11619">TinkerTool 4.2</a></LI>
  435.  
  436. <LI><a href="/article/11618">Mailplane 2.2</a></LI>
  437.  
  438. <LI><a href="/article/11617">Pro Applications Update 2010-02</a></LI>
  439.  
  440. <LI><a href="/article/11611">Dialectic 1.7</a></LI>
  441.  
  442. <LI><a href="/article/11604">Transmit 4.1.1</a></LI>
  443.  
  444. <LI><a href="/article/11603">MarsEdit 3.1.1</a></LI>
  445.  
  446. <LI><a href="/article/11600">Savescreenie 2.0</a></LI>
  447.  
  448. </ul>
  449.  
  450. <div class="tearoffbox_wide_bottom_watchlist"> </div>
  451.  
  452. </div><!-- end tearoffbox_wide -->
  453.  
  454. </div><!-- end tearoffbox_wide_container for watchlist items -->
  455.  
  456. <!-- begin tearoff box wide -->
  457.  
  458. <div class="tearoffbox_wide_container">
  459. <div class="tearoffbox_wide_tips">
  460.  
  461. <div class="tip_display">
  462. <div class="tips_sponsor_logo">
  463.  
  464. </div>
  465. <h6>Untrash the Trash</h6>
  466. <p><p>Feeling trasher's remorse? On Snow Leopard, you can open the Trash (click the Trash icon in the Dock) and "untrash" individual items there. Select one or more trashed items (files and folders) and choose File > Put Back. This returns the items to where they were when you originally put them in the trash. The keyboard shortcut is Command-Delete - the same as the shortcut for trashing an item in the first place, since in deleting something from the trash you are untrashing it.</p></p>
  467.  
  468. </div>
  469.  
  470. <div class="tearoffbox_wide_bottom_tips">
  471. <div style="padding-bottom:35px"><div class="tip_display" style="float:left"><p><br><a href="/tipbits/210">Link to this tip</a></p></div><div class="tip_display" style="float:right; width:150px">
  472. <p class="credit">Submitted by<br>Matt Neuburg</p>
  473. </div></div>
  474.  
  475. </div>
  476.  
  477. <div class="tearoffbox_wide_tips_submit">
  478. <form method="post" onsubmit="return false" id="tipbits_form" name="tipbits_form" action="noaction.cgi"><p><a href="javascript:void(0)" onmousedown="ShowTipBox('ts','ts_recaptcha', 50, 'tip_title_id'); return true;">Share your own tip!</a> | <a href="javascript:void(0)" onClick="generic_show_hide('search_tipbits'); document.tipbits_form.tipbits_searchvalue.focus()">Search TipBITS</a></p>
  479. <p style="display:none" id="search_tipbits"><input type="text" onkeydown="if (event.keyCode == 13) { search_tipbits('tipbits_searchvalue'); }" id="tipbits_searchvalue" name="tipbits_searchvalue"> <a href="javascript:void(0)" onClick="search_tipbits('tipbits_searchvalue')">Search</a></p></form>
  480. </div>
  481. <div class="tearoffbox_wide_bottom_tips_submit">
  482.  
  483. </div>
  484.  
  485. </div><!-- end tearoffbox_wide_tips -->
  486. </div><!-- end tearoffbox_wide_container for tips-->
  487. <!-- end tearoff box wide -->
  488.  
  489.  
  490.  
  491. <!-- begin 300 x 250 ad -->
  492.  
  493. <div id="content_ad_square">
  494. <script type='text/javascript'><!--// <![CDATA[
  495.     OA_show(5);
  496. // ]]> --></script><noscript><a target='_blank' href='http://db.tidbits.com/ads/delivery/ck.php?n=TB7671f69'><img border='0' alt='' src='http://db.tidbits.com/ads/delivery/avw.php?zoneid=5&n=TB7671f69'></a></noscript>
  497. </div><!-- end 300 x 250 ad -->
  498.  
  499. <!-- TBTalk items -->
  500. <div class="tearoffbox_wide_container">
  501.  
  502. <div class="tearoffbox_wide_p">
  503. <p class="tearoffbox_wide_top_p"> </p>
  504.  
  505. <h5>Recent TidBITS Talk Discussions</h5>
  506. <ul>
  507.  
  508. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf95241">Alternatives to MobileMe for syncing calendars between iPad/Mac</a> (1 message)</LI>
  509.  
  510. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf94dbb">Free anti-virus for the Mac</a> (20 messages)</LI>
  511.  
  512. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf934e6">iTunes 10 syncing iPod Touch 4.1</a> (2 messages)</LI>
  513.  
  514. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf92a22">Thoughts about Ping</a> (16 messages)</LI>
  515.  
  516. </ul>
  517.  
  518. <div class="tearoffbox_wide_bottom_p"> </div>
  519.  
  520. </div><!-- end tearoffbox_wide -->
  521.  
  522. </div><!-- end tearoffbox_wide_container for TBtalk items -->
  523.  
  524. <!-- start takecontrol_ad -->
  525. <script type='text/javascript'><!--// <![CDATA[
  526.     OA_show(7);
  527. // ]]> --></script><noscript><a target='_blank' href='http://db.tidbits.com/ads/delivery/ck.php?n=TBe46d56f'><img border='0' alt='' src='http://db.tidbits.com/ads/delivery/avw.php?zoneid=7&n=TBe46d56f'></a></noscript><!-- end takecontrol_ad -->
  528.  
  529. <!-- begin tearoff box 2 -->
  530.  
  531. <div class="tearoffbox_wide_container">
  532.  
  533. <div class="tearoffbox_wide_p">
  534. <p class="tearoffbox_wide_top_p"> </p>
  535.  
  536. <h5>Related Articles</h5>
  537. <ul>
  538. <li><a href="/article/6133">Introducing XNS and XNSORG</a> (25 Sep 00)</li>
  539. <li><a href="/article/5284">Why Windows Web Pages Have Tiny Text</a> (15 Feb 99)</li>
  540.  
  541. </ul>
  542.  
  543. <p class="tearoffbox_wide_bottom_p"> </p>
  544.  
  545. </div><!-- end tearoffbox_wide -->
  546. </div><!-- end tearoffbox_wide_container -->
  547.  
  548. <!-- end tearoff box 2 -->
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556. <!-- begin tearoff box 1 -->
  557.  
  558. <div class="tearoffbox_wide_container">
  559.  
  560. <div class="tearoffbox_wide">
  561. <p class="tearoffbox_wide_top"> </p>
  562.  
  563. <h5>Published in <a href="/issue/522">TidBITS 522</a>.<br><a href="http://www.tidbits.com/list">Subscribe</a> to our weekly email edition.</h5>
  564. <ul>
  565. <li><A HREF="/article/5851">Sleep Memory Extension Blocks Laptop Bug</A></li>
  566. <li><A HREF="/article/5852">Look Elsewhere for PowerBook (FireWire) Security</A></li>
  567. <li><A HREF="/article/5853">ACI Buys StarNine Technologies</A></li>
  568. <li><A HREF="/article/5854">Connectix Ships Virtual PC with Linux</A></li>
  569. <li><A HREF="/article/5855">ACTION Files 1.5.2 Update Released</A></li>
  570. <li><A HREF="/article/5856">Poll Results: Palm Before the Storm</A></li>
  571. <li><A HREF="/article/5857">Poll Preview: Clear as Mud</A></li>
  572. <li><A HREF="/article/5858">Which Handheld Belongs in Your Palm?</A></li>
  573.  
  574. </ul>
  575.  
  576. <p class="tearoffbox_wide_bottom"> </p>
  577.  
  578. </div><!-- end tearoffbox_wide -->
  579. </div><!-- end tearoffbox_wide_container -->
  580.  
  581. <!-- end tearoff box 1 -->
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589. <div id="rightcolumn_bottom">
  590.  
  591. </div>
  592.  
  593.     </div><!-- end rightcolumn -->
  594.  
  595.  
  596. </div><!-- end rightcolumn_container -->
  597.  
  598.  
  599.  
  600. <!-- featured articles -->
  601.  
  602. <div id="center_ajax_sub" class="instapaper_body">
  603.  
  604. <!-- google_ad_section_start -->
  605.  
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625. <!-- issue, article, or series -->
  626.  
  627.     
  628.     
  629.     
  630.     
  631.     
  632.         
  633.     <!-- show article(s) -->
  634.     <div class="article"><a name="4501"></a>
  635.     
  636. <!-- comment initialization routine as needed -->
  637. <div class="popup_box_with_captcha" id="hc_4501" style="display: none">
  638.     <div class="tip_box_format">
  639.     <div id="hc_innards_alt_4501" style="display: none">
  640.             <div class="tbf_row">
  641.                 <div class="tbf_wide_80" id="hc_small_response_4501"></div><div class="x_close_row" id="hc_upper_right1_4501"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_4501', 'hc', '4501'); return true;">Close</a></div>
  642.  
  643.             </div>
  644.     </div>
  645.     <div id="hc_innards_4501">
  646.         <div class="tip_box_form">        
  647.             <form action="foobar.cgi" method="get" name="check_human_4501">
  648.             <div class="tbf_row">
  649.                 <div class="tbf_wide_80" id="hc_rc_4501">To help us avoid automated posts and misuse of our site, please enter the words below.</div><div class="x_close_row" id="hc_upper_right2_4501"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_4501', 'hc', '4501'); return true;">Close</a></div>
  650.  
  651.             </div>
  652.             <div class="spacer"></div>
  653.             <div class="tbf_row" id="hc_message_box_4501" style="display:none">
  654.                 <div class="tbf_wide"><div class="tbf_alert" id="hc_top_message_4501"></div></div>
  655.             </div>
  656.             <div class="spacer"></div>
  657.             <div class="tbf_row">
  658.                 <div class="tbf_wide"><div id="hc_recaptcha_4501"></div></div>
  659.             </div>
  660.             <div class="spacer"></div>
  661.             <div class="tbf_row">
  662.                 <div class="tbf_wide"><input type="submit" value="Submit" name="submit_this_tip" onClick="handle_tip_submission('hc', '4501', this.form, this.form.submit_type.value); return false;"><input name="calling_routine" type="hidden"><input type="hidden" name="getbits" value="5859"><input type="hidden" name="author_id"><input type="hidden" name="submit_type" value=""></div>
  663.             </div>
  664.             <div class="spacer"></div>
  665.             </form>
  666.         </div><!-- end tip_box_form -->
  667.     </div><!-- end hum box innards -->
  668.     </div><!-- end tip box format -->
  669. </div><!-- end tip_submit box-->
  670.  
  671.  
  672.  
  673.         
  674.         
  675.         <!-- specific article details here -->
  676.         
  677.         
  678.             
  679.         
  680.     
  681.         <article_link><script type="text/javascript">open_if_linked('')</script></article_link>
  682.         
  683.         <div class="featured_meta"><div class="meta_article">20 Mar 2000 | <a href="/article/5859?print_version=1">Print <span class="shift_up"><img src="/images/printer_icon.gif" alt="Printer-Friendly Version of This Article" border="0" width="9" height="10"></span></a></div></div>
  684.  
  685.         <H2>Building Characters: A Brief History of the Web War</H2>
  686.  
  687.         <p class="byline">by <a href="/author/Geoff%20Duncan">Geoff Duncan</a> <a href="javascript:void(0)" onClick="document.check_human_4501.submit_type.value='email'; document.check_human_4501.author_id.value='15'; ShowTipBox('hc_4501', 'hc_recaptcha_4501')"><span class="shift_down"><img src="/images/gettb_button_email.gif" height="12" width="12" border="0" alt="Send Email to Author"></span></a></P>
  688.  
  689.         <!-- article text -->
  690.         
  691.         <div id="article_box_4501"><P>A little over a year ago in <A HREF="http://www.tidbits.com/tb-issues/TidBITS-467.html">TidBITS-467</A>, I wrote about some historical and technical reasons why text on Web pages can be illegibly small when viewed on a Macintosh - especially pages designed by and for Windows users.</P><P><<A HREF="http://db.tidbits.com/article/05284">http://db.tidbits.com/article/05284</A>></P><P>The principles and problems outlined in that article are as true today as they were then, but new Internet standards and a new generation of Web browsers are beginning to offer possible solutions to both Web users and Web authors. This article examines some of the history of text presentation on the Web; future installments will examine new Web standards and new browser capabilities, plus offer concrete advice on preparing platform-friendly Web content.</P><P><STRONG>Text Rules</STRONG>-- Let's face it: much of the information we use on our computers is in the form of text. We write and edit documents, send and receive email, and browse and create Web pages. Compared to images, movies, and audio, text is a simple data type that crosses between platforms and operating systems with relative ease. So why does text so often display badly, especially on the Web? Why are we constantly fussing with window sizes, font sizes, and browser preferences when all we want to do is read text?</P><P>In a nutshell, text differs between operating systems mainly because each operating system makes a different assumption about how pixels on a display translate to physical measurements. The Mac OS assumes a resolution of 72 dots per inch (dpi) regardless of the physical resolution of a display device, and there's no way to change this setting. In contrast, Windows assumes a resolution of 96 dpi (or 120 dpi using Large Fonts), and this setting can be changed arbitrarily under recent versions of Windows. Unix systems typically use resolutions from 75 to 100 dpi and can usually be configured by the user.</P><P>The difference in assumed resolutions determines how many pixels the computer uses to render text. Assuming a point is 1/72nd of an inch, the Mac OS will use 12 pixels to render 12 point type, while a Windows system will typically use 16 pixels. If you display these characters side by side on the same display, the Windows characters will look 33 percent larger than the Macintosh characters.</P><P><<A HREF="http://www.tidbits.com/resources/522/mac-win-text.html">http://www.tidbits.com/resources/522/mac-win- text.html</A>></P><P>Using a larger number of pixels to render text has many implications, but here are two key concepts to keep at the back of your mind:</P><UL><LI><P>Text is rendered with more accuracy, so important features in a typeface (serifs, special symbols, relationships and spacing between letters, etc.) are more likely to be preserved or presented accurately.</P><LI><P>Fewer characters fit into an arbitrary region of your screen, like a Web browser window. Fewer characters convey less information to a user, so that region can be described as having a lower "information density" than it would if its text were rendered using fewer pixels.</P></UL><P><STRONG>Casualties of War</STRONG> -- Believe it or not, these platform-related differences in text rendering didn't go unnoticed in the Web development community - in fact, they substantially predate the World Wide Web. If the issue is so old, why hasn't it been solved by now?</P><P>The answer is complicated. Remember one truth that has been frustrating many Web authors for years: HTML wasn't meant to describe the physical or typographical presentation of a document; rather, HTML describes the <EM>structure</EM> of a document - which items are headings, which items are links, which items are lists, and so on - in a platform-independent manner. Decisions about a document's presentation were left up to individual Web browsers (or, more properly, "user agents"). They were supposed to look at the structure of the document and present it on their particular platform in a way that made sense.</P><P>This is where the forces of the computing industry reared their ugly heads. For years, operating systems tried to present users with a WYSIWYG world - What You See Is What You Get. Along with graphical user interfaces, WYSIWYG was one of the attractions that brought people to personal computing. HTML's abstract approach frustrated computer users of all stripes - personal, professional, corporate, and others - who expected WYSIWYG. Those expectations morphed into strident demands as the Web became a vehicle for publishing, then commerce.</P><P>When software developers hear strident demands from customers, those demands are translated directly to the phrase "market opportunity." Browser developers rapidly rolled out non-standard HTML tags which almost invariably described the presentation of a document rather than its structure. Netscape quickly muddied the water with CENTER tags, alignment attributes, colors, and ways to specify text wrapping. Web "designers" began publishing books on wringing WYSIWYG-like behaviors out of the browsers of the day (at best advocating extensive use of tables; at worst promoting "spacer GIFs" and violating virtually every principle of an adaptive, cross-platform technology). Although late to the game, Microsoft jumped in with contributions like MARQUEE, background sounds, and ways to slice and dice border colors. Simultaneously, a flurry of graphical HTML editors appeared, often producing markup that looked like the peckings of a thousand typewriter-equipped simians. And, of course, eventually Netscape went hog-wild, unleashing font tags, MULTICOL, the SPACER tag, and a "layers" technology that allowed arbitrary onscreen placement of objects.</P><P>In short, the browser wars were well underway, and much of the artillery was aimed directly at the core principles of HTML. Although folks at the World Wide Web Consortium (W3C) tried to keep a rein on things, 1996's HTML 3.2 specification ended up being a mishmash compromise between the abstract structural concepts of HTML and the presentation demands of an explosively growing industry. And nobody was happy about it.</P><P><<A HREF="http://www.w3.org/TR/REC-html32.html">http://www.w3.org/TR/REC-html32.html</A>></P><P><STRONG>Return to Standards</STRONG> -- As the Internet exploded, however, a funny thing happened. Although the main devices using the Web continued to be personal computers with graphical interfaces, alternatives methods of accessing the Web began to multiply. Text-only browsers not only survived but gained popularity as power users became disgusted with long download times and pointless graphics. WebTV promised to turn any television into a limited Internet appliance, and folks connected PDAs like Apple's Newton to the Web, not to mention Palm devices and cellular telephones. Similarly, ever-present accessibility issues - for users who are visually impaired, color blind, or unable to use traditional computers - weren't being served by the combative, proprietary course of HTML development. Suddenly the <EM>structure</EM> of an HTML document was becoming important again, since details of a document's presentation were irrelevant to these devices. After all, what's a black-and-white Palm device with a 160-by-160 screen size going to do with an HTML table which insists it must be fire engine red and 600 pixels across?</P><P>At the same time, the major browser vendors were hit with a backlash because their incompatible and often ill-conceived HTML extensions created confusion and impediments for both Web users and authors. Conformance to standards became a rallying cry, and standards-oriented efforts like Lynx and Opera gained substantial credibility (as has the Mac OS newcomer iCab). It didn't take long for the heavyweights to see the light, with Netscape spinning its Web browser development off to the Mozilla open source project, and Microsoft pledging to toe the line on standards, in part due to pressure from the ongoing federal antitrust case against the company.</P><P><<A HREF="http://lynx.browser.org/">http://lynx.browser.org/</A>><BR><<A HREF="http://www.opera.com/">http://www.opera.com/</A>><BR><<A HREF="http://db.tidbits.com/article/04593">http://db.tidbits.com/article/04593</A>><BR><<A HREF="http://www.icab.de/">http://www.icab.de/</A>><BR><<A HREF="http://www.mozilla.org/">http://www.mozilla.org/</A>><BR><<A HREF="http://db.tidbits.com/series/1152">http://db.tidbits.com/series/1152</A>></P><P>Nonetheless, demands that Web authors be able to indicate a document's presentation in addition to its structure weren't going to go away. The cat was already out of the bag, with hundreds of thousands of existing Web sites and millions of existing Web users, and more of each appearing every second. What could be done?</P><P><STRONG>The Cascade Effect</STRONG> -- Cascading Style Sheets, or CSS, offer a solution to the structure-and-presentation dilemma. CSS had been percolating quietly within the W3C during the browser wars and was adopted as a recommendation in late 1996, although no mainstream tools supported it. The basic idea behind CSS is to separate formatting information - positioning, sizing, margins, leading, type faces, and more - from the structure of a document, as represented by HTML.</P><P><<A HREF="http://www.w3.org/Style/CSS/">http://www.w3.org/Style/CSS/</A>></P><P>Style sheets may be integrated into an HTML document (using the STYLE tag) or exist as separately linked external files (convenient for multiple documents which share styles). Conceptually, CSS has similarities to styles used by a word processors: each CSS style, or rule, applies certain formatting characteristics to items. For instance:</P><BLOCKQUOTE><CODE>   P { color: red; font-family: Palatino, serif; }</CODE></BLOCKQUOTE><P>Here, P is called a selector, and refers to any <P> tags in the current HTML document. The information in curly braces is called a declaration, and specifies the particular properties and values for a CSS rule. This rule says that the text within all <P> tags in the current HTML document should be presented in red, preferably using the Palatino font. If Palatino is not available, paragraphs should be displayed using the browser's default serif font. Using CSS, you can define a wide variety of display and presentation characteristics for any valid HTML tag in a document - including the document body, heading tags, table cells, links, and more - specific tags, or even unique instances of a tag.</P><P>For now, there are three important things to remember about CSS:</P><UL><LI><P>Unlike styles in a word processor, the display characteristics for any item are determined by the <EM>cascade</EM>, or the combination of multiple style sheets. At a basic level, at least three style sheets are always in play - the current document's, the user's, and the browser's default. Although a document's rules usually take precedence, they can be overridden by user or browser rules. Thus, in theory, a user can define his or her own style sheet so no text is ever displayed below 14 pixels in size, for example, no matter what size the document may specify for text sizing. This gives documents the capability to request particular formatting, while still accommodating the specific needs of users. Basically, documents <EM>suggest</EM> how they should be formatted, rather than demanding a particular presentation.</P><LI><P>Style sheets are the recommended method to control virtually all document layout and presentation in the current HTML 4 standard, although HTML 4.0 Transitional still includes most of the presentation attributes from HTML 3.2, such as specifying some objects' widths and colors. The second version of CSS, called CSS2, was adopted as a W3C recommendation in mid-1998, and expanded on the capabilities of CSS1 in significant ways.</P></UL><P><<A HREF="http://www.w3.org/TR/html401/">http://www.w3.org/TR/html401/</A>></P><UL><LI><P>Since CSS covers a wide range of formatting capabilities, it is extraordinarily complex to implement. As of this writing, <EM>no</EM> released browser fully supports CSS1 or CSS2, in part due to the fallout from the heated browser wars in the late 1990s. Some browsers support useful subsets of CSS1 and CSS2 - most notably the current versions of Microsoft Internet Explorer and Opera - although there are a myriad of significant bugs in current and older browsers. Netscape Communicator/Navigator 4.x makes no claims about supporting any aspect of CSS; instead, CSS support has been relegated to the Mozilla open source project. Some style sheets can influence the display of Web pages in current versions of Netscape, but more often than not the behaviors are incomplete or completely incorrect. This spotty support vastly complicates the use and deployment of style sheets.</P></UL><P><STRONG>To Be Continued</STRONG> -- Wait! What does all this have to do with how many pixels are used to draw text on the Macintosh screen? How does any of this technology improve your Web browsing experience, or let you create friendlier Web pages? Those and other mysteries will be revealed in our next installment.</P><!-- Building Characters: A Brief History of the Web War Geoff Duncan --></div>
  692.         
  693.  
  694.         <!-- end article text -->
  695.     
  696.         
  697.         <!-- PayBITS -->
  698.         
  699.  
  700.         
  701. <p> </p><div class="sponsorbox">
  702. <div class="sponsortext"><A HREF="http://www.smithmicro.com/tidbits"><IMG SRC="http://db.tidbits.com/images/badges/StuffItDeluxe2010.gif" ALT="" HEIGHT="50" WIDTH="50" BORDER="0" ALIGN="left"></A>StuffIt Deluxe 2011 has everything you need to backup, encrypt,<br />share, and compress all of your photos, audio and documents.<br />Compress it. Secure it. Send it. Try StuffIt Deluxe 2011 today!<br />Click here for a free 30-day trial: <<a href="http://stuffIt.com/tidbits/">http://stuffIt.com/tidbits/</a>></div>
  703. </div>
  704. <div class="sponsorbox_bottom"> </div>
  705.  
  706.  
  707.         <!-- comments section -->
  708.         
  709.         <!-- end comment show-->
  710.         
  711.         <!-- end comments section -->
  712.  
  713.  
  714.         <!-- end article loop details -->
  715.         
  716.         
  717.  
  718.         
  719.     </div><!-- end show article -->
  720.     
  721.     
  722.  
  723.  
  724. <!-- article_plus end -->
  725. <!--
  726. </DIV>
  727. --><!-- end main_column DIV -->
  728.  
  729.  
  730. <!-- google_ad_section_end -->
  731.  
  732. </div><!-- end center AJAX insert -->
  733.  
  734. <!-- TipBITS Search Results Lozenge -->
  735. <div id="tipbits_results_loz" style="display:none">
  736. <form method="post" onsubmit="return false" id="tipbits_form_loz" name="tipbits_form_loz" action="noaction.cgi">
  737. <div class="tip_footer">
  738. <p id="search_tipbits_loz"><input type="text" onkeydown="if (event.keyCode == 13) { search_tipbits('tipbits_searchvalue_loz', 'tipbits_results_loz'); }" id="tipbits_searchvalue_loz" name="tipbits_searchvalue_loz"> <a href="javascript:void(0)" onClick="search_tipbits('tipbits_searchvalue_loz', 'tipbits_results_loz')">Search</a></p>
  739. </div>
  740. <div class="tip_footer_bottom">
  741.  </div>
  742. </form>
  743. </div><!-- end TipBITS Search Results lozenge -->
  744.  
  745.  
  746.  
  747.  
  748. <!-- begin footer -->
  749. <div id="footer">
  750.  
  751. <div id="qr_tag_right"><div id="qr_tag_image"><img src="http://db.tidbits.com/tags/5859.png"></div><div id="qr_tag_text"><a href="http://db.tidbits.com/article/10616">What's this image?</a></div></div>
  752. <p>Special thanks to <a href="http://www.forest.net/">digital.forest</a>, our
  753. Web and mailing list host.</p>
  754. <p>Unless otherwise noted, this article is copyright © 2000 <a href="/author/Geoff%20Duncan">Geoff Duncan</a></p>
  755. <p>TidBITS is copyright © 2010 TidBITS Publishing Inc.</p>
  756. <p>Reuse governed by <a href="http://www.tidbits.com/terms/">Creative Commons License</a>.</p>
  757.  
  758. <p><a href="/about.html" title="About TidBITS">About TidBITS</a> | <a href="/account.html" title="Account Help">Account Help</a> | <a href="/advertising.html" title="Advertise with TidBITS!">Advertise with TidBITS!</a> | <a href="/contact.html" title="Contact Info">Contact Info</a> | <a href="/copyright.html" title="Copyright Terms">Copyright Terms</a></p>
  759.  
  760. </div><!-- end footer -->
  761.  
  762.  
  763. </div> <!-- end centercolumn -->
  764.  
  765. <div class="center_bottom"> </div>
  766.  
  767. </div> <!-- end centercolumn_border -->
  768.  
  769.  
  770. </div> <!-- end content_container -->
  771.  
  772. </div> <!-- end mainbody -->
  773.  
  774.  
  775. <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
  776. </script>
  777. <script type="text/javascript">
  778. _uacct = "UA-276924-3";
  779. urchinTracker();
  780. </script>
  781. <script type="text/javascript"
  782. src="http://tidbitscom.skimlinks.com/api/skimlinks.js"></script>
  783. <script type="text/javascript">
  784. var skimlinks_pub_id = '2559X585851';
  785. var skimlinks_domain = 'go.tidbits.com';
  786. skimlinks();
  787. </script>
  788. </body>
  789. </html>
  790.  
  791.