[HN Gopher] HTML hacks that shaped the Internet
       ___________________________________________________________________
        
       HTML hacks that shaped the Internet
        
       Author : marban
       Score  : 286 points
       Date   : 2023-12-01 10:37 UTC (12 hours ago)
        
 (HTM) web link (tedium.co)
 (TXT) w3m dump (tedium.co)
        
       | mcv wrote:
       | I'm not sure "shaped the Internet" is the right description.
       | These are 10 HTML/CSS hacks that enabled you to work around
       | browser quirks and poor support for certain features.
        
         | zbaylin wrote:
         | Some of them are definitely more "historic" than others.
         | 
         | For instance, #2 (<table>-based layouts) definitely shaped much
         | of early-to-mid-2000s web design, and can be viewed as a
         | precursor to flexbox/other modern layout engines.
         | 
         | Same with sIFR -- custom webfonts are totally taken for granted
         | today largely because of "hacks" like this.
        
           | wongarsu wrote:
           | I strongly agree with table layouts being historic. A large
           | reason we now have flexbox is because early CSS was really
           | bad at replicating table-based layouts, so people didn't stop
           | using then despite the drawbacks.
           | 
           | Same story with rounded corners, which were originally
           | accomplished with tables and images. And a lot of the
           | conventions for website navigation were established in table-
           | based layouts
        
           | chrismorgan wrote:
           | I don't know about others, but I _hated_ sIFR. It was
           | routinely deployed without sane fallback (so that if you
           | didn't have Flash, headings were broken, for example--it
           | being common to deploy it on headings only, since it was
           | overall so awful), it _butchered_ performance, the rendering
           | was ugly and often difficult to read, and it thwarted regular
           | operations like text selection.
        
         | debok wrote:
         | Yeah. I was hoping for a list of hacks that got promoted to
         | standards. That would have been a really cool read.
        
           | hutzlibu wrote:
           | "list of hacks that got promoted to standards. That would
           | have been a really cool read."
           | 
           | I guess that would be just called "history of the internet".
           | Originally designed to display text with links - and after
           | decades of hacks, a browser is now allmost an OS, capable of
           | allmost anything computer related.
        
         | kuschku wrote:
         | If you want to know a JS hack that truly "shaped the Internet",
         | that'd be ActiveXObject("Microsoft.XMLHTTP"). It's the origin
         | of AJAX, allowed GMail to dynamically update the mail list, and
         | led to the entire SPA craze.
         | 
         | If you read ancient articles like this one
         | https://support.microsoft.com/en-us/topic/dynamic-page-updat...
         | you can truly see just how much it changed the internet.
        
           | sbarre wrote:
           | Hah I was hoping someone would bring this up..
           | 
           | We were using that XMLHTTP object as far back as 1999 (I just
           | went to look at old source code) to load page fragments do
           | quasi-SPA stuff before it was a thing.
        
             | codingdave wrote:
             | Same - I recall using it heavily in 99. But that was just
             | on one internal app. I admit that I didn't really predict
             | the SPA thing until Google maps came out and really showed
             | how far it could be taken.
        
               | sbarre wrote:
               | I worked for an ISP in the late 90s and we built a call
               | center app using IE6, SSI, XMLHttp and also IE's built in
               | CSS classes that matched the Windows colours to
               | essentially have a UI that looked and felt like a Windows
               | 95 app..
               | 
               | It was completely unnecessary (at least the look and feel
               | part) but the ability to load in new information into the
               | UI without a full refresh was great.
               | 
               | At the time this was running on Apache 1.1 via Perl CGIs
               | and backed by an mSQL database (that was single-
               | threaded!) so we wanted to minimize complex SQL queries
               | as much as possible..
               | 
               | We eventually moved to a system that would batch pre-
               | render customer details and call history to static HTML
               | overnight when our call center was closed, to reduce the
               | startup time of bringing up a customer's info when the
               | agent had them on the phone. Then for that day we'd use
               | XMLHttp to dynamically append new information from the DB
               | (using a limit statement) and then re-build the static
               | files the next night etc..
               | 
               | In hindsight, we did some creative problem solving for a
               | bunch of self-taught 20-year-olds in the 90s.
        
           | Kwpolska wrote:
           | That one is truly ancient, and unique in that it actually
           | uses XML, and even SOAP, in AJAX calls. (Although the SOAP is
           | mostly a facade and a fancy way to call a function without
           | any arguments.)
        
       | detolly wrote:
       | > Why it was useful: Because Internet Explorer was trash
       | 
       | Great insight
        
         | wongarsu wrote:
         | Specifically: IE6 was trash.
         | 
         | Microsoft had won the browser war, but at the same time the
         | dotcom crash and antitrust action over the tight integration
         | between IE and Windows caused Microsoft to stop investing in
         | it.
        
           | josefx wrote:
           | Did they ever invest much into it? As far as I understand
           | they got the core components from Spyglass Inc. and avoided
           | paying licensing fees by giving it away for free.
        
             | couchand wrote:
             | Sounds like they avoided paying licensing fees by not
             | paying licensing fees and then acting surprised when called
             | on it.
             | 
             | https://archive.ph/20120919002551/http://www.windowsitpro.c
             | o...
        
               | dale_glass wrote:
               | Wasn't it that the Spyglass deal was MS paying a
               | percentage of revenue, and MS releasing IE for free, so
               | that Spyglass got to keep a percentage of $0?
        
               | Pixie_Dust wrote:
               | > Feels like when Microsoft licensed Mosaic from Spyglass
               | to become Internet Explorer, and a chunk of the
               | compensation was tied to a fraction of revenue from
               | Internet Explorer. Of course Microsoft gave IE away as
               | part of Windows so IE never had any revenue associated
               | directly with it. Eventually MS did settle a lawsuit
               | brought by Spyglass for $8 million to make the issue go
               | away
               | 
               | https://news.ycombinator.com/item?id=27999293
        
           | grujicd wrote:
           | I don't agree IE6 was trash at that time. It was much better
           | than the competition. IE was much faster and less resource
           | intensive than Netscape, which was a big deal when RAM was
           | measured in megabytes. It's not fair to compare it to
           | browsers which came out years later.
        
         | phero_cnstrcts wrote:
         | I really hated IE with a passion.
        
       | matsemann wrote:
       | Some of my favorites:
       | 
       | - Faux columns, to get a visual stretch and make it appear that
       | the sidebar was as long as the content
       | https://alistapart.com/article/fauxcolumns/
       | 
       | - Or take that even further, with a nine-patch and 9 div's or a
       | 3x3 table you could hack your own borders by repeating
       | backgrounds in some axis. With CSS3 we got border-image that
       | could help this a bit. These border styles aren't that much in
       | favor anymore, though.
       | 
       | - To make rounded borders, one could use the nine-patch. But many
       | would also use a generator to make some HTML that basically
       | simulated a rounded border, by making lots of elements. Found
       | this article describing it: http://benogle.com/2009/04/29/css-
       | round-corners.html Conventional wisdom was that the added markup
       | would be more bytes than an image would be, but less roundtrips
       | and quite easy to do.
        
         | Brajeshwar wrote:
         | That 3x3 was used so much with our team that we built a
         | component just to do that. I even wrote an article about it,
         | more of an ActionScript thing but same idea for styling --
         | https://brajeshwar.com/2005/splice9-bitmap-window-resizer-co...
         | 
         | The other nice thing was the use of the cicada principle for a
         | background styling pattern that 'do not repeat.'
        
         | aidos wrote:
         | Golly. It's a bit of a slap in the face to click through to A
         | List Apart and see the header broken on mobile.
         | 
         | It's still so clean though after all these years.
        
           | mattwad wrote:
           | you mean the title cut off? it happens on desktop too. i
           | wonder if it's intentional
        
         | Semaphor wrote:
         | > Faux columns
         | 
         | Still live on our main-website because there's never time to
         | replace it with something more modern ;)
        
         | loldot wrote:
         | Aldo worth mentioning; the sliding doors technique for rounded
         | corners; https://alistapart.com/article/slidingdoors/
        
       | keepamovin wrote:
       | I like how HN employs one of these today:
       | 
       | - Use HTML tables for layout
       | 
       | Hahaha :)
       | 
       | On a more serious note, this list highlights how development
       | without standards leads to control information being encoded in
       | various tolerable side-channels.
       | 
       | The potential mess and collision of this brings into relief the
       | disdain that's sometimes levelled at the current W3C process.
       | This process marries a standards-driven evolution of web
       | technologies with browser-driven innovation, with the two
       | alternately either leading the other, or proceeding in lock-step.
       | 
       | While it's often derided, this process could be interpreted as
       | more sustainable and stable than the one which came before.
       | 
       | I wonder how many of those who decry the new W3C-vendor norm
       | would choose to return to the heady days recalled by these 10
       | weird hacks? :)
        
         | troupo wrote:
         | Unfortunately today w3c and tc39 (Javascript) are completely
         | dominated by Google who ram through a lot of standards while
         | barely paying lip service to the process.
         | 
         | Unfortunately a lot of players who rely on browser
         | functionality are completely silent in the standards committees
         | (like the TV vendors who all run their apps in a webkit or
         | chromium version), so it's barely a three-way tug-o-war between
         | Google, Apple and Mozilla
        
           | solarkraft wrote:
           | And really barely. My impression is Chrome still innovates
           | (though somewhat unilaterally), Mozilla sleeps (no clear path
           | towards view transitions ...) and Apple sometimes contributes
           | small quality of life things.
        
           | keepamovin wrote:
           | I'm still bullish on the possibility of Microsoft edge
           | shaking up this dynamic a little, but maybe I'm naive.
        
             | troupo wrote:
             | They did start https://open-ui.org which really deserves
             | special recognition.
        
               | keepamovin wrote:
               | This is a cool idea! Thanks for the link <3 :)
        
         | Frost1x wrote:
         | >On a more serious note, this list highlights how development
         | without standards leads to control information being encoded in
         | various tolerable side-channels.
         | 
         | I don't think it's a lack of standards, it's more of a lack of
         | necessary functionality. If the thing you want to do isn't an
         | addressed feature, you'll do it one way or another creatively.
         | Standards provide rigidity that create this situation to begin
         | with unless the standard is mature enough that it captures all
         | the potential needs, especially in cases like the web where
         | your often locked to some standard that may or may not suit
         | your needs. In other spaces, you usually have enough options
         | that one thing or another is flexible enough you can do what
         | you need to do and go with that choice.
         | 
         | Having worked in research long enough you'd be surprised how
         | often something someone wants to do requires some hacky
         | technology approach because many standards exist around
         | business/consumer interaction and systems built around that,
         | because that's where the money is which drives those standards
         | and feature sets.
        
         | wiredfool wrote:
         | I love how tables "went away", and were widely replaced with
         | bootstrap. Which gives you ... tables. in divs. But only 12
         | columns wide.
        
           | renegade-otter wrote:
           | I think the value of Bootstrap was consistency across
           | browsers. The grid system was the most important part. With
           | standard Grid, Bootstrap is effectively legacy - you
           | shouldn't really be using it at this point.
        
             | CharlesW wrote:
             | > _With standard Grid, Bootstrap is effectively legacy -
             | you shouldn 't really be using it at this point._
             | 
             | Bootstrap first adopted Flexbox for its grid system
             | Bootstrap 4 (2018), and Bootstrap 5 (2021) added support
             | for Grid. It's conservative about supporting new web
             | standards, but I wouldn't personally think of it as a
             | "legacy" framework.
        
           | cantSpellSober wrote:
           | They _weren 't_ <table>s through, meaning they could be
           | easily made responsive.
        
           | nonethewiser wrote:
           | They absolutely are not tables though.
        
         | zlg_codes wrote:
         | WHATWG didn't advance the Web for anyone except for-profit
         | interests.
         | 
         | I cut my teeth on HTML 3.2 so I know what byzantine BS was
         | needed for IE and Netscape. Those were choices made by MS and
         | Netscape, however, so even with a bigger W3C presence, there
         | was no guarantee or even hint that MS and Netscape would fall
         | in line with new standards to begin with.
         | 
         | And it was better then than the garbage we have now where if
         | one big company decides they want it, the rest of the Web gets
         | to deal with it.
         | 
         | That's SO much better, man. /s
        
       | masswerk wrote:
       | Regarding the closing statement: I think, a major, now mostly
       | forgotten influence were CD-ROMs and an ambition to match those.
        
       | Brajeshwar wrote:
       | Wow. Remember those days. I went through all of these hacks
       | except No. 7 & 8 (pre-header text hack, Google Chrome Frame). I'm
       | not sure about the "Shaped the Internet" title, but these indeed
       | go as defaults when starting a CSS project. In fact, one way to
       | highlight front-end candidates was to include these hacks in
       | interview questions.
        
       | pavlov wrote:
       | No respect for spacer.gif?
       | 
       | It's still here on HN of course, included in every page request:
       | 
       | https://news.ycombinator.com/s.gif
        
       | kripy wrote:
       | I remember the good old days of the transparent 1x1 pixel gif to
       | keep table cells in check.
        
       | RamblingCTO wrote:
       | This gave me ptsd haha. Also shows how mush cost we have/had with
       | one company (MSFT) fucking up so bad. Imagine the hours incurred
       | because IE sucks?
        
         | perilunar wrote:
         | ptsd.psd ?
        
       | troupo wrote:
       | It's funny how we came around to JSSS, and it's now everywhere:
       | from CSS-in-JS to web components coding their CSS in strings
       | inside Javascript
        
         | ainar-g wrote:
         | I've looked up some JSSS code examples, and it seems like it's
         | pretty much the only type of code where the "with" keyword
         | makes sense:                 <style type="text/javascript">
         | tags.H1.color = "red";       tags.p.fontSize = "20pt";
         | with (tags.H3) {         color = "green";       }       with
         | (tags.H2) {         color = "red";         fontSize = "16pt";
         | marginTop = "4cm";       }       </style>
        
           | trealira wrote:
           | I think it also makes sense in Python, where it can be used
           | to automatically close a file, or                 with
           | open(filename) as my_file:           data = my_file.read()
           | 
           | Or with acquiring and releasing a lock:                 lock
           | = threading.Lock()       with lock:           pass # do stuff
           | 
           | That being said, I prefer the C++ approach of using
           | constructors and destructors to automatically acquire
           | resources (like locks and files) by declaring variables
           | within some block scope, and release them once the scope is
           | left.
        
             | ksherlock wrote:
             | Javascript with and python with are completely separate
             | things.
             | 
             | Javascript with comes from Pascal with (which was perhaps
             | copied from somewhere else) and is used to modify variable
             | scope.                   with (my.long.variable.reference)
             | {             a = 1;             b = 2;         }
             | 
             | is equivalent to:
             | my.long.variable.reference.a = 1;
             | my.long.variable.reference.b = 2;
             | 
             | or at least, it might be ... due to Javascript's dynamic
             | and typeless nature you might not know for sure what will
             | happen until runtime. Which is one reason it's now
             | deprecated and not allowed in strict mode. In pascal,
             | variables have a type, records have fields, and these are
             | known at compile time so that's not an issue.
             | 
             | https://wiki.freepascal.org/With
             | 
             | https://developer.mozilla.org/en-
             | US/docs/Web/JavaScript/Refe...
             | 
             | https://developer.mozilla.org/en-
             | US/docs/Web/JavaScript/Refe...
        
               | trealira wrote:
               | I knew about the Pascal "with", but I didn't know
               | JavaScript had the same construct.
               | 
               | That kind of "with" is a lot less intuitive to me.
               | 
               | I was responding with Python's "with" because it sounded
               | like they were talking about programming languages in
               | general, but now I can see they were obviously talking
               | about JavaScript's "with" given this context.
        
         | lost_womble wrote:
         | A common case of W3 actively choosing the worse option
        
           | yyyk wrote:
           | CSS seems better? Much less verbose for same effect, doesn't
           | require enabling Javascript. The 'with' selectors do predate
           | jQuery and querySelector, but that was a problem with
           | Javascript and not CSS.
        
       | quickthrower2 wrote:
       | Rounded corners using images? Usually using a sprite.
       | 
       | Also I worked somewhere that used Flash as a proxy for realtime
       | socket support. I believe web sockets were not around then or
       | maybe not fully supported.
        
         | paradox460 wrote:
         | Sockets are very new. Way back when, you'd either use COMET,
         | which was a connection that the server wouldn't close, and
         | you'd append data to it, for the js in the browser to use. This
         | was one directional, so going the other way still required
         | separate requests
         | 
         | For real bidirectional sockets, it was common to make or use a
         | small flash file. You'd talk to it with js, and it would handle
         | the actual socket stuff. Worked pretty well
        
       | helsinkiandrew wrote:
       | I remember running a project to build a mortgage
       | calculator/spreadsheet 'app' for a bank that had to work in
       | 'Dynamic HTML' in Netscape 4 and IE. A never ending hell of
       | compatibility, functionality and appearance differences that took
       | many sleepless nights to fix.
        
         | Tijdreiziger wrote:
         | But hey, it gave us http://www.dynamicdrive.com!
        
       | padjo wrote:
       | filter:progid:DXImageTransform.Microsoft.AlphaImageLoader Brings
       | me back
        
       | phirschybar wrote:
       | wow - this was a great walk down memory lane. I remember using
       | all of them, particularly tables for creating complicated
       | layouts. it worked beautifully but was an unbelievable pain to
       | maintain when making layout changes. what's wild though is that
       | this technique eventually went way beyond the category of "hack".
       | slicing tables into layout became officially supported by major
       | software such as dreamweaver (big at the time) and photoshop!
       | yes, you could open a static design in photoshop and use the
       | "slice tool" to cut it up into an HTML table. good times...
        
       | NooneAtAll3 wrote:
       | > Remember when our browsers defaulted to gray backgrounds? That
       | was weird, right?
       | 
       | better than white themes we have today
        
         | phero_cnstrcts wrote:
         | The best part is going between two dark themed sites at night
         | and get a blinding bright flash as a transition.
        
           | Am4TIfIsER0ppos wrote:
           | I used to override the default style to do white text black
           | background and I lost count of the number of sites that would
           | set one of those properties to the common default causing
           | everything to be invisible.
        
       | CommanderData wrote:
       | Remember when we rounded corners using images placed at each
       | corner.
       | 
       | It was a nightmare.
        
         | grishka wrote:
         | Another technique: 3 1-pixel <b>s per corner. For example, look
         | at the buttons here
         | https://web.archive.org/web/20070624110053/http://vkontakte....
        
       | quadral wrote:
       | The font size on this site is huge. Why do blogs now follow this?
        
       | willsmith72 wrote:
       | Is responsive design really a hack? Media queries are awesome
       | 
       | Putting that stuff in css vs having conditional logic in the
       | javascript is a huge win, esp when you want to ssr
        
         | jbeninger wrote:
         | I had the same thought. Media queries to support different...
         | media seems like the exact proper use case.
        
         | zlg_codes wrote:
         | No, it's not a hack. You can query different things about the
         | user agent and serve different CSS based on those queries.
         | Anyone calling it a hack is ignorant, it's a necessary part of
         | producing responsive designs.
        
         | mike_hock wrote:
         | It is when then query doesn't query what you want to know but
         | something that happens to correlate with the thing that you
         | actually need.
        
       | gpderetta wrote:
       | Not a web dev, but I heard of this hack called XMLHttpRequest...
        
       | ChrisMarshallNY wrote:
       | One of the major differences between tables and block elements,
       | is that block elements react to the context, and tables react to
       | the content. I used to use "display: table" a lot, even on divs.
       | 
       | Nowadays, the block model has matured enough to moot the point,
       | but back then, it was the best way to have content that didn't
       | reflow, but would still be presentable.
       | 
       | "Creating Killer Web Sites." That brings back memories...
       | 
       | A lot of folks hated that book.
        
       | mattpavelle wrote:
       | What about those weird proprietary HTML tags (ilayer, blink,
       | etc.( that were not supported by both IE and Netscape Navigator
       | that on first release required you to write the tag inside an
       | HTML comment so as not to break the competing browser?
       | 
       | That not hacky enough to make this list? :)
        
       | davidy123 wrote:
       | This doesn't include my "favourite," putting a heading for
       | accessibility at a -10000 position, so screen readers would read
       | it, but it didn't render on the screen.
        
         | bonzini wrote:
         | Does it still work? Or do you have to use ARIA?
        
           | davidy123 wrote:
           | I don't see why it wouldn't work, but the right thing to do
           | is use accessibility features.
        
           | jorgesborges wrote:
           | This still works and is a somewhat common practice,
           | especially for something like a skip link. Try pressing tab
           | on some of your favorite websites you might find they use
           | this technique.
           | 
           | https://developer.mozilla.org/en-
           | US/docs/Web/HTML/Element/a#...
        
           | arcanemachiner wrote:
           | I think you can use `visibility: hidden` or something like
           | that.
        
             | robertc wrote:
             | Most screen readers ignore hidden elements IIRC.
        
         | zerocrates wrote:
         | This (as well as close relatives of this) is still relatively
         | common because we still don't have a great option for to have
         | non-visible text that's screen-reader accessible in all cases.
         | 
         | aria-label and things like that have replaced some usages of
         | this pattern but not all.
        
       | dnhrd wrote:
       | No love for the OG box model hack by Tantek Celik?
       | 
       | Using a corrupted CSS 'voice-family' rule to make IE play nice:
       | https://tantek.com/CSS/Examples/boxmodelhack.html
       | 
       | Those were the days...
        
       | fifilura wrote:
       | Using tables for layout is pretty understandable.
       | 
       | But when tables went out of fashion it was all about using floats
       | for layout for a few years. That was wild, I am surprised it was
       | left out from that list.
       | 
       | https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layou...
       | 
       | "Originally for floating images inside blocks of text, the float
       | property became one of the most commonly used tools for creating
       | multiple column layouts on webpages. With the advent of flexbox
       | and grid it's now returned to its original purpose, as this
       | article explains."
        
         | city41 wrote:
         | The era between tables and flexbox/grid was a difficult one.
         | Floats were finicky and hard to get right. A lot of people just
         | went back to tables, and I honestly didn't blame them.
        
           | kalleboo wrote:
           | Or the rare-in-the-wild but somewhat funky method of using
           | the display: table/table-row/table-cell CSS declarations to
           | create table-based designs, but applied to different tags so
           | at least your HTML still only shows those fancy modern divs
           | :)
        
           | chrisfinazzo wrote:
           | I had an internship during college at a small web shop that
           | did a _ton_ of HTML mail. Early on, after I had completed a
           | project, they took a half day to try and teach me how floats
           | worked.
           | 
           |  _Note: If you think web browsers are weird, just wait until
           | you try doing things in email clients or - $deity forbid -
           | ebook readers._
           | 
           | As you say, it was weird and initially quite difficult to
           | wrap my head around it. Surprisingly, I didn't actually learn
           | about the "clearfix" hack until a couple of years later when
           | I interviewed for a Front-End job at - of all places - Fox
           | News.
           | 
           | The person who I talked with there gave me a take-home to
           | work on and send back. Tl;dr I didn't get it quite right
           | because I hadn't really taken the time to understand what the
           | particular styles did to the layout.
           | 
           | Fast-forward to today and I'm using floats w/ @print and a
           | div class of "clearfix" set to "both" in order to reset the
           | layout of a document that was converted from Word's .docx to
           | HTML.
           | 
           | How times change.
        
           | rchaud wrote:
           | The era between tables and flexbox/grid were the glory years
           | of Bootstrap and Foundation CSS frameworks.
        
         | jart wrote:
         | Floating divs killed the Dreamweaver. CSS came and broke your
         | heart. Oh, a, a, a, oh.
        
           | xyzzy_plugh wrote:
           | We browse through Wayback and it seems so long ago...
           | 
           | I met your children -- what did you tell them?
        
             | sgc wrote:
             | I told them to behave, but I don't know if they listened,
             | because my old ears are plugged up, and I can only barely
             | hear them. Hee dee hee, hee dee ho
        
         | CM30 wrote:
         | Speaking of floats being used for layout, you could probably
         | add the clearfix hack to this list too.
         | 
         | That was an essential part of my CSS toolbox for years, and
         | something that ended up being one of the first things added in
         | every new project.
         | 
         | https://css-tricks.com/snippets/css/clear-fix/
        
           | cantSpellSober wrote:
           | The linked article includes an example of the "commented
           | backslash hack," a variation on point #3 in _this_ article
           | 
           | Fell out of use because "nobody uses IE for Mac" :)
        
             | dylan604 wrote:
             | IE for Mac was so atrocious, there's a chapter dedicated to
             | it in iWoz.
        
               | chrisfinazzo wrote:
               | As I understand it - I was a bit young when it happened,
               | so all I have are secondhand accounts - IE 5 on Mac was
               | substantially _better_ that other browsers due in part to
               | its CSS support.
        
             | Klonoar wrote:
             | It amazes me to this day that IE for Mac wasn't even the
             | Trident rendering engine.
        
         | cantSpellSober wrote:
         | > it was all about using floats for layout for a few years
         | 
         | Called these "faux columns" and a basic 3-column layout was so
         | difficult it was referred to as the "holy grail" of layouts
         | 
         | https://en.wikipedia.org/wiki/Holy_grail_(web_design)#Faux_c...
        
           | dylan604 wrote:
           | don't forget that the holy grail was to have a locked in
           | header and footer with the middle section as scrollable 3
           | columns
        
             | xyzzy_plugh wrote:
             | This is firmly cemented in my mind as completely
             | impossible. I won't listen to reason.
        
               | stabbles wrote:
               | It because of this exact technical challenge that ads
               | nowadays appear between paragraphs in the middle content
               | column, instead of in the right column where they belong.
        
               | dylan604 wrote:
               | never underestimate the levels ad tech will stoop to
               | interfere in an attempt to gain even more
               | eyeballs/clicks. your attempt to sit them at the table in
               | the back of the room next to the kitchen was never going
               | to be the final placement
        
               | Dalewyn wrote:
               | I will go a step further and argue that all the websites
               | we see today with dropdown menus at the top, a huge
               | header image below it, one blob of disjointed content(?)
               | below that, and finally the footer at the end is(was?) a
               | direct result of the Holy Grail being so difficult to
               | achieve outside of using tables.
        
         | chrisfinazzo wrote:
         | If you're specifying @screen as the Media Type, the primary
         | reason I can think of for going back to floats is art direction
         | - especially if you wanted to float images alongside a block of
         | text. I know there are "better" methods in more modern versions
         | of the spec, but this is one that still seems to get a fair bit
         | of use.
         | 
         | Old CSS never dies, it just goes to live on a _very special_
         | farm upstate where it only has to do 1 or 2 jobs.
        
         | stabbles wrote:
         | As W3Schools still likes to call it: _the new, modern clearfix
         | hack_ [1]                   .clearfix::after {
         | content: "";           clear: both;           display: table;
         | }
         | 
         | [1] https://www.w3schools.com/howto/howto_css_clearfix.asp
        
           | reddalo wrote:
           | W3Schools is a horrible resource. I'd like Google to hide all
           | of their results.
        
             | rchaud wrote:
             | A lot of people on HN seem to have this opinion. A lot of
             | the content on that site has been re-written, and it's now
             | a pretty fantastic resource for beginners.
             | 
             | If you tell 2 beginners to build something with
             | PHP/jQuery/JS, and send one person to W3Schools and the
             | other to PHP.net/jquery.org/MDN, I have no doubt that the
             | W3schools person will get something done in workable state
             | faster.
        
               | mpixel wrote:
               | And if you tell 2 experts to build something with
               | W3Schools as the resource against better documentation,
               | I'm sure the results will be the opposite.
               | 
               | That's not the point though, I'm not going to say
               | different strokes for different folks.
               | 
               | Instead I'd say, if that beginner uses the 'slower' path
               | instead, that will pay dividends in time -- they are
               | better of learning to use the docs than getting paid
               | peanuts for delivering that project which depends on the
               | juniors faster.
        
               | subtra3t wrote:
               | I disagree with you. "Learning" to use a particular
               | documentation website (which, mindyou, changes its layout
               | frequently) is not very time consuming.
               | 
               | So a beginner should use w3schools while they see fit,
               | and then move on to MDN, etc. when they find it to be
               | unsuitable for their purposes.
        
               | rchaud wrote:
               | That's exactly what the progression was for me. W3S laid
               | the foundations, and then I went on to MDN and other
               | sources once I felt more comfortable.
        
               | rchaud wrote:
               | An expert wouldn't go to W3schools to begin with. They
               | would have far more specific problems that would be
               | better explored on Stack Overflow.
               | 
               | A beginner on the other hand would have their SO
               | questions locked/closed within minutes because it would
               | likely break any one of the thousand little rules SO has
               | (to reduce duplicates) that are unknown to beginners.
               | 
               | Horses for courses; I read the official MDN and PHP docs
               | now, but I didn't when I began because those sites assume
               | an enormous amount of prior knowledge about programming.
        
               | account-5 wrote:
               | This exactly. I still look to w3school over mdn if I can.
               | The information is just friendlier. I'll use "proper"
               | documentation if needed and never post anything to SO for
               | the reasons you state.
        
               | woodrowbarlow wrote:
               | i'm mostly upset that they use "w3" in their name to
               | masquerade as an "official" source of documentation. i
               | know their about page clears this up, but it's pretty
               | buried.
        
               | rchaud wrote:
               | Well perhaps W3C's official site would rank higher if it
               | actually offered any tutorials, i.e. the thing people are
               | searching for, as opposed to a list of specifications and
               | draft specifications that won't be finalized for 10
               | years.
               | 
               | In any case, "W3" is just another representation of
               | 'www', which the W3C doesn't have any kind of claim over.
               | 
               | OpenAI isn't open. W3Schools is unaffiliated with the
               | W3C. The world keeps spinning.
        
               | explaininjs wrote:
               | > won't be finalized for 10 years
               | 
               | That's optimistic, optimistically. It's a group of ivory
               | tower academics with no stake in any browser
               | implementation acting like they have any right to tell
               | actual browser implementors how to behave.
        
               | reddalo wrote:
               | > acting like they have any right to tell actual browser
               | implementors how to behave
               | 
               | Well, I totally prefer that, than letting Google decide
               | by themselves
        
               | explaininjs wrote:
               | Have you ever had academics that have nothing to do with
               | you, your company, or your product, tell you how to do
               | your job?
               | 
               | And besides, what makes you think Google listens to them?
        
               | SkeuomorphicBee wrote:
               | I disagree, "w3" doesn't have any official connotation,
               | it is literally the name of the thing they are teaching
               | (or the alternate spelling of the abbreviation, but same
               | thing). It is a common pattern for a school that teaches
               | [thing] to call themselves "[thing] school", nothing
               | wrong there.
        
               | zlg_codes wrote:
               | You're telling me it's unreasonable for people to mix up
               | W3schools and W3C? lol
        
               | reddalo wrote:
               | I agree with you.
               | 
               | The name is so confusing that if you search for "w3c" on
               | DuckDuckGo, the _first_ result is W3Schools, and then the
               | official W3C website.
        
               | creatonez wrote:
               | I haven't noticed a difference since I first heard of the
               | site. They may have corrected factual inaccuracies, but
               | the overall organization and prioritization of
               | information is not for me.
        
               | anarazel wrote:
               | My main issue with them is not their content proper, but
               | that their SEO ranks them above much more topical
               | results. That's clearly also Google's fault, but it's
               | also clearly w3school's strategy.
        
               | jorgesborges wrote:
               | What would be the point of that exercise though? It's
               | true they might produce something faster, but if those
               | sources are meant to be an educational resource then
               | they'll learn more reading through actual documentation
               | than copy-pasting questionable code to get something
               | done.
        
               | Tijdreiziger wrote:
               | You need a 'tutorial'-style guide to bootstrap your
               | knowledge. After that, you're ready to use a technical
               | reference.
               | 
               | Some programming languages ship a good tutorial as part
               | of their documentation (e.g. Python), but not all.
        
             | rand_flip_bit wrote:
             | Amongst many other sites, I have w3schools blocked in my
             | Kagi search results, along with MDN being
             | raised/prioritized.
             | 
             | From the looks of it, it seems like blocking w3schools is
             | quite popular among Kagi users [1].
             | 
             | [1]: https://kagi.com/stats
        
               | chinkinthearmor wrote:
               | Could I ask real quick why you dislike W3Schools? I def
               | learned SQL syntax and basic HTML/CSS (I needed to use
               | CSS selectors but had basically no knowledge) through
               | them and actually thought to myself they did a great job
               | at keeping things need-to-know for immediate use.
               | 
               | I have a feeling I know your answer - as a financial
               | professional I initially used Investopedia in a pinch but
               | over the years realized their accuracy has an inverse
               | relation with the specificity of the topic. After seeing
               | incorrect formulas and descriptions a handful of times, I
               | eventually stopped using it completely.
        
               | reddalo wrote:
               | Kagi, what an unfortunate name. It means "you take a
               | shit" in Italian :(
        
             | paradox460 wrote:
             | Kagi let's you hide it.
        
           | ransom1538 wrote:
           | &nbsp;That&nbsp;works?&nbsp;&nbsp;
        
         | joshstrange wrote:
         | When floats first came out (or around that time) I wrote my
         | computer repair site using them, all developed in FF. Then, as
         | I was finishing, I opened it in IE and watched the entire
         | design fall apart. Unfortunately the people I would be
         | targeting with my website would almost certainly be using IE so
         | I had to go back to the drawing board and rewrite it using
         | tables. It was a sad day.
        
           | yread wrote:
           | Unfortunately, the opposite could also happen. You just
           | needed to test every commit (or check in... ugh writing that
           | word brought back painful memories) in different browsers
        
         | _fat_santa wrote:
         | I had to develop some email templates a while back for the
         | first time and was almost shocked that they still use the
         | "tables method" for layouts. Overall I'd say developing email
         | templates now is much like developing websites in the early
         | 2000's, email clients have such a wider range of CSS support
         | that there are hacks all around. We now have frameworks like
         | MJML and Foundation that do their best to abstract all that
         | stuff away through components but take a look under the hood at
         | the rendered HTML and it's a very scary and nostalgic place.
        
           | dylan604 wrote:
           | But if you wrote an email template app based on tables, why
           | would you change it if it's not broken? Why would you go
           | through the hassle and expense of redeveloping your app just
           | to not use tables? No sane person looks at the HTML of an
           | email. Only poor souls that get a request on how to send
           | email spam in-house might ever consider it, or just the
           | perversely curious. Either way, nobody _cares_ what it looks
           | like under the hood as long as it looks good when viewed in
           | the client.
        
           | epiccoleman wrote:
           | I JUST had this same issue. Even worse, the Sendgrid "sample
           | renderer" supports flex, but Gmail doesn't, so I didn't
           | notice there was a problem until I started sending myself
           | test emails, and then had to rewrite the whole template with
           | tables.
           | 
           | Madness!
        
           | zlg_codes wrote:
           | E-mail was never meant to support HTML, though, and it's a
           | major vector for attacks. I wish more servers would disallow
           | or strip HTML from their incoming messages.
           | 
           | Generally speaking, if I see an HTML e-mail I know the other
           | end cares NOTHING about security or efficiency, and is
           | actively trying to snoop on me with analytics.
           | 
           | Not surprising you had to fall back to very old HTML to hit a
           | common featureset.
        
             | chrisfinazzo wrote:
             | As I've been converting from .docx to HTML, I was
             | pleasantly surprised to find that using flexbox to lay out
             | three elements in a single row is perfectly fine and -
             | bonus points- the CSS doesn't make want to gouge my eyes
             | out.
             | 
             | To your point that HTML can be a security risk, I remember
             | interviewing at The College Board in mid 2011 and finding
             | out that they still sent critical information - think
             | testing admission tickets - with a MIME type of text/plain.
             | 
             | If you need to guarantee delivery and readability, no
             | matter where people are getting the message, I don't see
             | how you can do it any other way.
        
         | hn_throwaway_99 wrote:
         | I was going to comment that I took offense to calling table-
         | based layout a hack in the first place. When tables went out of
         | favor, and I saw _many, many_ front end dev teams waste
         | cumulative months of time creating a much less understandable
         | web page fiddling with float nonsense all over the place,
         | solely so  "purists" could keep their religion in tact, I
         | learned a valuable lesson. Joel Spolsky calls them
         | "Architecture Astronauts" in a great blog post - the types of
         | developers who forget that their job is to actually produce
         | working software that does something well with the least amount
         | of effort (architecture astronauts also gave us the
         | ridiculousness of the first EJB spec, and stuff like the widely
         | derided AbstractFactoryBuilderConstructor nonsense from Java).
         | I feel like I've done a good job over time recognizing these
         | architecture astronaut personalities and staying far away.
        
           | jenscow wrote:
           | For sure. While tables went out of fashion, there was nothing
           | usable to replace them.
           | 
           | I was not really interested if those doing a "View Source"
           | are going to be offended by my "incorrect" use of tables.
        
             | Izkata wrote:
             | Check out a "View Source" on HN ;)
        
           | ghusbands wrote:
           | Not everyone who cares about accessibility is an architecture
           | astronaut.
        
           | handy2000 wrote:
           | IIRC non-table based layouts are rendered progressively,
           | while table-based layouts have to be loaded fully first, and
           | only then rendered. At the point when this was relevant, the
           | Web was slow (slow connections, slow rendering engines), so
           | one of the primary motivations for ditching tables for
           | layouts was an increase in the perceived page rendering
           | speed, not just a purist quirk.
        
             | slapo wrote:
             | I don't think that's accurate. It was old Internet Explorer
             | that wouldn't render tables progressively.
             | 
             | See here, where it includes a demo:
             | https://www.vbulletin.org/forum/showthread.php?t=161099
             | 
             | Non-table layouts also came into fashion when screen
             | resolutions started to vary more, and some degree of
             | fluidity and responsiveness could've been implemented with
             | non-table layouts while IE was still a target. However, IE
             | was lacking so badly even with IE8 that a lot of CSS that
             | had been a W3C recommendation for years at that point just
             | either didn't work, it was quirky because IE handled the
             | box model a little differently. It was one of the reasons
             | why Javascript shims and IE-specific CSS had to help out
             | fairly often.
        
               | handy2000 wrote:
               | > I don't think that's accurate. It was old Internet
               | Explorer that wouldn't render tables progressively.
               | 
               | You both agree and disagree with my comment :)
               | 
               | If memory serves me right, I started migrating off table
               | layouts at the time when IE6 was still by far the most
               | popular browser (>80% of the market?).
        
           | fsckboy wrote:
           | what do you mean by "purists" wrt tables? not nesting them or
           | something? or using them only for marking up "relational"
           | data and not page layout? or were these purists from the
           | design side?
        
         | hiccuphippo wrote:
         | I still remember article after article coming out with the
         | newest "holy grail" of 3 column layout.
        
         | jancsika wrote:
         | Something related to this:
         | 
         | I made an SVG interface for displaying/editing diagrams using
         | nw.js (essentially Electron). It would adapt the SVG viewport
         | height and width based on the amount of space that's actively
         | being used so that scrollbars will appear only when needed.
         | 
         | The interface would work perfectly in Chromium and Firefox. But
         | in nw.js I was using their menu api to display a window menu.
         | That menu wasn't part of the DOM-- not sure how nw.js displays
         | that menu but you can't introspect it in devTools. Anyhow, this
         | was somehow creating an off-by-one problem where scrollbars
         | would one pixel too early.
         | 
         | The only way I stumbled upon to fix the issue was to set the
         | SVG style to add "float: left;"
         | 
         | Any ideas on what magic spell this casts? Technically the svg
         | was the only DOM element in the page. I never did figure it
         | out.
        
           | robertc wrote:
           | Possibly the svg element was inline, so sitting on the text
           | baseline rather than the limits of the container element?
        
         | scotty79 wrote:
         | I'd say that using floats to make columns and rows in layouts
         | was way worse hack.
        
       | cantSpellSober wrote:
       | > Putting an underscore in front of a CSS style
       | 
       | Not just underscores! You don't want to exclude Opera do you?!
       | All types of hacks existed to target specific browsers. *+html
       | anyone?
       | 
       | https://css-tricks.com/snippets/css/browser-specific-hacks/
       | 
       | http://browserhacks.com/
        
       | k__ wrote:
       | I fondly remember the times.
       | 
       | I'd built a site for Firefox and then conditionally import IE
       | patches via those hacks to fix issues.
       | 
       | In the worst case, I'd hand to bludgeon it into the right form
       | with JS, but usually I got pretty far with those CSS hacks.
        
       | telesilla wrote:
       | No mention of the html5 shiv we all installed before any CSS so
       | all browser quirks were removed?
       | 
       | https://paulirish.com/2011/the-history-of-the-html5-shiv/
        
         | cachvico wrote:
         | Nor of reset, normalize etc.
        
       | RyanShook wrote:
       | Why exactly was Internet Explorer so bad? In hindsight, it looks
       | like a huge missed opportunity for Microsoft.
        
         | troupo wrote:
         | They won. The world was running on desktop computers, and those
         | desktop computers were running Windows, and Windows was running
         | IE.
         | 
         | So they rested on laurels.
        
         | ubermonkey wrote:
         | They were attempting to replace standards-based rendering with
         | their idiosyncratic version. It wasn't that IE was _bad_ ; it
         | was that it was deliberately that way b/c they saw the web as a
         | threat to the desktop, and wanted to Embrace, Extend, and
         | Extinguish it.
        
         | cantSpellSober wrote:
         | It had the majority share of users, lots of bugs, and didn't
         | update itself (in the sense that modern evergreen browsers do).
         | 
         | This turned into a chicken/egg problem where apps _only_ worked
         | in IE6. Mitigated somewhat by  "evergreen" browsers that update
         | themselves regularly.
        
       | irrational wrote:
       | Walk down memory lane. I've used almost all of these over the
       | nearly 27 years I've been doing web development. I kind of feel
       | like the old float/clear and 1px x 1px transparent gif hacks
       | should have been in there as well.
        
       | ulrischa wrote:
       | Dupe: https://news.ycombinator.com/item?id=38423981
        
         | hapulala89 wrote:
         | Why are here so many duplicates? One should look before
         | posting.
        
       | vsnf wrote:
       | The article and every comment in this thread thereof is a
       | thermonuclear illustration of (part of) why I hate web
       | development. This is what so many of my peers told me was the way
       | to develop applications. Nevermind that the desktop frameworks,
       | quirky though they were at times, had none of these issues and
       | didn't force some absolutely wild hacks on their users.
       | 
       | I will never not be salty about the DOM, CSS, and all the wonky
       | apis to control them. JavaScript in comparison was the least of
       | the sins of web dev.
        
         | handy2000 wrote:
         | In an odd way, I miss the time when web dev was so quirky and
         | unpredictable. It was a never-ending process of
         | experimentation, puzzle solving, discovery, and, once you
         | figure out a hacky way to do something as basic as a 3-column
         | layout, very gratifying.
         | 
         | I guess for me it was more of a creative outlet than just a
         | job.
        
       | wavemode wrote:
       | Sometimes I can't tell if modern web developers are spoiled, by
       | having CSS Grid and IE being dead. Or if we were spoiled back
       | then, by not having to deal with the complexity of modern
       | frameworks and build processes.
        
         | flagrant_taco wrote:
         | There is something unique in web development connotation to the
         | other fields I've worked in. The industry has made a habit of
         | reinventing the wheel in every more complex ways.
         | 
         | My best guess is that this is a side effect of web being a
         | field that's more often picked by new or less experienced devs.
        
           | jdmichal wrote:
           | The web is essentially UI development. And UI frameworks and
           | libraries have always had lots of churn. Even ultra-
           | conservative Java has had AWT, Swing, and a couple varieties
           | of JavaFX. And then a few more developed by other groups like
           | SWT. The expectations of both developers and users increase
           | as computers advance, and older frameworks can't always keep
           | up.
        
         | CM30 wrote:
         | Probably both, though I think it's probably easier nowadays
         | simply because you don't technically need modern frameworks and
         | build processes, and can create what would previously be
         | complicated sites and apps with ease using modern CSS and
         | JavaScript.
        
       | mseepgood wrote:
       | 11. Using JavaScript to build applications
        
       | kapitanjakc wrote:
       | Have used all of them, and will use some of them even today
        
       | Semaphor wrote:
       | I missed out on 1. because it was before my time, and I never
       | needed 7., everything else I used at some point :D
       | 
       | I'm actually missing a bunch of CSS hacks for IE10+ and I think
       | even early Edge version where MS said "No more conditional
       | comments, we can now do everything"[0], but ended up still being
       | buggy and incomplete and requiring special CSS to work properly.
       | 
       | [0]: I can kinda understand it. People had "if !IE" conditional
       | comments, but they now supported that stuff. But they should just
       | have changed the supported syntax, their browsers were still
       | utter crap.
        
       | bdr wrote:
       | One more to add from the early days: widespread use of &nbsp;,
       | the character entity for a non-breaking space.
       | 
       | They were used to move text to the right to the left within a
       | container. Or (IIRC) in table cells to make them behave, similar
       | to 1x1 spacer gifs. Some pages had hundreds of nsps. Just kind of
       | a general way to add margin or padding.
        
       | cantSpellSober wrote:
       | SWFObject deserves a shoutout if sIFR is getting one.
       | 
       | It was a JS library required just to get a cross-browser Flash
       | player.
        
       | moribvndvs wrote:
       | The moment I saw filter:progid:DXImageTransform I had an urge to
       | call my therapist. So much trauma in one article.
        
       | 101008 wrote:
       | Great article. I love everything related to the "old internet"
       | (as you can see from my nostalgic point of view on some of my
       | comments in Hacker News). Is there a good book about that
       | particular time? I'd like to read a very good book about not just
       | browsing the internet back then, but doing some kind of
       | development (especially frontend, which I think it was the one
       | that required most hacks and changed more than the backend in a
       | few years)-
        
       | jszymborski wrote:
       | My favourite was using iFrames as a type of ersatz AJAX. Click a
       | link, make the target the iframe, an voila! No page refresh, and
       | the iFrame gives visual feedback.
        
         | schemescape wrote:
         | I recently did sort of the inverse as an experiment: put a
         | button in a frame to avoid reloading the main page:
         | 
         | https://log.schemescape.com/posts/web-development/interactiv...
        
       | notbeuller wrote:
       | I will often slap a dumb 3 line http server into my long running
       | tools / applications for debugging - provide ReSTful channel to
       | toggle debug flags. I "learned" html in the 90s and don't use it
       | otherwise, so <table> figures prominently in generating the
       | structure of the page.
        
       | seanwilson wrote:
       | This is why "HTML/CSS/JS isn't supposed to be used like that" is
       | a weak argument. Browser features we take for granted now grew
       | from developers popularising hacks that pushed the boundaries
       | (usually in ways people complained about at the time) until
       | official support was gradually built into the browser e.g. AJAX,
       | responsive layouts, complex/flex/grid layouts, reactivity with
       | proxies, JavaScript modules, desktop-like web UIs in general.
       | 
       | TypeScript, JSX, Tailwind and bundlers come to mind of current
       | trends that get some strong negative reactions but could become
       | more mainstream later.
        
       | j45 wrote:
       | Seeing the title of the article, it was surprising surprised to
       | not use the use of xmlhttprequest to invent the category of
       | JavaScript driven apps, by Microsoft no less.
       | 
       | Let's be sure to call the programming style of using this
       | function Ajax, and then create Microsoft Outlook for web as the
       | first browser side Javascript app and modern JavaScript
       | framework.
       | 
       | https://en.m.wikipedia.org/wiki/Ajax_(programming)
        
       | myfonj wrote:
       | No mention about HTC?                   .fancy { behavior:
       | url("path/to/pie_files/PIE.htc"); }
       | 
       | (It is still online [1]! And even on GitHub [2]!!)
       | 
       | [1] http://css3pie.com/ [2] https://github.com/lojjic/PIE
        
         | Klonoar wrote:
         | I have a stupid fondness for the level of hacks that we all
         | collectively developed for IE6-9. One of my favorites was
         | tricking IE6/7 into supporting Base64-encoded images in CSS by
         | essentially triggering Outlook rules.
         | 
         | They're 100% things that shouldn't exist, mind you.
        
       | Gabrys1 wrote:
       | https://www.youtube.com/watch?v=9sKppwrLBY8
       | 
       | Firefox ad from that era
        
       | hypertexthero wrote:
       | My favorite from 20 years ago: Doug Bowman's "Sliding Doors" of
       | CSS to make rounded corner tabs that would expand to fit the
       | text: https://alistapart.com/article/slidingdoors/
        
       | Kwpolska wrote:
       | Did anyone actually use Chrome Frame? Were there so many users
       | that were so used to the IE interface and were unwilling to
       | accept Chrome itself?
        
         | adamzochowski wrote:
         | Plenty corporates had IE only/first policy. This meant
         | everything intranet had to work on IE. A website developed for
         | chrome was allowed to request chrome frame, but it had to undo
         | itself for any external links when linking to other intranet
         | sites (plenty active-x / silverlight).
         | 
         | I wish there was an option to specify per website domain which
         | browser to use.
        
           | nikhilgk wrote:
           | And more importantly, as I recall, you could install chrome
           | frame without admin access.
        
       | mirkodrummer wrote:
       | The one I still remember: Clearfix
        
       | cratermoon wrote:
       | Notice how many of these hacks grew out of what was called the
       | "pixel perfectionist" crowd in those days. The Web and HTML came
       | out of a community that valued logically, semantically organized
       | content. Communication was largely about words and ideas. If the
       | result looked about as exciting as an academic paper, well, that
       | was fine. The adoption by a community concerned with
       | communicating with design, using color, layout, and other visual
       | elements, came with a host of ways to squeeze it out of the
       | limited capabilities of HTML.
       | 
       | Notice also how many of the hacks were about making it the design
       | look the same in IE as in Netscape. Or in some cases, making it
       | just work, at all, in IE while not breaking in Netscape or Opera
       | or other browsers.
       | 
       | One could argue that this mix of competing rendering engines led
       | to a great deal of creative discovery that drove future
       | developments, and today we have, essentially 3 engines: Chromium,
       | WebKit, and Quantum (formerly Gecko)
        
       | 1vuio0pswjnm7 wrote:
       | Actual HTML title: "10 Weird HTML Hacks That Shaped The Internet"
       | 
       | Is there a difference between "the Web" and "the Internet".
       | 
       | As a loyal text-only browser user (not lynx or w3m), I have
       | safely avoided all 10. It's possible for me to disable tables and
       | normally I do. Breaking out of frames is one keypress.
        
       | zlg_codes wrote:
       | The amount of conflation between "the Internet" and "the Web" is
       | way too high in here. It is the most popular protocol, but it is
       | not the _only_ protocol.
        
       | Klonoar wrote:
       | I developed extensively for IE6 back in the day and never
       | actually used that underscore hack - found it too confusing in
       | codebases. We'd use the asterisk html selector path instead. IE7
       | had a similar hack for marking off CSS using some first-child
       | trickery, e.g:                   * html #myDiv { /* IE6 stuff */
       | }         *:first-child + html #myDiv { /* IE7 stuff */ }
       | 
       | One could also trick IE6/7 into loading base64-encoded images in
       | CSS by shoving in an mhtml boundary in CSS files.
       | 
       | Also love that the article called out sIFR - cannot believe I'd
       | actually forgotten about that one.
        
       | alberth wrote:
       | IE for Mac was great.
       | 
       | People forget that IE for Mac was the best & most standards
       | compliant browser for Mac ~25 years ago.
       | 
       | All of the "IE hate", was only directed at the Windows version
       | ... not the Mac version.
       | 
       | https://en.m.wikipedia.org/wiki/Internet_Explorer_for_Mac
       | 
       | Here's Gruber also saying it was great.
       | 
       | https://daringfireball.net/linked/2020/01/06/grewel-ie-5-mac
        
       | blahyawnblah wrote:
       | And PNGs for rounded corners. I can't remember what the term was
       | when you took two images overlayed to make a rounded button that
       | was resizable. Sliding door buttons?
       | 
       | And transparent gifs to set a width without being seen.
        
       | ryoshu wrote:
       | I still have a physical copy of, "Creating Killer Web Sites."
       | That era of web dev was hacky and super fun.
        
       ___________________________________________________________________
       (page generated 2023-12-01 23:00 UTC)