2

我想建议用户在关闭 js 时打开 js 以获得更好的浏览体验。我想用一个绝对的 div 来做这件事,在我声明这个之后,直接通过 js 隐藏它(欢迎任何其他想法如何做到这一点)。但是,当 js 关闭时,如何让用户通过按钮隐藏此 div?

4

4 回答 4

6

使用 CSS3,您可以使用表单输入伪类。例如,选中复选框后的 div 可以以特定方式设置样式(或隐藏)。有关简单示例,请参阅此 jsfiddle

<style>
:checked + div {
    display: none;
}
</style>
…
<input type="checkbox" name="foo">
<div id="hideme">Hide me by checking the checkbox</div>
于 2012-12-14T19:13:35.380 回答
2

div 是个好主意。

无需隐藏 div,只需创建一个链接将用户定向到其中没有 div 的页面。

于 2012-12-14T19:12:12.773 回答
2

除非您使用帖子重新加载页面或获取对服务器的请求,否则无法在没有 js 的情况下以编程方式“隐藏” div。

noscript如果你真的想,你可以使用标签。

<noscript>FOO BAR</noscript>

但是没有javascript就没有办法隐藏它。

于 2012-12-14T19:10:58.840 回答
0

您可以通过 CSS3 来做到这一点,如@kojiro 的解决方案所示。但是,您还希望在下次页面加载时隐藏该 div,否则您会惹恼您的访问者。出于这个原因,您可能希望在该 div 中加载一个 iframe,其中包含一个不仅可以执行 CSS3 技巧而且还可以在提交时让系统知道用户不想再显示该 div 的表单。然后,您的业务逻辑需要在提交 iframe 表单时记录用户的 IP。在 PHP 中,这是例如

$_SERVER['REMOTE_ADDR'];

由于 .js 已关闭,因此您无法使用会话,因此您必须将其记录在数据库表中。当用户加载下一页时,记录用户的 IP 并在该表中查找。当它存在时,禁用 div 解析。铁

<?php
if (!$disableDiv)
echo "put the div";
?> 
于 2012-12-14T19:39:11.583 回答