使用php隐藏Div

问题描述 投票:5回答:6

我目前正在隐藏基于if语句的div。我使用的方法是,使用echo css风格的display: none

这是我具体做的事情:

<style>
  #content{
    <?php
      if(condition){
          echo 'display:none';
      }
    ?>
  }
</style>
<body>
    <div id="content">
       Foo bar
    </div>
</body>

我的问题是,这是一个隐藏div的好方法吗?是否有可能浏览器缓存样式,因此忽略了echo-ed out css样式?

php css caching html hide
6个回答
11
投票

在CSS中使用Php(级联样式表)不是“正确的”,

此外,您可以在HTML中使用Php:

<body>
    <?php if (condition){ ?>
        <div id="content">
           Foo bar
        </div>
    <?php } ?>
</body>

使用此代码,div块不会出现,(并且您不会将它与JavaScript一起使用),您可以使用它来隐藏您的div:

 <body>
    <div id="content" <?php if (condition){ echo 'style="display:none;"'; } ?>>
       Foo bar
    </div>
</body>

2
投票

为什么不创建一个类:

<style>
    .hidden {
        display: none;
    }
</style>

而不是应用它与PHP:

<div id="content" <?php print ( condition ? 'class="hidden"' : '' ); ?> >

1
投票

这不是隐藏div的最佳方式。由于PHP是在服务器端解析的,因此您可以使用if语句包含或排除div而不是回显CSS类。对CSS类有用的唯一时间是,如果您计划稍后使用JavaScript在页面上显示div,而用户在页面本身上。


0
投票

你可以:

<div runat="server" id="theDiv"> 

Code behind is
{
theDiv.Visible = False;
}

要么

大多数人会使用javascript

以下是一个可以帮助你的线程:

Javascript if else statement to hide and show div


0
投票

是的,这是隐藏div的标准方法。关于浏览器缓存,它不应该缓存它,因为它不在外部样式表中。


0
投票

我通常会尽量避免在CSS中使用PHP Conditionals;特别是内联CSS(同一页面上的CSS)。

我会将CSS保存在自己的CSS文件中,并使用PHP条件向DIV添加“隐藏”类 - 或者根本不回显DIV。

<link rel="stylesheet" type="text/css" href="style.css" />
<body>
    <div id="content" <?php if(conditional) : ?>class="hide"<?php endif;?>>
       Foo bar
    </div>
</body>

或者

<?php $class = (conditional) ? "hide" : ""; ?>

<link rel="stylesheet" type="text/css" href="style.css" />
<body>

    <div id="content" class="<?=$class?>">
       Foo bar
    </div>
</body>

要么

<link rel="stylesheet" type="text/css" href="style.css" />
<body>

    <?php if (conditional) : ?>
    <div id="content">
       Foo bar
    </div>
    <?php endif; ?>
</body>

很多时候需要输出div,因此可以使用JavaScript(例如旋转木马,滑块等)重新显示div。

© www.soinside.com 2019 - 2024. All rights reserved.