【问题标题】:HIde a div with a PHP echo statement with CSS用 CSS 隐藏一个带有 PHP echo 语句的 div
【发布时间】:2016-08-22 17:45:49
【问题描述】:

我正在使用 CSS display:none 在我的 html 代码中隐藏 div。它适用于包含一般 html 内容并隐藏内容的 div。

但是,如果 div 恰好包含 PHP echo 语句,它不会隐藏内容。

HTML

<span class="paginationFull"><?php echo $paginationCtrls;?></span>
<span class="paginationMini"><?php echo $paginationCtrlsMob;?></span>

CSS

.paginationFull{display:none}

基本上,我希望在桌面和迷你分页控件中显示完整的分页控件(如果是 320 像素 - 420 像素)。我认为 CSS display:none 将是一个很好的简单方法。有谁知道如何做到这一点?谢谢你的帮助。安迪 ;-)

【问题讨论】:

  • 那些是span 标签而不是div 标签,但是php 在html / css 之前被解析,所以你的css 应该应用于echo 的内容,无论它是否来自php。 - 您是否应用了其他可能会干扰的课程?
  • 也许你在.css 文件上有错误,或者你没有将.css 文件包含到页面header
  • 在浏览器中检查你的 HTML 源代码,它看起来像你期望的那样吗?
  • 或者$pageinationCtrls 中可能存在错误的 HTML。打开浏览器的开发者控制台检查 DOM 和 CSS。
  • 我真的不知道你的逻辑是什么,但看看这个 >.如果满足条件,这使您可以隐藏跨度。或者更好的是,试试 js

标签: php html css


【解决方案1】:

除了在 span 中有某种“破坏”DOM 的 HTML 之外,span 标签内的内容应该不会有什么不同,因此 HTML 不再有效。

除此之外,您还应该使用 CSS 媒体查询:

https://wiki.selfhtml.org/wiki/CSS/Media_Queries#device-width

【讨论】:

    【解决方案2】:

    有一些很好的php 库可以检测用户是在手机上还是在桌面上。然后,您可以使用它来控制使用哪个导航。

    使用http://mobiledetect.net/的示例

    include 'Mobile_Detect.php';
    $md = new Mobile_Detect();
    
    if($md->isMobile()){
        echo '<span class="paginationMini">' . $paginationCtrlsMob . '</span>';
    }else{
        echo '<span class="paginationFull">' . $paginationCtrls . '</span>';
    }
    

    display:none 应该可以工作,无论您在&lt;span&gt; 标记内是否有 echo 语句。关于为什么它在您的情况下不起作用的唯一解释是 php 变量是否包含未正确关闭的标签。

    【讨论】:

    • 酷,谢谢你的例子,这就是我要找的。​​span>
    猜你喜欢
    • 1970-01-01
    • 2021-05-25
    • 2020-04-07
    • 2021-01-02
    • 2012-12-02
    • 1970-01-01
    • 1970-01-01
    • 2012-07-30
    相关资源
    最近更新 更多