The verdict is adjourned

I’ve tried everything. I’ve played the role of prosecutor, defense attorney, and judge. I’ve presented evidence, cross-examined witnesses, and even manipulated the lighting (with background colors) to expose the truth. I’ve summoned AI experts — not once, not twice, but again and again — hoping that a new prompt might unlock clarity. Instead, I got chaos. No consensus. No consistency. No closure. And the judge has gone mad!

As for the jury? Still locked in deliberation. Eleven jurors stare at the floor, unwilling to cast their vote. Only one — brave or reckless, I can’t tell — dared to speak. But one vote does not make a verdict. So, the question remains…

Of course, I’ve tried my little experiment again. And again. Each time with a different prompt — yet always the same question, the same HTML. And each time, the results mutate. The same AI model that once swore by padding-left now preaches margin-left with equal fervor — and vice versa. Ask it again, and it flips back. Change the wording slightly, and it spins a new tale.

Because I flip too. One moment, I’m convinced it’s margin-left. The next, I’m sure it’s padding-left. Then I reread my own posts, retrace my logic, and end up doubting everything. I cannot make up my mind. And I desperately need the jury’s help.

This isn’t just a technical dilemma anymore. It’s a psychological trap. I can’t write. I can’t move forward. I can’t even sleep properly. My mind loops endlessly through indentation logic, box model semantics, and the haunting echo of “best practices.” I’m obsessed with finding the right answer — not just a good-enough solution, but the answer. The final ruling. The truth. But maybe that’s the problem.

With most programming languages there are frameworks and guides and heuristics that all make up a suite of best practices. CSS doesn’t really have anything like this and as a result it’s kind of a mish-mash of good rules to follow, definite don’ts, and lots and lots of grey area.Rob Dodson

Maybe there is no verdict. Maybe this trial was never meant to end. Maybe the courtroom is a mirror — and the jury is me, twelvefold. But that would only be true iIf I were not abiding by the Cogitactive principles. If I were not me. I am strong-willed. Stubborn, even. And I do not give up.


One night — one of those sleepless, obsessive nights — I had a thought. A crazy thought. A stroke of genius or the delusion of a mind pushed too far, I couldn’t tell. But it was enough to bring relief. For once, I slept.

So, what was this idea? A killer test. Not another subjective opinion. Not another AI-generated claim. But a simple, objective, transparent test. One that could rule out one of the two properties — definitively. If that property failed, preference wouldn’t matter. The case would be solved. The verdict pronounced. And this never-ending series on the <section> element could finally be closed.

Ironically, it all came back to anchor links — the very feature that first led me into the semantic storm. My endeavor to turn headings into link targets. You know the behavior: when you click a link to a specific heading in a post, the browser doesn’t take you to the top of the page — it scrolls directly to the heading. Okay, just below it in my theme — an annoying issue I still need to fix. Anyway, that feature motivated me to add anchors to my headings. And that’s how I stumbled into the <section> rabbit hole (see Turning headings into link targets—cont’d).

The browser window will scroll itself (instantly) into such a position where the element with the ID of “section-two” is visible. It scrolls to the minimum possible position to make that element wholly visible. This is typically a matter of scrolling the window down, but do note that if any scrollable parent container were to require horizontal scrolling to make the element visible, the browser will do that as well.Chris Coyier

“Wait — horizontal scrolling?”

One of the key differences between margin-left and padding-left is that margin pushes the entire box to the right, away from the left boundary of the column. Padding, on the other hand, doesn’t move the box — it simply creates internal spacing, keeping the box left-aligned. So, if the browser truly scrolls horizontally to reveal an element, then linking to a deeply nested heading — styled with margin-left — should cause the viewport to shift right. Especially on small screens, where every pixel counts.

And that would be a disaster.

Not only would the visual hierarchy be lost (the indent invisible to someone landing mid-post), but the user would have to scroll left to reach a non-nested section. Talk about bad UX! This was it. The deal-breaker. The test that could potentially kill margin-left. I could see the light at the end of the tunnel. I could touch the grail with the tip of my finger — like in Indiana Jones and the Last Crusade.

When I put my idea to the test, the dream slipped away. No matter how absurdly large I made the margin — even up to 90% of my 525px column — the browser stubbornly displayed the full column. The result? A squished heading, one letter stacked below the other, crammed into the right edge of the column. And a vast, empty space on the left.

Horizontal scroll does exist. But it only kicks in when the target element is outside the viewport. And no matter how big the margin, my nested sections remain inside the column — and the column is always in view. The test that was supposed to end it all… ended itself. So much for the killer test — it didn’t survive contact with reality.

So once more, I beg you — the jury, or any expert out there — come to my aid…