Help Creating CSS Tables with ROWSPAN

Sorry I’m not sure what you are trying to do here :). You don’t need to change anything in my demo unless your requirements have changed?

Again I don’t know what you mean? Are you changing the headers now?

You’ll have to be a bit more explicit as to what you are changing or adding.

The css grid rules define the structure so if you are changing that structure then the grid rules will need to change.

My example has two headers placed in semantic positions in the html unlike Dave’s example (sorry Dave) which has two headers next to each other which is not semantically correct. I know this is only for your own use but I still like code to be semantic. :slight_smile:

No worries. I was doing it as much as a mental exercise to see it could be done as anything…and a good example of when the template functionality should be used.

2 Likes

Paul, I didn’t mention this and that’s my fault: There is exactly one – and only one – of the Turquoise header. This is going to be a somewhat lengthy list comprised of at least 100 rows to start with and could easily approach 1000. I was trying to add more rows but couldn’t get the block of code I was guessing at to work. Perhaps you or Dave could show me – precisely, because I don’t know what I’m doing – what I’ll be appending to add new rows.

If you look up I posted the block of code I made my best effort at guessing at but it doesn’t show. Stranger in a strange land . . .

Can you clarify the structure a little more please ?

Do you now just want one heading spanning both columns?

The left column (as presently displayed) has one row only?

The right column could have loads of rows (unlimited rows)?

Can you confirm the above or clarify if I have misunderstood?

Based on what you have said you end up with something like this now:

I’m so sorry Paul! I’ll whip up a graphic for you . . .

Everyone – I sincerely apologize for the confusion. I’m attaching an example of this project showing EIGHT ROWS. It will be manifestly longer than 8 rows – however! what the graphic isn’t showing you is that the three stacked rows (effectively, the Right Column) will predominantly consist of data that doesn’t exceed 2 lines . . . and frequently will have 1 line of data or have no data at all.

Why this is important: those 3 rows (forming the Right Column) will be populated with data that – taken as a whole – will loosely mirror in length the multi-line data of the first cell (the Left Column).

I was going to demonstrate for you a facsimile of the final product . . . but I couldn’t figure out how to add more rows! That’s why I was asking for help: I couldn’t just cut & paste (what looked to me to be) the “break point” in the code because I’m in a 2D/3D environment (a stranger in a strange land) where the laws of a flat table no longer apply. This will be a considerably tighter product than the white rice of the graphic sample I just uploaded. The striping will display to better effect, as well (although I’m seriously considering colorizing the background of one of the two columns following a chromatic scale).

Knowing what the project is in fact is it worth revisiting a Flexbox approach for my table? I would actually like to know how to replicate the concept of ROWSPAN in a Flexbox for future reference. This design – one cell spanning multiple rows – is one I am going to return to frequently. Can it be done?

That looks like you are just repeating everything again except the headers so you can basically copy the whole container and repeat it without the headers

E.G.

Just keep repeating the whole container.

Thank you Paul. I’ll go with it and if I have questions I’ll report back.

May I ask if ROWSPAN can be adapted for a Flex table? I really hunted for an example but couldn’t find one. Surely Flex could handle something like ROWSPAN? Just point me in the right direction – a snippet of code will work and I’ll try and build it out from there . . .

I’m uncertain this is going to work as a Grid Paul. The reason I say that is because this isn’t going to be a static file: different fonts will appear; the order of the rows will change – including and most particularly the very first row.

What I’m concerned about is the extent to which your code is inheritable. Or maybe we can change it to be more durable to content changes that will upset the order.

And different fonts will appear. Here for example is an expanded catalog of fonts . . . and styles to match them. As you can see from the output I’ve obviously upset something by introducing another 8 fonts (12 total, not counting Roboto Slab on the body and a few extra that I want available but not for this table).

I can see in places where you’ve carefully introduced blocks of code for just the 4 fonts you understood represented the entire catalog of fonts. My bad.

It seems Grid is ideal for a static design but mine will be dynamic and if we have to lock in any position – for any font – to make it work the page breaks the minute I introduce fresh content . . . or remove any. Do you see what I’m saying?

Please look at the code I’m posting below. It is rife with errors but I can’t understand where they are because I have no experience with Grid.

