This is an archive of past discussions about Template:Navbox. Do not edit the contents of this page. If you wish to start a new discussion or revive an old one, please do so on the current talk page.
This would need to be tested with multiple other configurations e.g. subboxes and groups, and all of those have a reason themselves anyway. Width of 1px is there to ensure certain cells are guaranteed to be the minimum size, and padding is insufficient for e.g. the image cell (and I suspect is there for whitespace between rows). Izno (talk) 16:13, 29 April 2025 (UTC)
We want to minimize the width of the group cells, and setting their width to 1px does so. Or did so, I'm not sure which. That's why those are set to 1px in those locations. Izno (talk) 16:08, 1 May 2025 (UTC)
You were mentioned via being quoted, because of your earlier question. (Technically, not a direct quote. A translated version of your comment was attributed to you.) Whatback11 is continuing to mirror the conversation between the Korean and English versions of this discussion. (With translations of each comment.) I'll now be mentioned as well, presumably. FeRDNYC (talk) 09:06, 14 May 2025 (UTC)
I'm confused. Module:Navbox hasn't changed since January, yet I can find no :css('padding','3px') on line 531, no :css('width','1px') on line 171, and no :css('width','1px') on line 255.
In general principle, though, applying inline styles when generating HTML programmatically is a code smell. Even if those styles are needed, that's what style classes are for. It's as easy to generate a class="" attribute as it is to generate a style="" attribute, and the class="" doesn't screw up your carefully-planned CSS (or interfere with being able to make design updates down the road just by tweaking that CSS).
And if the styles apply in certain specific situations that can only be determined algorithmically, that's fine. (Although it's surprising just how much you can accomplish using pure CSS, thanks to pseudo-classes like :first-child, :nth-of-type, and if you can afford to get really fancy, :has().) But even in code-only situations, it's still better to define a new class to represent those cases, :addClass()that in the code, and apply the styles to the class instead of inline. (We have TemplateStyles for a reason, after all.)
The overuse of inline styles is almost certainly a big part of why there are so many ugly !important rules in the various site and skin CSS files, as designers then try to force the CSS to override style="" attributes. And when it comes to code smells, they don't get much stinkier than !important.
So, IOW — and purely in my opinion (though it's not a particularly humble one, in this instance) — if "the group cells" need to have a width of 1px, and only the code can determine what's a group cell...
Bad
ifi_am_a_group_cell_and_I_have_an_image-- or whateverthenrow:tag('td'):stuffStuff():css('width','1px')
I think the reason this is inline CSS and not classes is that the class names would be just as long as what is added inline, or something to that effect. What they're doing here also doesn't have any particular need to be overwritten by arbitrary other requirements. (I'm not particularly compelled to defend the position.)
That said, this section isn't about them being inline but instead solely about their existence at all. Izno (talk) 17:04, 14 May 2025 (UTC)