The credit really goes to Alex Gill above for suggesting this, but as he didn't leave it as an answer (or give any details ;), I figured that I should. In Views 3, the last option under 'Advanced' (the third column) is 'Theme: Information' - clicking this get you a whole bunch of override suggestions. In my case I created a new template file called 'views-view-fields--**parent-items**.tpl.php', with the '**parent-items**' part being the name of my view. You'll see already customised file names for your particular view under 'Theme: Information'. In this file (placed in the root of your theme directory) I used conditionals to check if each field existed, before printing it out with the li tags inside those conditionals. See below: <ul id="parent-items"> <?php if (!empty($fields['name_5']->content)): ?> <li><?php print $fields['name_5']->content; ?></li> <?php endif; ?> <?php if (!empty($fields['name_4']->content)): ?> <li><?php print $fields['name_4']->content; ?></li> <?php endif; ?> <?php if (!empty($fields['name_3']->content)): ?> <li><?php print $fields['name_3']->content; ?></li> <?php endif; ?> <?php if (!empty($fields['name_2']->content)): ?> <li><?php print $fields['name_2']->content; ?></li> <?php endif; ?> <?php if (!empty($fields['name_1']->content)): ?> <li><?php print $fields['name_1']->content; ?></li> <?php endif; ?> </ul> [name_1] to [name_5] are my field names, which can be found under the replacement patterns section for each field. In order to have this work well I also disabled all markup generated by views. Thanks Alex for the idea, and Елин Й. for a pretty clever suggested workaround.