And below the code I’ll upload an extended screenshot for one specific reason: the margins are off by not a little bit. At the top are 2 lavender bars, one each side. I should be seeing the slimmed-down left and right margins of 5% that I/we rewrote. The width of each of these bars is 54px (5% of my screen width, everything else being equal.). So they are off by a not-small bit and on a small screen like my phone (1080px) I badly want the enlarged real estate.

’nuff about margins. Following is a creative adaptation which shows just how much I know about Grid: NOTHING! It is of course not even remotely the outcome I want but you’ll probably have no trouble instantly seeing my errors. So – font changes + an extended screenshot below the code.

Feel free to hop in here Dave. Do you know if ROWSPAN can be represented in a Flex Table? I’d like to hear about it. Because I have a feeling my project is way too volatile an environment for Grid . . .

–semicodin

<!DOCTYPE html>
<HTML LANG="en">
<HEAD>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="preconnect" href="https://fonts.googleapis.com"> 
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>

<link href="https://fonts.googleapis.com/css2?family=Calistoga&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Chicle&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Courier+Prime:ital,wght@0,400;0,700;1,400;1,700&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Crete+Round:ital@0;1&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Encode+Sans:wght@400;500;600;700;800;900&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Encode+Sans+Semi+Condensed:wght@400;500;600;700;800;900&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Encode+Sans+Condensed:wght@400;500;600;700;800;900&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Henny+Penny&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Meddon&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Metal+Mania&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=New+Rocker&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Ribeye+Marrow&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,500;0,700;0,900;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,400;0,700;1,400;1,700&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Sancreek&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Uncial+Antiqua&display=swap" rel="stylesheet">

<TITLE>96 GRID &#7172; &ldquo;Tables-B-Gone&rdquo; by Paul O&rsquo;Brien</TITLE>

<style>
/*lower case for selectors please */
html,
body {
  margin: 0;
  padding: 0;
}
p {
  margin: 0 0 1rem;
}
body {
  margin: 5% 2.5rem;
  font-size: 1rem;
  line-height: 1;
  font-weight: 500;
  font-family: "Roboto Slab", sans-serif;
}
.container {
  display: grid;
  margin: 0 auto;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto;
  grid-template-areas:
    "header1 header2"
    "cou cre"
    "cou hen"
    "cou met";
  border-bottom: 6px solid black;
}

