Oscar Diaz and warning people away from sleazy scam-bait isn't contributing? Suggesting there might be a better way isn't contributing? Advocating good practices that depending on the type of website can keep you out of COURT isn't contributing?
Maybe you'd care to defend the viewpoint? Prove me wrong? Or are you just going to go "wah wah, is not" just because I used some harsh words?
Explain to me how using that 311 bytes of markup to do 109 bytes job is somehow magically "better"! Tell me why we should throw separation of presentation from content in the trash even though it en-masse tells large swaths of users to sod off whilst pissing all over bandwidth thanks to failing to leverage cache properly.
What possible defense can there be for making MORE work and ignoring every single intent and point of HTML? Much less, how can ANYONE claim that it's 'easier' or 'more productive' apart from utter and complete IGNORANCE?
Do you know what's wrong with the snippet I posted? Do I have to tell you why having the first content-bearing member of a page be a H5 is semantic gibberish? Why you shouldn't use classes like text-center or text-dark to say what things look like? Why pretty much ALL of those classes belong in the trash can? Why dumping anchors blindly into NAV just gives screen readers and braille readers a run-on sentence instead of an actual menu?
... and that's taken right out of one of bootcrap's examples. It PROVES the people who created and use bootstrap *do not know enough about HTML to be telling others how to build websites!
Remember, unless you use HTML 5's SECTION tag, THE (singular) H1 is THE (singular) heading (singular) that everything on every page of a website is a subsection of. An H2 is the start of a major subsection of the page with the first H2 being your main content (hence MAIN is a pointless redundancy unless you have a legitimate reason to have headers out of order), and H3 indicates the start of a subsection of the H2 preceding it, an H4 indicates the start of a subsection of the H3 preceding it, down the line to H6... with HR indicating a change in section or topic where a numbered heading is unwanted or unwarranted. THEY DO NOT MEAN
"fonts in different weights and sizes" or "draw a line across the screen" -- that is JUST their default appearance. Of course if they break the page into sections and subsections, why do we need a SECTION tag? If the first H2 is the start of the content and why have 'main' why do we need NAV?!?
... of course all section really does is drop you back to H1 depth.
Taking that into consideration how the blazes can you start a document with a H5? How can you have an H5 without a H4 for it to indicate the start of a subsection of? HTML semantics is based on professional writing norms, and writing code like that ends up more like it was created by a dyslexic who dropped out of grade school!
See, these norms were taught when I was in school sometime around the fourth grade; though I hear nowadays this stuff isn't covered until second year of college for English majors?
NONE of the examples for Bootstrap 4 use proper semantics, none of the frameworks you can point me at maintain separation of presentation from content, and none of them simplify a blasted thing. They can't even be bothered to use a bloody media="" attribute on their links -- because of course their screen media layout makes so much sense for print and aural!
They are ANOTHER of the many things that as a accessibility consultant I have to go into clients sites and rip out to completely start over from scratch with. JUST like CSR, improper use of JavaScript with no graceful degradation, and all the other hot and trendy mentally enfeebled TRASH that people seem to be singing the praises of right now no matter how badly they're lining up to drop their pants and bend themselves over the table!
Hence why any COMPETENT programmer wouldn't have code like this 1.83k of developer ineptitude:
<link href="../../dist/css/bootstrap.min.css" rel="stylesheet">
<link href="pricing.css" rel="stylesheet">
</head>
<body>
<div class="d-flex flex-column flex-md-row align-items-center p-3 px-md-4 mb-3 bg-white border-bottom box-shadow">
<h5 class="my-0 mr-md-auto font-weight-normal">Company name</h5>
<nav class="my-2 my-md-0 mr-md-3">
<a class="p-2 text-dark" href="#">Features</a>
<a class="p-2 text-dark" href="#">Enterprise</a>
<a class="p-2 text-dark" href="#">Support</a>
<a class="p-2 text-dark" href="#">Pricing</a>
</nav>
<a class="btn btn-outline-primary" href="#">Sign up</a>
</div>
<div class="pricing-header px-3 py-3 pt-md-5 pb-md-4 mx-auto text-center">
<h1 class="display-4">Pricing</h1>
<p class="lead">Quickly build an effective pricing table for your potential customers with this Bootstrap example. It's built with default Bootstrap components and utilities with little customization.</p>
</div>
<div class="container">
<div class="card-deck mb-3 text-center">
<div class="card mb-4 box-shadow">
<div class="card-header">
<h4 class="my-0 font-weight-normal">Free</h4>
</div>
<div class="card-body">
<h1 class="card-title pricing-card-title">$0 <small class="text-muted">/ mo</small></h1>
<ul class="list-unstyled mt-3 mb-4">
<li>10 users included</li>
<li>2 GB of storage</li>
<li>Email support</li>
<li>Help center access</li>
</ul>
<button type="button" class="btn btn-lg btn-block btn-outline-primary">Sign up for free</button>
</div>
</div>
... and would instead have written this:
<link
rel="stylesheet"
href="template/screen.css"
media="screen,projection,tv"
>
</head><body>
<div id="top">
<h1>Company name</h1>
<ul id="mainMenu">
<li><a href="#">Features</a></li>
<li><a href="#">Enterprise</a>
<li><a href="#">Support</a>
<li><a href="#">Pricing</a></li>
<li class="signup"><a href="#">Sign up</a></li>
</ul>
</div>
<div id="content">
<div id="pricing">
<h2>Pricing</h2>
<p>
Quickly build an effective pricing table for your potential customers with this Bootstrap example. It's built with default Bootstrap components and utilities with little customization.
</p>
<div class="product">
<h3>
<span>Free</span>
<small><strong>$0</strong> / mo</small>
</h3>
<ul>
<li>10 users included</li>
<li>2 GB of storage</li>
<li>Email support</li>
<li>Help center access</li>
</ul>
<a href="#">>Sign up for free</a>
</div>
Nearly half the code. Of course that means you might actually have to learn CSS and how to make layouts instead of blindly cookie-cutter copying what the framework does -- perish the thought.
Probably around 1k of it, which means at BEST all those dumbass presentational classes accomplished (apart from pissing on separation of presentation from content and the entire intent of HTML) is shifting around where code is being written, not how much. That's at BEST.
But as I've said for nearly a decade and a half, if you're going to use classes like "text-center" or "bg-white" or "p-3 px-md-4 mb-3" you might as well go back to writing HTML 3.2 without CSS whatsoever -- since it's clear people who write their HTML this way greatly miss their tables for layout and deprecated tags like FONT and CENTER!
... but of course then when I say these things people accuse me of being the one being stuck in the past, when if you advocate or support these practices you are the one who's cranium is wedge up late 1990's browser-war era practices!
Though what can you expect when people spent over a decade and a half sleazing out HTML 3.2 and slapping 4 tranny atop it... today they just wrap 5 lip-service around the same bloated, broken, inaccessible outdated practices so they can pat themselves on the back over how "modern" they are.... and why? Because 4 strict was "too hard" (when it was actually simpler) Because concepts like separation of presentation from content (the entire reason CSS even EXISTS) or multiple media targets is 'too hard'? Because screw caching?
Sure... I'm the one stuck in the past.
and that's before we talk the mental midgetry of these front-end frameworks derping in JavaScript to do CSS' huffing job like a early '00's version of Dreamweaver!