jsがオフになっているときのブラウジング体験を向上させるために、ユーザーにjsをオンにすることをお勧めします。私は絶対divでこれを行うことを考えていました、そして私がこれを宣言した直後に、jsを通してそれを隠します(これを行う方法の他の考えは大歓迎です)。ただし、jsがオフになっているときに、ボタンを使用してこのdivを非表示にするにはどうすればよいですか?
4 に答える
CSS3では、フォーム入力疑似クラスを使用できます。たとえば、チェックボックスをオンにした後のdivは、特定の方法でスタイル設定(または非表示)できます。簡単な例については、このjsfiddleを参照してください。
<style>
:checked + div {
display: none;
}
</style>
…
<input type="checkbox" name="foo">
<div id="hideme">Hide me by checking the checkbox</div>
投稿を含むページをリロードするか、サーバーへのリクエストを取得しない限り、jsなしでプログラムでdivを「非表示」にする方法はありません。
noscript
本当に必要な場合は、タグを使用できます。
<noscript>FOO BAR</noscript>
しかし、javascriptなしでそれを隠す方法はありません。
divは良い考えです。
divを非表示にする代わりに、divが含まれていないページにユーザーを誘導するためのリンクを作成するだけです。
@kojiroのソリューションに示されているように、CSS3を介してこれを行うことができます。ただし、次にページが読み込まれるときにそのdivを非表示にすることもできます。そうしないと、訪問者が煩わしくなります。このため、CSS3トリックを実行するだけでなく、送信時にユーザーがdivを表示したくないことをシステムに通知するフォームを含むiframeをそのdiv内にロードすることもできます。次に、ビジネスロジックは、iframeフォームが送信されたときにユーザーのIPを記録する必要があります。PHPでは、これはたとえば
$_SERVER['REMOTE_ADDR'];
.jsがオフになっているため、セッションを使用できないため、これをデータベーステーブルに記録する必要があります。ユーザーが次のページを読み込んだら、ユーザーのIPを記録し、そのテーブルで検索します。存在する場合は、divの解析を無効にします。Fe
<?php
if (!$disableDiv)
echo "put the div";
?>