douzhaobo6488 2016-03-24 22:05
浏览 18
已采纳

如何防止在线端渲染的空格?

The context

I have the following code:

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

It renders:

<ul>
    </ul>

When there are $users, everything works well. However, when there aren't, the <ul> is rendered with blank spaces in it, making it not attributable with the CSS selector :empty.

I managed to solve the problem by doing this:

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

It renders:

<ul></ul>

Without the like breaks in the code, the list is now empty (even empty of blank spaces), but I'm afraid to leave it that way and some other programmer fix the indentation and break it.


My question

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

  • 写回答

5条回答 默认 最新

  • doujiekeyan0622 2016-03-24 22:14
    关注

    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?

    You could use HTML comments

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

    This is a technique also used to fight the space between inline block elements, if you want to keep the HTML code readable.

    Or you could of course use output buffering, and then replace those spaces before you return the output to the client (rather complex, if you want to do it right.)

    And probably the most simple solution of all to your actual problem:

    Why output the ul element at all, if there are not going to be any list items?

    Surround the whole block with an if that checks how many elements the array contains – and just don’t output any of that stuff if there aren’t any.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥60 pb数据库修改或者求完整pb库存系统,需为pb自带数据库
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路