.container > div:nth-of-type(odd){background-color: #FFFFCC}
.container > div:nth-of-type(even){background-color: white}

.col1header,
.col2header {
  margin: 0;
  background: black;
  color: #fff;
  font-size: 1rem;
  padding: 8px;
  text-align: center;
  line-height: 1;
  font-weight: 600;
  font-family: "Roboto Slab", sans-serif;
  border: 6px groove #00FFFF;
  border-top-color: #00FFFF;
  border-left-color: #00FFFF;
}

.col1header {
  grid-area: header1;
  border-right: none;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.col2header {
  grid-area: header2;
  border-left: none;
}

.cal {
  grid-area: cal;
  background-color: white;
  line-height: 1.5;
  font-weight: 600;
  font-size: 1rem;
  font-family: "Calistoga";
}
.chi {
  grid-area: chi;
  background-color: white;
  line-height: 1.5;
  font-weight: 600;
  font-size: 1rem;
  font-family: "Chicle Display";
}
.cou {
  grid-area: cou;
  background-color: white;
  line-height: 1;
  font-weight: 700;
  font-size: 1rem;
  font-family: "COURIER PRIME", monospace;
}
.cre {
  grid-area: cre;
  background-color: white;
  font-style: italic;
  line-height: 1.1;
  font-weight: 400;
  font-size: 1rem;
  font-family: "CRETE ROUND", serif;
}
.enc {
  grid-area: enc;
  background-color: white;
  line-height: 1.5;
  font-weight: 600;
  font-size: 1rem;
  font-family: "Encode Sans Semi Condensed";
}
.hen {
  grid-area: hen;
  background-color: white;
  line-height: 1.5;
  font-weight: 400;
  font-size: 1rem;
  font-family: "HENNY PENNY";
}
.med {
  grid-area: med;
  background-color: white;
  line-height: 1.5;
  font-weight: 600;
  font-size: 1rem;
  font-family: "Meddon";
}
.met {
  grid-area: met;
  background-color: white;
  line-height: 1;
  font-weight: 400;
  font-size: 1rem;
  font-family: "METAL MANIA";
}
.new {
  grid-area: new;
  background-color: white;
  line-height: 1.5;
  font-weight: 600;
  font-size: 1rem;
  font-family: "New Rocker";
}
.rib {
  grid-area: rib;
  background-color: white;
  line-height: 1.5;
  font-weight: 600;
  font-size: 1rem;
  font-family: "Ribeye Marrow";
}
.rob {
  grid-area: rob;
  background-color: white;
  line-height: 1.5;
  font-weight: 600;
  font-size: 1rem;
  font-family: "Roboto Slab";
}
.san {
  grid-area: san;
  background-color: white;
  line-height: 1.5;
  font-weight: 600;
  font-size: 1rem;
  font-family: "Sancreek";
}
.unc {
  grid-area: unc;
  background-color: white;
  line-height: 1.5;
  font-weight: 600;
  font-size: 1rem;
  font-family: "Uncial Antiqua";
}
.cou,
.cre,
.hen,
.met {
  padding: 6px;
}
.cou {
  border-left: 6px solid black;
  border-right: 1px solid black;
}
.cre,
.hen,
.met {
  border-left: 1px solid black;
  border-right: 6px solid black;
  border-bottom: 2px solid black;
}
.met {
  border-bottom: none;
}

.font-name {
  text-transform: uppercase; /* Let css handle presentation not the mark up*/
}
</style>
</head>

<body>

<div class="container">

  <h2 class="col1header">Header for the left Column</h2>

<!-- Paul, I parked this here temporarily: -->
  <h2 class="col2header">Header for the right Column with more text to wrap</h2>

<div class="CAL">
<p>This is a sample of the Google Font
<span class="font-name">&ldquo;Calistoga&rdquo;</span> &ndash; a bold serif.</p>
</div>

<div class="CHI">
<p>This is a sample of the Google Font
<span class="font-name">&ldquo;Chicle&rdquo;</span>
&ndash; a condensed, &ldquo;groovy&rdquo; font in a bold weight</p>
</div>

<div class="COU">
<p>This is a sample of the (bolded) Google Font
<span class="font-name">&ldquo;Courier Prime&rdquo;</span>
&ndash; a Monospace font developed by Mozilla!</p>
</div>

<div class="CRE">
<p>This is a sample of the Google Font <i>
<span class="font-name">&ldquo;Crete Round&rdquo;</span>
</i> &ndash; shown here italicized</p>
</div>

<div class="ENC">
<p>This is a sample of the Google Font
<span class="font-name">&ldquo;Encode Sans Semi Condensed&rdquo;</span>
&ndash; a clean sans-serif &ndash; with multiple condensed versions and generous font weights &ndash; from the foundry Impallari Type</p>
</div>

<div class="HEN">
<p>This is a sample of the Google Font
<span class="font-name">&ldquo;HENNY PENNY&rdquo;</span>
&ndash; <b>a playful display font</b> by font developer &ldquo;brownfox&rdquo;</p>
</div>

<div class="MED">
<p>This is a sample of the Google Font
<span class="font-name">&ldquo;Meddon&rdquo;</span>
&ndash; an authentic &lsquo;quill handwriting&rsquo; font from font developer Vernon Adams</p>
</div>

<div class="MET">
<p>This is a sample of the Google Font
<span class="font-name">&ldquo;Metal Mania&rdquo;</span>
&ndash; a Gothic font rendered in small caps, particularly suited to <b>SHAKESPEARE EXCERPTS</b> I have found.</p>
</div>

<div class="NEW">
<p>This is a sample of the Google Font
<span class="font-name">&ldquo;New Rocker&rdquo;</span> &ndash; another quality font from the foundry Impallari Type, this one <b>a Gothic font</b> borrowing heavily from &ldquo;Blackletter&rdquo; and &ldquo;Olde English&rdquo; (but readable!)</p>
</div>

<div class="RIB">
<p>This is a sample of the Google Font
<span class="font-name">&ldquo;Ribeye Marrow&rdquo;</span>
&ndash; a playful font by &ldquo;Astigmatic&rdquo; very popular in the 1930s and frequently used in greeting cards. A solid version is also available.</p>
</div>

<div class="SAN">
<p>This is a sample of the Google Font
<span class="font-name">&ldquo;Sancreek&rdquo;</span>
&ndash; a bold, mixed-case font evoking the Circus; another entry from font developer Vernon Adams</p>
</div>

<div class="UNC">
<p>This is a sample of the Google Font
<span class="font-name">&ldquo;Uncial Antiqua&rdquo;</span>
&ndash; a style used throughout the early Middle Ages, heavily used in manuscripts of the era</p>
</div>

</div>

</body>
</html>

It will work fine as a grid and my last example shows how multiple lines can work.

It makes no difference what fonts you change as you can change every single row by just adding a class with the font name to the item you want to change.

I’m out this morning but will put up an example of multiple fonts later.

In essence you never needed rowspan even in your table (as the data was not tabular) as you could simply have two cells and put content in each cell as required. e.g. one div on the left and then 3 divs on the right (or whatever) all contained in one table row.

Flex can do this layout also and would be much the same as the grid layout. You basically just keep repeating two columns and stack one or more rows in each column as required.

Indeed you could do this many ways but you will always keep running into issues if you don’t visualise the structure properly and add changes to the wrong elements.

Let me simplify the html later today and get rid of all the duplication you had in place. What you are asking is really pretty straight forward in that you just apply a class to the element you want to change.

Just create the class for your new font, size, color etc (only code the differences).

e.g. add the class chi to .item to make changes.

<div class="item chi">

.chi {
  font-weight: 600;
  font-family: "Chicle Display";
/* and whatever else you want that is different*/
}

You can have as many rows in each column as you like and then you just keep repeating the whole container for each new row as required.

1 Like

A flex example is almost the same as the grid example except the rules are slightly more complex.

The headings have to be moved together which is less semantic but the rest of the html is the same as grid.

1 Like

Yaaaaa! I figured out how to Quote. One small step for man, one giant leap . . .

It looks good Paul but I have questions: When I’m adding (eg.) ROW 913: are you telling me that I have to escape 913 DIVS in preparation for the next row to follow??!!

Is this what you meant by “the rules are slightly more complex”? Complex is the opposite of what I’m looking for. SIMPLE. That is what I’m looking for – or to split hairs: As little code as possible. And by that I do not mean RUNONTEXTWITHOUTAFRIENDLYSPACE to be found! (you guys are killing me! lol)

  • Which of the two has the least code: GRID or FLEX?
  • Which can more cleanly be parsed for purposes of recognizing – and then extractinga row: GRID or FLEX?
  • Which little demon of the two LAYOUTS requires the most calculation: GRID or FLEX?
  • Which of the two can have its BLOCKS (rows) MOVED AROUND/deleted without (or as little) affecting the other blocks’ rendering correctly

I have no idea what you mean? :slight_smile:

Whether you add one div or the one millionth the process is the same just as it would be for any repetitive action.

There is no extra work because it’s the one millionth entry. It’s the same as it would be for the second entry.

Grid is best on all the above points.

What you can’t do though is remove stuff illogically and break the structure. You have to be organized and understand the structure.

It’s like accidentally deleting a closing table row tag in a table and you break the whole thing.

The grid example is two columns in a container. You just repeat that structure and put your items into each column as required.

It’s about a million times simpler than doing all that in a table with rowspan etc.

2 Likes

I’ll take your advice over anyone’s Paul. SOLD.

No the reason I said 913 times is because I thought I saw a chain of four divs, cascading, each closing their row out to get back to the, er, root thing. But I may have just been processing one of the dozens of articles and posts and examples I’ve been reading over the past couple of weeks. My brain is over saturated with fontish business.

What I would like to do is run your Codepen on all the fonts and using anonymized text, see how everyone likes it and Ö get recommendations as to styling. (sound of Paul dropping his pint, mouth suspended, open).

Yes ladies and germs let’s talk COLOR. But first I need to complete a string of these fonts in my 1 + 3 layout. I’m gonna be in and out of here so ships bells me hearties.

:ocean: semicodin

Paul I wanted to give you the link for that guy’s Codepen. I tried to mod it but fuggedaboudit lol. Anyway here is another Paul . . . https://codepen.io/Paulie-D/pen/OVvVgr

Gollie. :laughing:

What guy? Did i miss something?

That is broken in so many ways right from the very first fixed height (schoolboy error).

That will not work in any real form except for 4 colored boxes without content. If you add too much content the boxes will wrap awkwardly or overlap into different shapes.

To be fair it probably does what you asked for in that one box stretches to match the three but is unusable in the real world. It could be fixed easily but I have already given flex examples anyway and I’m not going to fix other peoples code in this thread. :wink:

4 Likes

hi guys, paul . . . well i gave up yesterday after 3 hours and decided to just produce a one column page but place all the text that goes in col-b ➤for that row, in blue. the rest of the content can just remain as you see it.

i just need to study it a bit to know how and where the blocks of text have been moved into col-b. there are exactly 12 blocks we’re talking about – not big! i realized after agreeing that simple was better, that isn’t exactly correct, and can translate into one enormous headache.

if you suggest code that is so advanced (and leaner) than what i’ve been plodding along with for 30 years i won’t be able to work with it because it will be as cuneiform to me. when i look at a table i see its familiar skeleton and know exactly where to cut out a slice to move it/delete it. i just wanted to clarify that and remind you that neither archibald or myself have in fact ever been able to get just a table for this little devil to work correctly.

there are a handful of errors from the validator but fortunately there are identical sections of code w3 ignores so i’m not sweating over it. i cleaned up a lot of this yesterday and today, in an effort aaking this as easy to work with as possible: in this iteration each row contains one font, in various sizes. mixing the fonts up is a bit down the road for me but with this i can make a start.

i had fun with this! i’m a huge agatha christie fan so at least it won’t be boring! also uploading a graphic. i’ll check back frequently! —s
none layout semicodin

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>

<link href="https://fonts.googleapis.com/css2?family=calistoga&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=chicle&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=courier+prime:ital,wght@0,400;0,700;1,400;1,700&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=crete+round:ital@0;1&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=encode+sans:wght@400;500;600;700;800;900&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=encode+sans+semi+condensed:wght@400;500;600;700;800;900&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=encode+sans+condensed:wght@400;500;600;700;800;900&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=henny+penny&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=metal+mania&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=new+rocker&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=ribeye+marrow&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=roboto+slab:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=roboto:ital,wght@0,400;0,500;0,700;0,900;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=roboto+condensed:ital,wght@0,400;0,700;1,400;1,700&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=sancreek&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=special+elite&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=uncial+antiqua&display=swap" rel="stylesheet">

<!--  ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬  -->
<title><99 visual aid &#7172; &ldquo;no tables, no grid, no flex&rdquo; just blue by semicodin</title>

<style>
* {
        margin: 0;
        padding: 0;
        border: 0;
        outline: 0;
}
body {
        margin-left: 5%;
        margin-right: 5%;
        margin-top: 54px;
        margin-bottom: 54px;
        font-size: 1em;
        line-height: 1;
        font-weight: 500;
        font-family: 'roboto slab', sans-serif;
}
.bdrup {
        margin-top: 1.88rem;
        margin-bottom: .5rem;
        border-top: 4px solid crimson;
}
.grpbd {
        font-weight: bold;
}

.blu {color: blue}
.crim {color: crimson}
.crimu {color: crimson; text-decoration: underline;}
.undr {text-decoration: underline}

.bold4 {font-weight: 400}
.bold5 {font-weight: 500}
.bold6 {font-weight: 600}
.bold7 {font-weight: 700}
.bold8 {font-weight: 800}
.bold9 {font-weight: 900}

.cal {font-family: "calistoga"}  /* using filler to use up one font */
.chi {font-family: "chicle"}  /* using filler to use up one more font */

/*  here are our “ten little soldier boys!” . . . */

.cou {font-family: "courier prime"; font-weight: bold;}
.cre {font-family: "crete round"}
.enc {font-family: "encode sans semi condensed"}
.hen {font-family: "henny penny"}
.met {font-family: "metal mania"}
.new {font-family: "new rocker"}
.rib {font-family: "ribeye marrow"}
.san {font-family: "sancreek"}
.spe {font-family: "special elite"}
.unc {font-family: "uncial antiqua"}

/*  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  */
#agatha {
        font-style: italic;
        text-decoration: underline;
        line-height: 1.5;
        font-weight: 400;
        font-size: 1.5rem;
        font-family: 'calistoga', cursive;
}
#clair {
        font-style: italic;
        line-height: 1.5;
       font-weight: 400;
        font-size: 1.5rem;
        font-family: 'chicle', cursive;
}

