为啥添加 php 代码后,我的布局变坏了?

Posted

技术标签:

【中文标题】为啥添加 php 代码后,我的布局变坏了?【英文标题】:Why after adding php code, my layout is gone bad?为什么添加 php 代码后,我的布局变坏了? 【发布时间】:2021-10-01 04:36:00 【问题描述】:

我的布局有问题。 当我在 html 上添加 php 代码时,一些 HTML 标记开始移动。我想创建一张包含信息的卡片。它有标题(某种图像)和正文(标题 - 类别 - 文本)。当我在没有 php 的情况下尝试它时,只是使用随机文本,一切都很好。但是,添加php代码后,我的header和body分开了。

没有php的html代码

<a class="card_article" href="#">
    <div class="card_header">
        <img src="img/avatar2.png" >
    </div>
    <div class="card_body">
        <p class="bid_link">Название статьи</p>
        <p>Категория: Программирование</p>
        <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when...</p>
    </div>
    <div class="go-corner" href="% url 'places:detail' i.id %">
        <div class="go-arrow">
            →
        </div>
    </div>
</a>

带有php代码的html

<?php 
    $articles = mysqli_query($connection, "SELECT * FROM `articles` WHERE `categories_id` = 3   ORDER BY `id` DESC LIMIT 10");
?>
<?php 
    while ( $art = mysqli_fetch_assoc($articles) )
    
        ?>
        <a class="card_article" href="#">
            <div class="card_header">
                <img src="style/images/<?php echo $art['image']; ?>" >
            </div>
            <div class="card_body">
                <a class="bid_link" href="/article.php?id=<?php echo $art['id']?>"><?php echo $art['title']; ?></a>
                <?php
                    $categories = mysqli_query($connection, "SELECT * FROM `articles_categories`");
                ?>
                <?php 
                    $cat = mysqli_fetch_assoc($categories)
                ?>
                <?php
                    $art_cat = false;
                    foreach( $categories as $cat )
                    
                        if( $cat['id'] == $art['categories_id'] )
                        
                            $art_cat = $cat;
                            break;
                        
                     
                ?>
                <p class="under">Категория: <a href="/categotie.php?id=<?php echo $art_cat['id']; ?>"><?php echo $art_cat['title']?></a></p>
                <p class="under"><?php echo mb_substr($art['text'], 0, 60, 'utf-8');?> ...</p>
            </div>
            <div class="go-corner" href="% url 'places:detail' i.id %">
                <div class="go-arrow">
                    →
                </div>
            </div>
        </a>
        <?php
    
?>

另外,我在 google 查看代码中注意到,我的 html 代码(我自己编写的)与 google 代码查看中的代码不匹配。

【问题讨论】:

感谢您的合作,但没有帮助。 我添加了新的描述,请注意。我将感谢您的任何帮助。 【参考方案1】:

您可以开始使您的代码更简单,即删除多余的 php 括号。

这是完全相同的代码的一个更轻量级的版本

<?php 
    $articles = mysqli_query($connection, "SELECT * FROM `articles` WHERE `categories_id` = 3   ORDER BY `id` DESC LIMIT 10");
    while ( $art = mysqli_fetch_assoc($articles) )
    
        ?>
        <a class="card_article" href="#">
            <div class="card_header">
                <img src="style/images/<?php echo $art['image']; ?>" >
            </div>
            <div class="card_body">
                <a class="bid_link" href="/article.php?id=<?php echo $art['id'] . "\">" . $art['title'] . "</a>";
                    $categories = mysqli_query($connection, "SELECT * FROM `articles_categories`");
                    $cat = mysqli_fetch_assoc($categories);
                    $art_cat = false;
                    foreach( $categories as $cat )
                    
                        if( $cat['id'] == $art['categories_id'] )
                        
                            $art_cat = $cat;
                            break;
                        
                     
                ?>
                <p class="under">Категория: <a href="/categotie.php?id=<?php echo $art_cat['id'] . "\">" . $art_cat['title'] . "</a></p>"; ?>
                <p class="under"><?php echo mb_substr($art['text'], 0, 60, 'utf-8');?> ...</p>
            </div>
            <div class="go-corner" href="% url 'places:detail' i.id %">
                <div class="go-arrow">
                    →
                </div>
            </div>
        </a>
        <?php
    
?>

那么,严格来说,您的手动代码和生成的代码是不一样的。 您的代码中有多个链接,这些链接在您的手动示例中不存在,即&lt;p class="bid_link"&gt;Название статьи&lt;/p&gt; 成为您代码中的锚。

您应该删除所有锚点并生成与手动编写的代码完全相同的代码,然后逐步添加锚点,直到找到罪魁祸首。

您生成的代码中可能有一些东西会改变 CSS。

【讨论】:

以上是关于为啥添加 php 代码后,我的布局变坏了?的主要内容,如果未能解决你的问题,请参考以下文章

window下的AMP环境,安装PhpMyadmin,为啥我的浏览器打开php文件后只显示代码?

为啥更换模拟器后我的 VC 会移位?自动布局

尝试使用自动布局将 UIButton 添加到我的视图中,但它没有出现。为啥? [关闭]

为啥 PHP 会弄乱我的 CSS?

为啥这些受约束的布局有不同的尺寸?

为啥我的约束不能正常工作?