最新のWeb開発は、スライダー、モーダル、ツールチップなどの動的な要素を作成するためにCSSを活用し、JavaScript Relianceを最小限に抑えることがよくあります。この記事では、「より多く/少ない」機能を実装するための純粋なCSSアプローチを示し、機能的なアコーディオンスタイルの例を作成することさえあります。 テクニック、潜在的な問題、およびソリューションを探ります。 ここではアクセシビリティの考慮事項は省略されていますが、将来の改善のための重要な側面です。
重要な概念:
このCSSのみの「より多く/少ない」は、「チェックボックスハック」と兄弟セレクターに依存しています。 HTML構造は、順序付けられていないリストを使用します。最後のアイテムには、非表示のチェックボックスとそのラベルが含まれています。ネストされた順序付けられていないリストは、表示/非表示のコンテンツを保持します。およびmax-height
CSSプロパティは、スムーズな公開/隠蔽を制御します。 ブラウザの不一致が存在する可能性があります。たとえば、カーソルの動作はブラウザ間で異なる場合があります
transition
以下を理解することが不可欠です:
- 一般的な兄弟セレクター(
- ):指定された要素に従ってすべての兄弟を選択します。
~
隣接する兄弟セレクター( ) - :兄弟の直後の兄弟を選択します。
- a codepenデモ(入力で提供されていないリンク省略)は、これらの手法のインタラクティブな例を提供します。 html構造:
基本的なHTML構造は(オリジナルから単純化されています):
チェックボックスコンテナのスタイリング:
<ul> <li>Item 1</li> <li>Item 2</li> <li class="container"> <input type="checkbox" id="showHide"> <label for="showHide"></label> <ul> <li>Hidden Item 1</li> <li>Hidden Item 2</li> </ul> </li> </ul>スタイルスタイルラベルを配置してチェックボックスを非表示にします:
ラベルのコンテンツ(「more」または「less」)とアニメーションは、pseudo-elements(
and)を使用して処理されます。
.container
最初にネストされた
.container { position: relative; height: auto; } [type="checkbox"] { position: absolute; left: -9999px; } label { background: #e4e3df; display: block; width: 100%; height: 50px; cursor: pointer; position: absolute; top: 0; }を隠します
::before
::after
css:
label:before, label:after { position: absolute; } /* ... (styles for :before and :after based on checked state) ... */で
を模倣します
<ul></ul>
チェックボックスのチェック状態は、非表示のコンテンツを明らかにします:
[type="checkbox"] ~ ul { display: none; }
ラベルの位置とコンテンツは、チェック時に調整されます:
onclick
CodePenデモ(リンク省略)この基本的なトグル効果を紹介します。
スムーズな遷移の追加:
[type="checkbox"]:checked ~ ul { display: block; }より滑らかな遷移の場合、
および
:[type="checkbox"]:checked + label { top: 100%; } /* ... (styles for :before and :after when checked) ... */を使用してください
ラベルの遷移も更新されます:
Codepenデモ(リンク省略)は、改善された、よりスムーズな遷移を示しています。
ブラウザの考慮事項:max-height
transition
[type="checkbox"] ~ ul { overflow: hidden; max-height: 0; transition: max-height .45s cubic-bezier(.44,.99,.48,1); } [type="checkbox"]:checked ~ ul { max-height: 300px; /* Or a calculated height */ }
結論:
label { transition: top .45s cubic-bezier(.44,.99,.48,1); }
この記事は、「より多く/少ない」機能性を示す強力なCSSのみのアプローチを示しています。 制限が存在しますが(主にブラウザの矛盾と事前に決められたmax-height
の必要性が必要です)が、この手法は多くのシナリオに対してクリーンでJavaScriptを含まないソリューションを提供します。 インタラクティブなコンポーネントを構築するときは、常にアクセシビリティを優先することを忘れないでください
以上が純粋なCSSを使用して「より多く/少ない」機能を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

FlexBoxまたはグリッドの選択は、レイアウト要件によって異なります。1)FlexBoxは、ナビゲーションバーなどの1次元レイアウトに適しています。 2)グリッドは、雑誌のレイアウトなどの2次元レイアウトに適しています。この2つは、レイアウト効果を改善するためにプロジェクトで使用できます。

CSSファイルを含める最良の方法は、タグを使用してHTMLパーツに外部CSSファイルを導入することです。 1.タグを使用して、外部CSSファイルを導入します。 2。小さな調整のために、インラインCSSを使用できますが、注意して使用する必要があります。 3.大規模プロジェクトでは、@Importを介して他のCSSファイルをインポートするために、SASS以下などのCSSプリプロセッサを使用できます。 4。パフォーマンスのために、CSSファイルをマージし、CDNを使用し、CSSNANOなどのツールを使用して圧縮する必要があります。

はい、Youはrelearnbothlexboxandgrid.1)FlexBoxisidealforone-Dimensional、FlexiblleayoutslikenavigationMenus.2)Gridexcelsintwo-digsignssuchasmagazinelayouts.3)Bothenhanceslaysutibulivedibulisunivedivition、floctonsulururを

独自のコードをリファクタリングするのはどのように見えますか?ジョン・レアは、彼が書いた古いCSSアニメーションを選び、それを最適化するという思考プロセスを歩きます。

cssanimationsArenotintinlentyhardbutrepracticeanderstanding ofcsspropertiesandtimingfunctions.1)

@keyframesispopularduetoitsversitility andpowerincreatingsmoothcssanimations.keytricksinclude:1)defingsmoothtransitionsbetweenstates、2)AnimatingMultipleProperiessimally、3)3)bendorprefixesforbrows -compativity、4)組み合わせwithjavasfo

csScounterSareSareusedTomageautomaticinginginwebdesigns.1)それらは、コンテンツ、リスト、および積極的なものを使用することができます

特にモバイルデバイスでは、スクロールシャドウを使用することは、Chrisが以前にカバーした微妙なUXです。 Geoffは、アニメーションタイムラインプロパティを使用する新しいアプローチをカバーしました。これがさらに別の方法です。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

WebStorm Mac版
便利なJavaScript開発ツール