.aa {line-height: 1.1; font-weight: 400; font-size: 1.5rem;}
.bb {line-height: 1.1; font-weight: 400; font-size: 1.25rem;}
.cc {line-height: 1.1; font-weight: 400; font-size: 1.13rem;}
.dd {line-height: 1.1; font-weight: 400; font-size: .88rem;}
.ee {line-height: 1.1; font-weight: 400; font-size: .75rem;}
.ff {margin-top: 1.25rem; line-height: 1.1; font-weight: 400; font-size: .63rem;}

.aab {line-height: 1.1; font-weight: bold; font-size: 1.5rem;}
.bbb {line-height: 1.1; font-weight: bold; font-size: 1.25rem;}
.ccb {line-height: 1.1; font-weight: bold; font-size: 1.13rem;}
.ddb {line-height: 1.1; font-weight: bold; font-size: .88rem;}
.eeb {line-height: 1.1; font-weight: bold; font-size: .75rem;}
.ffb {margin-top: 1.25rem; line-height: 1.1; font-weight: bold; font-size: .63rem;}

.bbbl {line-height: 2; font-weight: bold; font-size: 1.25rem;}
.ffl1 {line-height: 1; font-weight: bold; font-size: .63rem;}
.ffl2 {line-height: 2; font-weight: bold; font-size: .63rem;}

