クリックして展開し、全文を読む機能を実現する純粋な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 におけるタイトルタグと段落タグの使用に関する詳細な説明

推薦する

HTML doctype の役割の紹介

ドキュメント モードには次の 2 つの機能があります。 1. HTML文書を解析するためにどのHTM...

Linuxはデュアルネットワークカードボンドとドライバーインターフェースを使用する

債券とは何かNIC ボンドは、実稼働シナリオでよく使用されるテクノロジーです。複数の NIC を 1...

MySQL 8.0.3 RCがリリースされようとしています。変更点を見てみましょう。

MySQL 8.0.3がリリースされます。新機能を見てみましょうMySQL 8.0.3 は RC ...

Yahooのフロントエンド最適化に関する35のルールについての簡単な説明

概要: 仕事でも面接でも、Web フロントエンドのパフォーマンスを最適化することは非常に重要です。で...

Dockerコンテナ内の設定ファイルの変更の実装

1. コンテナに入るdocker run [オプション] イメージ名 [起動コンテナに渡されるコマン...

MySQLでカーソルトリガーを使用する方法

カーソル選択クエリによって返される行のセットは、結果セットと呼ばれます。結果セット内の行は、入力した...

Linux で複数の mysql5.7.19 (tar.gz) ファイルをインストールする方法

LinuxでのMySQL-5.7.19バージョンの初心者向けの最初のインストールについては、前の記事...

MySQL データ操作 - DML ステートメントの使用

例示するDML(データ操作言語)とは、データベースの追加、削除、変更を行うための操作命令のことです。...

HTML の相対パスと絶対パスの違いの分析

HTML 初心者は、ファイルを正しく参照する方法という問題によく遭遇します。たとえば、HTML ペー...

MySQL はどのようにしてマスターとスレーブの同期を実現するのでしょうか?

マスタースレーブ同期 (マスタースレーブレプリケーションとも呼ばれる) は、マスタースレーブデータの...

Vue検証コードコンポーネントの使い方の詳しい説明

この記事の例では、vue検証コードコンポーネントで使用される具体的な実装コードを参考までに共有してい...

Dockerコンテナを停止または強制終了できない問題の解決策

Docker バージョン 1.13.1問題プロセス特定の環境のMySQLコンテナを停止、強制終了、ま...

MySQL Undo ログと Redo ログの概要

目次元に戻すログUNDOログの生成と破棄UNDOログの保存元に戻すログ機能トランザクションの原子性の...

CSS3 を使用したテキスト折り紙効果のサンプルコード

序文この記事では主に、CSS3 を使用してテキスト折り紙効果を実現する例を紹介します。これは、参考と...

MySQL のインデックス障害の一般的なシナリオと回避方法

序文これまでにも、一部の SQL ステートメントを不適切に使用すると MySQL インデックスが失敗...