User blog comment:Rappy 4187/Guide to Infoboxes/@comment-166269-20130116005658

Some comments, notes, and observations from a (very) long-time template editor:
 * If you have even the slightest inclination of needing auto-hiding rows, code the table using HTML instead of wikimarkup. Yes, this will make the template code longer and potentially more visually cluttered, but in the long run it can save you huge headaches in trying to work around the table markup, since there's no need to escape it with ! & friends. In addition, even though it's more cluttered, such code is actually easier to work with, since the table markup is visually unique from the wikimarkup used to hide stuff.
 * If you're not sure of what to put in your infobox, bank on the near-certainty that someone else has already created an infobox for exactly what you want, and start Googling around. Find something you like and either copy it wholesale (though make sure to properly attribute it and be careful of any dependencies!) or use it as inspiration for what info your infobox should include.
 * Don't use IDs. From the perspective of CSS, there is no real difference between a class and an ID, but from the perspective of HTML there is; any given ID can only appear once on a given page, and you would be surprised what sorts of things actually end up being used more than once. Save yourself headaches and second-guessing, and just always use classes for CSS styling.
 * Think about a metatemplate. Most wikis will end up using several different infoboxes, and maintaining existing infoboxes/setting up new infoboxes gets to be a headache if a lot of the code is the same between them. Turn this headache to your favor, and make a generic infobox metatemplate, as Lachlan5963 suggests. Again, Google is your friend here if you don't want to or aren't comfortable with developing one from scratch.