/*  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  */
/* pulling roboto slab frm lineup (defaults to body) */
.rob {
        font-weight: 600;
        font-family: "roboto slab";
}
/* just style the differences using an extra class*/

</style>
</head>

<body>

i’ve made this as simple as possible with 1) a red border for instantly seeing where the boundaries of your row are, and 2) **all the text in blue forms col-b for that font**. just lift and paste (welllll maybe not quite that easy).

<!--  ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬   --> 
<div class="bdrup"></div>

<div style="font-style: italic; text-decoration: underline; line-height: 1.5; font-weight: 400; font-size: 1.5rem; font-family: 'calistoga', cursive;">
&ldquo;and then there were none&rdquo;</div>

<div class="cal">
<div class="ff">
<p>this is a sample of the google font &ldquo;calistoga&rdquo; &ndash; a bold serif.</p>
</div>
<!--  should close col-a  +  keep calistoga for col-b  -->

<!--  commences col-2 w/its 3 rows   -->
<div class="blu">

<div class="bb">
is a 1945 black and white film adaptation</div>
<div class="cc">
of agatha christie&rsquo;s 1939</div>
<div class="dd">
mystery novel of the same name,</div>

</div>        <!--  should close calistoga   -->
</div>        <!--  closes the blue (col-b)  -->

