CSSとの時間旅行:ターゲット

Mar 08, 2025 am 09:41 AM

Time Travelling CSS With :target

CSS、チェックボックス、ラジオボタンのテクニックを使用してゲームを作成することは悪名高い(または広く知られています)。しかし、ユーザー入力に基づいた他の要素は、ゲーミフィケーションに巧妙に利用し、使用することもできます。開発者は、多くの非常にクールなCSSゲームケースを作成しました。これは、:hoverpseudo-categoryに基づいています。 :valid

しかし、私は:ターゲット:targetを使用すると、選択したジャンプリンクに基づいて任意の要素をスタイリングできます。狂った科学者になり、それが私たちをどこに連れて行くことができるか見てみましょう。 CSSの無敵AI これらの言葉を一緒に接続しましたか?特異点に到達するまでCSSを必死に使用する必要がありますか?下のスタイルシートでTic Toeゲームを倒して、自分で決めるようにしてください。

スタイルシートでは、ゲームがネクタイで終了することがあるため、少なくとも銀色の裏地があります。

心配しないでください! CSSはまだSkynetになっていません。他のCSSトリックと同様に、ゲームの数でゲームを実装できるかどうかを判断するための経験則は、ゲームの状態数で可能です。 4×4 Sudokuソルバーを作成できたときにこれに気付き、9×9バージョンを実装することはほぼ不可能であることがわかりました。これは、CSSトリックが最終的にユーザー入力に応答してゲーム状態を非表示にして表示するセレクターに依存しているためです。

Xが最初に進むと、TIC TOEには5478の法的状態が達成でき、あらゆる法的状態で最高の動きを計算できるよく知られているアルゴリズムがあります。したがって、CSSを完全に使用してTIC TOEゲームを実装できます。

わかりました、どうやってそれを行うのですか? ある意味では、私たちはCSSをまったく割れているのではなく、CSSを神の意志として使用しています。 「スマート」は、HTMLが生成される方法にあります。これは、Tic-Toeマルチバースのすべての可能な状態を含む「あなた自身の冒険を選ぶ」本のようなもので、空の正方形がコンピューターの最良の次の動きにつながっています。

Rubyに実装されたMinimaxアルゴリズムのバリアントを使用して生成します。 CodepenがHaml(Ruby Blocksをサポート)をサポートしていることをご存知ですか、Rubyの遊び場として密かに使用できますか?今、あなたは知っています。

私たちのhamlによって生成された各状態は、htmlでこのように見えます:

驚くほどシンプルなCSSだけで、

セレクターを使用して、現在選択されているゲームステータスのみを表示できます。また、コンピューターの歴史的な動きに

クラスを追加します。これにより、コンピューターの最新の動きで手書きアニメーションのみをトリガーします。これにより、私たちはボードでゲームをしているように感じます。実際には、ドキュメントのさまざまな部分の間でジャンプしています。

<div>
  <svg><circle></circle></svg><a href="https://www.php.cn/link/320bc51fecc423dd893a420b42b9719a">
    <div></div>
  </a>

  <svg><circle></circle></svg><svg><circle></circle></svg><div></div>

  <a href="https://www.php.cn/link/7259202cea475e0e98aa076037cc3f15">
    <div></div>
  </a>

  <a href="https://www.php.cn/link/f514659f5c754f0cec51ea59a5e826ae">
    <div></div>
  </a>

  <a href="https://www.php.cn/link/a23eabd0e013e2ef19cc27099204ea18">
    <div></div>
  </a>

  <a href="https://www.php.cn/link/7a50f770e0e910d3beffd653f7c4197e">
    <div></div>
  </a>
</div>
ログイン後にコピー

空の正方形をクリックしてジャンプリンクを選択すると、:targetpseudoクラスに更新されたゲームステータス(.s)が表示され、コンピューターに設定された事前に計算された応答がアニメーション化されています(.c)が表示されます。

ゲームを開始するときの特別な状況に注意してください:ユーザーがジャンプリンクを選択する前に、最初の空のグリッドを表示する必要があります。 スタイルのコンテンツは最初に設定されていないため、ジャンプリンクが選択されると、:targetセレクターを使用して初期状態を非表示にします。同様に、:body:has(:target) #---------を使用して実験を作成する場合、ユーザーがページとの対話を開始する前に、最初のビューをレンダリングする必要があります。 :target

