看起来PHP回声循环正在抵消CSS弹性框。
代码仍会动态显示,并且字体等正确对应于CSS,但是在页面上,“ a”标记不会换行。它们扩展到页面之外。

当我删除动态生成的“ a”标签并对其进行硬编码时,它们将自动换行。

您如何建议我将php内容循环到html中,并使其与CSS flex box一起使用?


  的CSS


.flex-center {
align-items: center;
display: flex;
justify-content: center;
}



  HTML / PHP


    <div class="flex-center position-ref full-height">
        <div class="content">
            <div class="links">
                <?php
                foreach ($channels as $channel) {
                    $count ++;
                    echo   "<a>dasdsadsad</a>";
                }
                ?>
            </div>
        </div>

最佳答案

PHP不在乎换行。除非您明确要求回显换行符,否则它不会回显换行符。例如,可以使用以下代码完成此操作:

foreach ($channels as $channel) {
    $count ++;
    echo   "<a>dasdsadsad</a>\n";  // note `\n` in the end of string
}


更跨平台的解决方案是使用PHP_EOL(行尾)常量,根据服务器的操作系统,该常量包含"\r\n""\n"

foreach ($channels as $channel) {
    $count ++;
    echo   "<a>dasdsadsad</a>" . PHP_EOL;
}


同样这样的事情也可能起作用(但需要检查):

foreach ($channels as $channel) {
    $count ++;?>
    <a>dasdsadsad</a>
<?php
}


CSS还包括@devpro解决方案:

.flex-center .links a { display: block; }

10-04 21:32
查看更多