<!--  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━ -->
<div class="bdrup"></div>

<div style="font-style: italic; line-height: 1.5; font-weight: 400; font-size: 1.5rem; font-family: 'chicle', cursive;">

. . . directed by rené clair. clair&rsquo;s</div>

<div class="chi">
<div class="ff">
<p>this is a sample of the google font <span class="font-name">&ldquo;chicle&rdquo;</span> &ndash; a condensed, &ldquo;groovy&rdquo; font in a bold weight</p>
</div>

<!--  should close col-a  +  keep chicle for col-b  -->

<!--  commences col-b w/its 3 rows   -->
<div class="blu">

<div class="bb">
film adaptation is considered</div>
<div class="cc">
the finest adaptation ever made by</div>
<div class="dd">
film critics and fans to this day.</div>

</div>        <!--  should close chicle -->
</div>        <!--  closes the blue (col-b)  -->

<!--  ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬  -->
<!--  thus beginneth the 10 remaining fonts:   -->

<div class="bdrup"></div>
<div class="cou">
<div class="aab">
ten little soldier boys</div>

<div class="ffl1">
<p>this is a sample of both the <b>bolded</b> and the <i>style-onlyl</i>bolded google font
<span class="font-name">&ldquo;courier prime&rdquo;</span>
&ndash; a monospace font developed by mozilla! <b>important: courier prime needs to be</b> <span class="crim">bolded</span> <span class="crimu">inline</span>. placing it in the style does not work. however! the &lt;b&gt; and &lt;&#47;b&gt; tags work beautifully w&#47;o using 700. just sayin&rsquo;  :)</p>
</div>

