クリックして展開し、全文を読む機能を実現する純粋なCSS

クリックして展開し、全文を読む機能を実現する純粋なCSS

注記

記事表示リストインターフェースを開発する場合、情報の基本的な概要を提供するために記事ヘッダーコンテンツの一部を表示し、詳細情報を取得するために【點擊展開閱讀全文】というボタンを表示することができます。

caibaojian.com/css-tonggle… の記事の純粋な CSS のアイデアを参考にしました。ただし、記事に記載されている内容は単一の記事の効果に適用され、 <li></li>タグを使用してテーブルデータを生成する場合には使いにくいです。そのため、これに基づいて対応する最適化を実行しました。具体的なコードは次のとおりです。

<div>
    <ul id="content-ul">
        <!-- これは記事の内容を保存する LI タグの本体です -->
    </ul>
</div>
[id^="contTab"] {
    表示: なし;
}

.content-more {
    表示: なし;
}

[id^="contTab"]:チェック済み ~ #content {
    最大高さ: 95px;
    オーバーフロー: 非表示;
}

[id^="contTab"]:チェック済み ~ .content-more {
    表示: ブロック;
    位置: 相対的;
    テキスト配置: 中央;
}

[id^="contTab"]:チェック済み ~ .content-more .gradient {
    背景画像: -webkit-gradient(linear, 左上, 左下, from(rgba(255, 255, 255, 0)), to(#fff));
    背景画像: -webkit-linear-gradient(top, rgba(255, 255, 255, 0), #fff);
    背景画像: linear-gradient(-180deg, rgba(255, 255, 255, 0), #fff);
    高さ: 80px;
    位置: 絶対;
    左: 0;
    上: -79px;
    幅: 100%;
}

[id^="contTab"]:チェック済み ~ .content-more .readmore {
    表示: インラインブロック;
    背景: #319a1717;
    色: #0014ff9e;
    幅: 300ピクセル;
    高さ: 30px;
    境界線の半径: 32px;
    行の高さ: 32px;
    フォントサイズ: 14px;
    カーソル: ポインタ;
    テキストインデント: 0;
}

もちろん、ここに JS コードがあります:

関数内部(レスポンス) {
    for (var レスポンスデータの値) {
        document.getElementById('content-ul').innerHTML += '' +
            '<li>' +
            '<h2 class="title">' + val.title + '</h2>' +
            '<p class="update_author">' + val.author_name + ' / ' + layui.util.toDateString(val.update, "yyyy-MM-dd HH:mm:ss") + '</p>' +
            '<input type="checkbox" id="contTab_' + val.id + '" checked="checked" class="tabbed">' +
            '<div id="content">' + val.content + '</div>' +
            '<div class="content-more"><div class="gradient"></div> <label for="contTab_' + val.id + '" class="readmore">クリックして全文を読む</label></div>' +
            '</li>'
    }
}

例示する

改善方法は、特定の ID セレクタに限定されないファジー マッチング方式を使用して、バインドされたタグ ID 属性を動的に生成してバインドし、CSS セレクタを使用することです。

ソースコード

このコード スニペットは、M&OAS プロジェクトで使用されています。ここをクリックすると、関連するコード情報を表示し、より完全なコードを取得できます。

PS: 入力した後に関連するコードブロックが見つからない場合は、慌てないでください。まだGITHUにアップロードしていない可能性があります。ご容赦ください。QAQ〜

脳っていいものですね、ハハハハ~

これで、純粋な CSS で [クリックして展開して全文を読む] 機能を実装する方法についての記事は終了です。より関連性の高い CSS クリックして展開して全文を読むコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  Node.JS で悪天候のリアルタイム警報システムを構築する

>>:  XHTML におけるタイトルタグと段落タグの使用に関する詳細な説明

推薦する

JavaScript のよりエレガントなエラー処理方法 async await

目次背景なぜエラー処理が必要なのでしょうか? async await より適切なエラー処理まとめ要約...

VMware、nmap、burpsuite インストール チュートリアル

目次VMware バープスイート1. 仮想マシンイメージとVMwareのインストールと使用2. 仮想...

一般的なMySQLコマンドの概要

mysqlrootパスワードの設定と変更初めて MySQL データベースに入ります。 !環境変数にm...

テーブル切り替えのための JavaScript プラグインのカプセル化

この記事では、テーブル切り替えプラグインを実装するためのJavaScriptのカプセル化コードを参考...

nginxリバースプロキシによるセッション障害の問題の解決策

同僚から助けを求められました。バックエンド システムへのログインは成功したものの、システムには正常に...

CSS3 のボックス サイズ設定 (コンテンツ ボックスとボーダー ボックス) の詳細な説明

CSS3 のボックス サイズ設定 (content-box と border-box) CSS3 の...

JDBC および MySQL 一時テーブルスペースの詳細な分析

背景一時テーブルスペースは、データベースのソート操作を管理し、一時テーブルや中間ソート結果などの一時...

vscode を使用したリモート Linux 開発の実装

過去に別れを告げるvscode にリモート SSH が導入される前は、Linux サーバー開発者の多...

WebプロジェクトをIdeaにインポートし、Tomcatに公開する問題を解決します

Idea は既存の Web プロジェクトをインポートして Tomcat に公開しますが、Tomcat...

JavaScript プロトタイプの詳細

目次1. 概要1.1 プロトタイプとは何ですか? 1.2 プロトタイプを入手する2. プロトタイプの...

MySQL が UNION を使用して 2 つのクエリを接続できない理由の詳細な説明

概要連合接続データセットキーワードは、2つのクエリ結果セットを1つに連結し、同一のレコードを除外する...

MySQL 5.7.15 バージョンのインストールと設定方法のグラフィックチュートリアル

この記事では、MySQLバージョン5.7のインストール方法と使用方法、およびデータベースデータの保存...

Windows 10 システムに mysql-8.0.13 (zip インストール) をインストールする詳細なチュートリアル

インストール環境の説明•システムバージョン: windows10 •MySQL バージョン: mys...

React Hooksを使用する際のよくある落とし穴

React Hooks は React 16.8 で導入された新しい機能で、クラスを使用せずに状態や...

Dockerコンテナでユーザーを分離する方法

前回の記事「Docker コンテナの UID と GID を理解する」では、Docker コンテナ内...