Search posts, tags, users, and pages
Gustavo Benedito Costa
Deaf-born, computer science student and language lover
Gustavo Benedito Costa "w3.css" is a framework created by W3Schools, or as it is often jokingly called W3fools. They are completely unaffiliated with the W3C despite many people having been tricked into thinking they are just because they share two letters in the name.
In fact it's one of the many reasons W3Schools is one of the least trustworthy sites out there for learning to write HTML, CSS, or much of anything else is that they spent a decade and a half refusing to even put up a disclaimer they had jack to do with the W3C, only begrudgingly doing so quite recently.
See their disclaimer here:
w3schools.com/about/default.asp
The site derives its name from the World Wide Web (W3), but is not affiliated with the W3C.
Even though they (eventually) added it, it's buried on their about page when it should be plastered all over every single page of their site.
Much akin to their BS certifications which mean absolutely squat. All of their tutorials are filled with disinformation, bad practices, seemingly intentionally incomplete interpretations of the specs, and on the whole are the last place I would point a beginner unless I wanted them to fail.
w3.css -- the framework that has nothing to do with the W3C -- is utter and complete incompetent trash built by people who have zero business telling others how to make websites! I stand by that statement! Just look at it:
If you don't know what's wrong with saying class="w3-text-red w3-rightBar w3-round-medium" you literally might as well go back to using HTML 3.2 with font/center tags, tables for layout, and garbage attributes like align, border, bgcolor, etc. Frameworks that use classes in this manner undo twenty years of development progress and reek of the worst of late 1990's browser-wars era coding!
It's why when you view source their website and see trash like this:
<div class='w3-container top'>
<a class='w3schools-logo notranslate' href='//www.w3schools.com'>w3schools<span class='dotcom'>.com</span></a>
<div class='w3-right w3-hide-small w3-wide toptext' style="font-family:'Segoe UI',Arial,sans-serif">THE WORLD'S LARGEST WEB DEVELOPER SITE</div>
</div>
<div style='display:none;position:absolute;z-index:4;right:52px;height:44px;background-color:#5f5f5f;letter-spacing:normal;' id='googleSearch'>
<div class='gcse-search'></div>
</div>
<div style='display:none;position:absolute;z-index:3;right:111px;height:44px;background-color:#5f5f5f;text-align:right;padding-top:9px;' id='google_translate_element'></div>
<div class='w3-card-2 topnav notranslate' id='topnav'>
<div style="overflow:auto;">
<div class="w3-bar w3-left" style="width:100%;overflow:hidden;height:44px">
<a href='javascript:void(0);' class='topnav-icons fa fa-menu w3-hide-large w3-left w3-bar-item w3-button' onclick='open_menu()' title='Menu'></a>
<a href='/default.asp' class='topnav-icons fa fa-home w3-left w3-bar-item w3-button' title='Home'></a>
<a class="w3-bar-item w3-button" href='/html/default.asp' title='HTML Tutorial'>HTML</a>
<a class="w3-bar-item w3-button" href='/css/default.asp' title='CSS Tutorial'>CSS</a>
<a class="w3-bar-item w3-button" href='/js/default.asp' title='JavaScript Tutorial'>JAVASCRIPT</a>
<a class="w3-bar-item w3-button" href='/sql/default.asp' title='SQL Tutorial'>SQL</a>
<a class="w3-bar-item w3-button" href='/php/default.asp' title='PHP Tutorial'>PHP</a>
<a class="w3-bar-item w3-button" href='/bootstrap/default.asp' title='Bootstrap Tutorial'>BOOTSTRAP</a>
<a class="w3-bar-item w3-button" href='/howto/default.asp' title='How To'>HOW TO</a>
<a class="w3-bar-item w3-button" href='/jquery/default.asp' title='jQuery Tutorial'>JQUERY</a>
It becomes painfully obvious they have no business in the business of making tutorials on HTML and CSS. No proper structural heading, no block level containers in the menu so screen readers treat it as a run-on sentence, endless pointless idiotic classes for nothing, pointlessly redundant TITLE attributes, DIV for nothing, scripting only elements static in the markup, static style in the markup, absolute URI's for nothing, scripting for things that shouldn't even be scripted... it's an epic /FAIL/ at web development on the most basic of things.
Hence it being 1.82k of markup doing this 588 byte's job:
<h1>
<a href="/">
W3Schools<span>.com</span>
<small>THE WORLD"S LARGEST WEB DEVELOPER SITE</small>
</a>
</h1>
<ul id="mainMenu">
<li class="home"><a href="/">Home</a></li>
<li><a href="/html/default.asp">HTML</a></li>
<li><a href="/css/default.asp">CSS</a></li>
<li><a href="/js/default.asp">JAVASCRIPT</a></li>
<li><a href="/sql/default.asp">SQL</a></li>
<li><a href="/php/default.asp">PHP</a></li>
<li><a href="/bootstrap/default.asp">BOOTSTRAP</a></li>
<li><a href="/howto/default.asp">HOW TO</a></li>
<li><a href="/jquery/default.asp">JQUERY</a></li>
Their own bloody site uses nearly four times the markup needed, and we're supposed to trust these clowns to teach beginners? Bullcookies!
So since they have absolutely nothing to do with the W3C, your reply does'nae make much sense. Sorry but you got upset over not understanding who I was pointing that particular fickle finger of fate at.
I've edited my post to add a note clarifying that, since it does seem so many people don't know that about W3schools, having been w3fooled by their inaccurate, misleading, and duplicitous website and practices.
Where do you recommend, beginners should learn from?
Jason Knight, Indu Pillai is asking you. You did not answer he for 7 days.
Thanks. I didn't know about :target.
And things could probably be simplified by wrapping it
function loopHTML(container, element, arrayContent)
{
do {
el = container.createElement(element);
el.innerHTML(content);
} while (content = arrayContent)
}
But gets more tricky if you need call to content creation from within again, making it recursive. Avoiding all this isn't as easy in a real case scenario making enterprise applications.
Jeez I made many grammar mistakes lately
Maybe, maybe not. I haven't given it thoughts if there is. I make stuff that is highly customisable to beyond my imagination, so there is a lot of deep nesting and the users accept that slower page.
Wouldn't it make it both easier to read, write and more speedy if using <template> ? Your code isn't as maintainable as how I see it with Vue and that's a big issue.
Also your hate against components seems a bit too much outrage. The theory of reusable code should never be denied, the implementation can maybe be debated.
I make stuff that is highly customisable to beyond my imagination, so there is a lot of deep nesting and the users accept that slower page.
I have the feeling you're not giving much thought to your semantics when you do that... but I operate on the principle that content dictates markup, content + markup + device capabilities dictates layout. I have the feeling you're starting out worrying about what it looks like and playing endless games with that appearance instead. I might be wrong, but wild guess from the way it sounds.
Wouldn't it make it both easier to read, write and more speedy if using <template> ? Your code isn't as maintainable as how I see it with Vue and that's a big issue.
Not even sure what you mean by that, but since that looks like a tag, which means markup... and you seem to be talking about scripting, you've already violated one of the separations of concerns, encouraging a bad practice, and possibly even creating accessibility issues.
Also your hate against components seems a bit too much outrage. The theory of reusable code should never be denied, the implementation can maybe be debated.
the thing is if your HTML and CSS is "so complex' you need to turn it into "components' you're doing something wrong -- like probably using JavaScript for things that has no business on a website. You want to play those games with JS server side or in a standalone application built with electron, whatever. But you cross the line into websites with that nonsense and you've pretty much told -- as I keep saying -- large swaths of users to bugger off.
Lemme ask you this, how much of what you build on "websites" results in working pages when client side scripting is disabled, blocked, or otherwise unavailable? Did you build as if JS doesn't even exist first like a good little doobie then enhance with scripting, or is JS your only means of delivering content and functionality?
Cause if it's scripting only, stay away from certain industries in certain countries, or you will find yourself in court for WCAG violations under the US ADA and UK EQA.
I'd actually be interested to see some of your work, though if I did a audit like I do for my clients you might ... react negatively. Take what I said in the "making subsequent pageloads faster" thread about hashnode, and multiply by a factor of ten, and you have what I give prospective clients during negotiations.
Usually when I get a client they're already in trouble and need me to tell them what to fix and how, so they are ready for a laundry list of failings... because business is business.
You give the normal person such a list and they freak out like it's a personal attack. Honestly the way some people react to a simple list of problems makes me wonder how they made it out of grade school, much less not end up rocking back and forth crying in a corner at an actual workplace.
I profile my stuff once in a while, but what I do, as I said, is more comparable to applications served through the browser than a standard presentational website. If turning off script, it wouldn't work at all. End of story. It's specialised software and therefor a requirement that some technical specifications are met. Usually that's as "simple" as Chrome, Firefox, Edge, IE11+.
If I was to make marketing pages trying to appeal to everyone, that would be a whole different story. The audience is an important factor as well.
Some things I have made, might not, from your technical perspective, but 100% efficient, but from my client's perspective I probably saved them 1,000 working hours per year. From there we can talk about technical optimisations. Even if they had to buy a new computer to someone, just to run my "website" it would still be a good deal for everyone.
I wouldn't design a piece of software to solve a direct issue for a client with specific needs, to run on any kind of Operating System. If 99% of my clients use Windows, that would probably be the only supported platform.
The template tag I mentioned is this, and is a completely valid tag: developer.mozilla.org/en-US/docs/Web/HTML/Element…
Emil Moe
Senior Data Engineer
Hi!
In spite of agreeing with your arguments, remember the people from W3 are a main international standards organization for the World Wide Web. It was founded by Tim Berners-Lee, who is inventor of WWW. Calling W3C members and the founder of W3C and of WWW not qualified is an insult to intelligence and reasoning.