<!--  should close col-a  +  keep courier prime for col-b  -->

<!--  commences col-b w/its 3 rows   -->
<div class="blu">

<div class="bbb">
went out to dine;</div>
<div class="ccb">
one choked his little self and</div>
<div class="ddb">
then there were nine.</div>

</div>         <!--  should close courier prime -->
</div>        <!--  closes the blue (col-b)  -->

<!--  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━ -->
<div class="bdrup"></div>
<div class="cre">
<div class="aab"><i>
nine little soldier boys</i></div>

<div class="ff">
<p>this is a sample of the google font <i>
<span class="font-name"><b>&ldquo;crete round&rdquo;</b></span>
</i> &ndash; shown here italicized</p>
</div>

<!--  should close col-a  +  keep crete round for col-b  -->
<div class="blu">

<div class="bbb">
sat up very late;</div>
<div class="ccb">
one overslept himself and</div>
<div class="ddb">
then there were eight.</div>

</div>         <!--  should close crete round -->
</div>        <!--  closes the blue (col-b)  -->

<!--  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━ -->
<div class="bdrup"></div>
<div class="enc">
<div class="aab">
eight little soldier boys</div>

<div class="ff">
<p>this is a sample of the google font
<span class="font-name"><b>&ldquo;encode sans semi condensed&rdquo;</b></span> a clean sans-serif &ndash; with multiple condensed versions and generous font weights &ndash; from the foundry impallari type</p>
</div>

<!--  should close col-a  +  keep encode sans semi condensed for col-b  -->
<div class="blu">

<div class="bbb">
travelling in devon;</div>
<div class="ccb">
one said he&rsquo;d stay there and</div>
<div class="ddb">
then there were seven.</div>

</div>       <!--  should close encode sans semi condensed -->
</div>       <!--  closes the blue (col-b)  -->

<!--  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━ -->
<div class="bdrup"></div>
<div class="hen">
<div class="aab">
seven little soldier boys</div>

<div class="ffl2">
<p>this is a sample of the google font <b>&ldquo;henny penny&rdquo; &ndash; a playful display font</b> by font developer &ldquo;brownfox&rdquo;  you have to make substantial extra allowance for line-height on this font.</p>
</div>

<!--  should close col-a  +  keep henny penny for col-b  -->
<div class="blu">

<div class="bbbl">
chopping up sticks;</div>
<div class="ccbl">
one chopped himself in halves and</div>
<div class="ddbl">
then there were six.</div>

</div>         <!--  should close henny penny -->
</div>        <!--  closes the blue (col-b)   -->

<!--  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━ -->
<div class="bdrup"></div>
<div class="met">
<div class="aa">
six little soldier boys</div>

<div class="ff">
<p>this is a sample of the google font <span class="font-name"><b>&ldquo;metal mania&rdquo;</b></span>
&ndash; a gothic font rendered in small caps, particularly suited to <b>shakespeare excerpts</b> i have found.</p>
</div>

<!--  should close col-a  +  keep metal mania for col-b  -->
<div class="blu">

<div class="bb">
playing with a hive;</div>
<div class="cc">
a bumblebee stung one and</div>
<div class="dd">
then there were five.</div>

<!--  close metal mania  / closing div removed to validate  -->
</div>        <!--  closes the blue (col-b)   -->

<!--  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━ -->
<div class="bdrup"></div>
<div class="new">
<div class="aa">
five little soldier boys</div>

