php - 如何防止在行尾呈现空白?

标签 php html css

上下文

我有以下代码:

<ul>
    <?php foreach($users as $user){ ?>
    <li>
        <?php echo $user->name ?>
    </li>
    <?php } ?>
</ul>

它呈现:

<ul>
    </ul>

当有 $users ,一切正常。然而,当没有时,<ul>以空格呈现,使其无法归因于 CSS 选择器 :empty .

我通过这样做设法解决了问题:

<ul><?php foreach($users as $user){ ?>
    <li>
        <?php echo $user->name ?>
    </li>
    <?php } ?></ul>

它呈现:

<ul></ul>

如果代码中没有类似的中断,列表现在是空的(甚至没有空格),但我害怕就这样离开它,而其他一些程序员修复了缩进并破坏了它。


我的问题

有没有办法在代码中添加换行符而不添加空格或中断呈现的 html 元素?

最佳答案

My question is: Is there a way to add line breaks to the code without adding blank spaces or breaks to the rendered html element?

您可以使用 HTML 注释

<ul><!--
    <?php foreach($users as $user){ ?>
    --><li><!-- …

此技术也用于 fight the space between inline block elements , 如果您想保持 HTML 代码的可读性。

或者您当然可以使用输出缓冲,然后在将输出返回给客户端之前替换这些空格(相当复杂,如果您想正确地做的话。)

对于您的实际问题,可能是最简单的解决方案:

如果没有任何列表项,为什么还要输出 ul 元素?

if 包围整个 block ,检查数组包含多少元素——如果没有,就不要输出任何东西。

关于php - 如何防止在行尾呈现空白?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36210808/

相关文章:

PHP 网络服务 SOAPClient 错误

php - 在转到下一页表单之前自动提交表单

javascript - 必须在 Backbone.js 中指定 'url' 属性或函数错误

javascript - 使用 javascript 切片数组创建卡片

html - CSS3 Accordion 列表问题

php - 如何在php中将一个字符串变成一个数组

php - 正则表达式用于匹配类似 bbcode 的标签之间的内容

html - 如何更改 flex 子元素的祖先顺序

javascript - CKEditor - 可以有基本样式的上下文菜单吗?

javascript - 当 popover 出现时如何显示背景,当 popover 消失时背景消失?