要約

JavaScriptの「より簡単な」アプローチを使用するのではなく、CSSにこれを実装する理由の深さにはなりません。これは、CSSの境界を推進するための楽しく教育的な方法です。たとえば、クラシックなチェックボックスのトリックを使用してこれを行うことができます。実際、誰かがそれを行ったことです。

を使用する興味深いものはありますか?そうだと思います。なぜなら::target

  • CSSでゲームを保存できます! 残して返品したステータスブックマークを使用して、いつでもURLにアクセスします。
  • ブラウザの「バック」および「フォワード」ボタンをゲームコントロールとして使用できます。 動きは、戻ることで取り消すことができます。 Braidの伝統の中でタイムトラベルメカニッ​​クとゲームを作成するために、をチェックボックスのトリックと組み合わせることを想像してください。 :target
  • ゲームのステータスを共有します。 これには、ワードルのような見せびらかしの権利を獲得する可能性があります。 Invincible CSS TIC TOEアルゴリズムに勝つか、描画することができれば、URLを共有することで世界に成果を示すことができます。
  • 完全にセマンティックなHTMLです。 チェックボックスのトリックでは、チェックボックスまたはラジオボタンを非表示にする必要があるため、アクセシビリティに関しては常にスキルと痛みを伴う掘り出し物です。この方法には間違いなくトリックがありません。なぜなら、ジャンプリンクとDIVとそのスタイルを使用しているからです。これは、より簡単なアクセスエクスペリエンスを提供するために、「簡単に言う」とさえするかもしれません。しかし、それは箱から出して簡単にアクセスできると言っているわけではありません。

以上がCSSとの時間旅行:ターゲットの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Vue 3 Vue 3 Apr 02, 2025 pm 06:32 PM

それは&#039; Vueチームにそれを成し遂げてくれておめでとうございます。それは大規模な努力であり、長い時間がかかったことを知っています。すべての新しいドキュメントも同様です。

ブラウザから有効なCSSプロパティ値を取得できますか? ブラウザから有効なCSSプロパティ値を取得できますか? Apr 02, 2025 pm 06:17 PM

私はこの非常に正当な質問で誰かに書いてもらいました。 Leaは、ブラウザから有効なCSSプロパティ自体を取得する方法についてブログを書いています。それはこのようなものです。

CI/CDで少し CI/CDで少し Apr 02, 2025 pm 06:21 PM

「ウェブサイト」は「モバイルアプリ」よりも適していると言いますが、Max Lynchからのこのフレーミングが好きです。

粘着性のあるポジショニングとサスのダッシュを備えた積み重ねられたカード 粘着性のあるポジショニングとサスのダッシュを備えた積み重ねられたカード Apr 03, 2025 am 10:30 AM

先日、Corey Ginnivanのウェブサイトから、この特に素敵なビットを見つけました。そこでは、スクロール中にカードのコレクションが互いに積み重ねられていました。

WordPressブロックエディターでのマークダウンとローカリゼーションを使用します WordPressブロックエディターでのマークダウンとローカリゼーションを使用します Apr 02, 2025 am 04:27 AM

WordPressエディターでユーザーに直接ドキュメントを表示する必要がある場合、それを行うための最良の方法は何ですか?

レスポンシブデザインのブラウザを比較します レスポンシブデザインのブラウザを比較します Apr 02, 2025 pm 06:25 PM

これらのデスクトップアプリがいくつかあり、目標があなたのサイトをさまざまな次元ですべて同時に表示しています。たとえば、書くことができます

スティッキーヘッダーとフッターにCSSグリッドを使用する方法 スティッキーヘッダーとフッターにCSSグリッドを使用する方法 Apr 02, 2025 pm 06:29 PM

CSS Gridは、レイアウトをこれまで以上に簡単にするように設計されたプロパティのコレクションです。何でもするように、少し学習曲線がありますが、グリッドは

Googleフォント変数フォント Googleフォント変数フォント Apr 09, 2025 am 10:42 AM

Google Fontsが新しいデザイン(ツイート)を展開したようです。最後の大きな再設計と比較して、これははるかに反復的です。違いをほとんど伝えることができません

See all articles