<div class="ff">
<p>this is a sample of the google font
<span class="font-name"><b>&ldquo;new rocker&rdquo;</b></span> &ndash; another quality font from the foundry impallari type, this one <b>a gothic font</b> borrowing heavily from &ldquo;blackletter&rdquo; and &ldquo;olde english&rdquo; (but readable!)</p>
</div>

<!--  should close col-a  +  keep new rocker for col-b  -->
<div class="blu">

<div class="bb">
going in for law;</div>
<div class="cc">
one got in chancery and</div>
<div class="dd">
then there were four.</div>

<!--  close new rocker / closing div removed to validate  -->
</div>        <!--  closes the blue (col-b)   -->

<!--  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━ -->
<div class="bdrup"></div>
<div class="rib">
<div class="aab">
four little soldier boys</div>

<div class="ff">
<p>this is a sample of the google font
<span class="font-name"><b>&ldquo;ribeye marrow&rdquo;</b></span>
&ndash; a playful font by &ldquo;astigmatic&rdquo; very popular in the 1930s and frequently used in greeting cards. a solid version is also available.</p>
</div>

<!--  should close col-a  +  keep ribeye marrow for col-b  -->
<div class="blu">

<div class="bbb">
going out to sea;</div>
<div class="ccb">
a red herring swallowed one and</div>
<div class="ddb">
then there were three.</div>

</div>         <!--  should close ribeye marrow -->
</div>        <!--  closes the blue (col-b)  -->

<!--  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━ -->
<div class="bdrup"></div>
<div class="san">
<div class="aa">
three little soldier boys</div>

<div class="ff">
<p>this is a sample of the google font
&ldquo;sancreek&rdquo; &ndash; a bold, mixed-case font evoking the circus; another entry from font developer vernon adams</p>
</div>

<!--  should close col-a  +  keep sancreek for col-b  -->
<div class="blu">

<div class="bb">
walking in the zoo;</div>
<div class="cc">
a big bear hugged one and</div>
<div class="dd">
then there were two.</div>

</div>         <!--  should close sancreek -->
</div>        <!--  closes the blue (col-b)  -->

<!--  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━ -->
<div class="bdrup"></div>
<div class="spe">
<div class="aab">
two little soldier boys</div>

<div class="ff">
<p>this is a sample of the google font
<span class="font-name"><b>&ldquo;special elite&rdquo;</b></span>
&ndash; a manual typewriter with distressed keys.</p>
</div>

<!--  should close col-a  +  keep special elite for col-b  -->
<div class="blu">

<div class="bbb">
sitting in the sun;</div>
<div class="ccb">
one got frizzled up and</div>
<div class="ddb">
then there was one.</div>

</div>         <!--  should close special elite -->
</div>        <!--  closes the blue (col-b)  -->

<!--  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━  ━ -->
<div class="bdrup"></div>
<div class="unc">
<div class="aa">
one little soldier boy</div>

<div class="ff">
<p>this is a sample of the google font
<span class="font-name"><b>&ldquo;uncial antiqua&rdquo;</b></span>
&ndash; a style used throughout the early middle ages, heavily represented in the color bibles and manuscripts (usually) coming from monasteries and other religious orders. monks trained for years (decades!) to become a scribe.</p>

<!--  should close col-a  +  keep uncial antiqua for col-b  -->
<div class="blu">

<div class="bb">
left all alone;</div>
<div class="cc">
he went out and hanged himself and</div>
<div class="ddb">
<b>then there were none.</b></div>

</div>         <!--  should close uncial antiqua -->
</div>        <!--  closes the blue (col-b)  -->

<!--  ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬  -->
<!--   cal = calistoga       -->
<!--   chi = chicle       -->

<!--   cou = courier prime       -->
<!--   cre = crete round       -->
<!--   enc = encode sans semi condensed -->
<!--   hen = henny penny     -->
<!--   met = metal mania       -->
<!--   new = new rocker       -->
<!--   rib = ribeye marrow      -->
<!--   san = sancreek      -->
<!--   spe = special elite     -->
<!--   unc = uncial antiqua      -->

<!-- there is no bucket here  -->

</body>
</html>

Here is the approach with two tables I suggested:

1 Like