【问题标题】:Hide elements with php or css?用 php 或 css 隐藏元素?
【发布时间】:2023-03-10 13:17:01
【问题描述】:

是否有隐藏元素的“标准”或语义首选方法?使用 php 有两个简单的选择:

<?
if ( $_URL == "/page/" ){
?>
<div id="page">
  <div class="hide-or-show">
    stuff
  </div>
</div>
<?
}
<?

或使用css:

<css>
.hide .hide-or-show {
  display:none;
}
</css>

<div id="page" class="<? if ( $_URL == "/page/" ) print "hide"; ?>">
  <div class="hide-or-show">
    stuff
  </div>
</div>

这两种方法都会从查看器中移除元素。 php 方法会发送更少的代码。 css 方法看起来更简洁(假设您要删除的元素不止一个)。

一种方法比另一种更“正确”吗?还是只是程序员的偏好?

【问题讨论】:

  • 取决于您隐藏该信息的原因。如果是 s00per-s33krit 密码,则根本不要发送。不能偷你没有的东西。
  • 第一种情况你不渲染它。
  • 我应该提供一些背景知识:当使用头文件和尾文件为索引文件仅包含 (head.php) [此处的内容] 包含 (tail.php) 的站点创建 shell 时)。隐藏的原因可能是 2 列与 1 列布局、添加/隐藏横幅、标题图像等。
  • 如果您使用 CSS 隐藏,您可以轻松添加取消隐藏它的 Javascript。如果一开始不发送,则需要重新加载或使用AJAX添加。
  • 我的假设是,如果它不显示,它就不会显示

标签: php css semantics


【解决方案1】:

第一种方法更好。 您不会向客户端发送不必要的代码,从而使您的代码性能更好。 仅当您需要在某个时刻显示元素时才使用 css 隐藏。

【讨论】:

    【解决方案2】:

    这取决于您的需求。一般来说,我会说如果页面上永远不需要它(即,它不会根据任何参数或用户操作动态显示/隐藏),那么根本不要发送它。对我来说,动态生成其他代码(PHP 对 HTML 所做的)的最干净的输出没有包含任何不必要的内容。

    【讨论】:

    • 这对我来说是说你更喜欢前端代码的简单性而不是后端?我想这就是这个问题的归结。
    • 我喜欢所有代码的简单性;鉴于您必须在某处拥有隐藏逻辑,问题就变成了:您是否有 CSS 中的隐藏逻辑与更混乱的 HTML 输出,或者 PHP 中的隐藏逻辑与干净的 HTML 输出。无论哪种方式,您都有隐藏逻辑,因此归结为更清晰的 HTML 输出。我可能倾向于全栈工作,因此无论逻辑是在 PHP 还是 CSS 中,这最终都是我的责任......
    【解决方案3】:

    这里使用 css 是隐藏数据的最佳方式,因为它将在客户端机器上执行,每次使用 php 时总是更可取,我们必须向服务器发出请求,这也是更好的方式,但总是客户端执行是最好的和有效的方式。

    所以只需使用 css 而不是编写 php 脚本

    【讨论】:

    • 是什么让它变得更好或更高效?
    【解决方案4】:

    如果您稍后需要数据/元素,例如你打算使用 JavaScript 来展示它:

    CSS 是一种可接受的解决方案,您可以使用 Javascript 轻松更改类。

    如果您以后不需要:

    通过 PHP 进行“隐藏”很好,因为从技术上讲,它永远不会在 HTML 中呈现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-12
      • 1970-01-01
      • 2020-11-30
      • 2020-05-21
      • 2023-03-22
      • 1970-01-01
      • 2014-07-23
      • 1970-01-01
      相关资源
      最近更新 更多