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

推薦する

IE6 の select を div でカバーできないバグの解決方法

div を使用してマスクを作成したり、ポップアップ ウィンドウをシミュレートしたりします。ただし、I...

HTML での位置の使用に関する簡単な紹介

昨日 HTML を少し学んだばかりで、JD.com の検索バーを作るのが待ちきれませんでした。 作っ...

CSS3で背景画像にカラーマスクを追加する方法

以前、開発中に背景レイヤーにカラーマスクを追加する必要のあるプロジェクトに遭遇しました。ここでは、背...

Nginxホットデプロイメントの実装

目次セマフォNginx ホットデプロイメント上記のブログ投稿に従ってください。ファイアウォールをオフ...

Linux および Unix サーバーのセキュリティを強化する方法

ネットワーク セキュリティは非常に重要なトピックであり、サーバーはネットワーク セキュリティにおける...

1 時間で MySQL データベースを学ぶ (Zhang Guo)

目次1. データベースの概要1.1 開発の歴史2. MySQL の紹介2.1. MySQLの概要2....

goaccess を使用して nginx ログを分析する詳細な方法

最近、goaccess を使って nginx ログを分析したいのですが、nginx ログの設定形式が...

JavaScriptはXiaomi Mall公式サイトの完全なページ実装プロセスを模倣します

目次1. ホームページ制作1. ダウンロードアプリの制作2. ナビゲーションバーの制作3. カルーセ...

Spring jdbc のデータベース操作オブジェクト モデルの詳細な例

Spring jdbc のデータベース操作オブジェクト モデルの詳細な例Spring Jdbc デー...

CentOS7 構成 Alibaba Cloud yum ソースメソッドコード

Centos yumフォルダを開くコマンドcd /etc/yum.repos.d/を入力します。 w...

MySQL インデックスの原理と最適化の詳細な説明

序文この記事は Meituan の大物によって書かれました。とても素晴らしいので、皆さんと共有したい...

初心者向け入門チュートリアル④:サブディレクトリのバインド方法

これが何を意味するのかを理解するには、まずサブディレクトリとは何かを知る必要があります。では、サブデ...

MySQL sql_mode の使用に関する詳細な説明

目次序文sql_mode の説明最も重要なオプションすべてのオプション要約する序文前回の記事「MyS...

ファイアウォールルールの設定とコマンド(ホワイトリスト設定)の詳しい説明

1. ファイアウォールルールを設定する例1: ポート8080を外部に公開する ファイアウォールコマン...

Ubuntu で nginx を使用して WebDAV ファイル サーバーを構築する詳細なプロセス

nginxをインストールするnginx-fullをインストールする必要があることに注意してください。...