純粋な CSS3 マインドマップ スタイルの例

純粋な CSS3 マインドマップ スタイルの例

マインドマップ

彼はおそらく次のように見えるでしょう:

インターネット上の実装のほとんどは d3.js を使用して実装されており、一部は svg を使用して手動で実装されています。最近、仕事でそれが必要になり、非常に面倒なので、CSS3 を使用して実装できるかどうか疑問に思っています。

答えはイエスです。これがコードです

HTMLコード

<div class="mainBody" id="node1">
    <h1>ノード1</h1>
    <div class="oneBody">
        <div class="mainBody">
            <h1>ノード2</h1>
            <div class="oneBody">
                <div class="mainBody">
                    <h1>ノード3</h1>
                    <div class="oneBody">
                        <div class="mainBody">
                            <h1>ノード4</h1>
                        </div>
                        <div class="mainBody">
                            <h1>ノード4</h1>
                        </div>
                        <div class="mainBody">
                            <h1>ノード4</h1>
                        </div>
                    </div>
                </div>
                <div class="mainBody">
                    <h1>ノード3</h1>
                </div>
                <div class="mainBody">
                    <h1>ノード3</h1>
                </div>
            </div>
        </div>
        <div class="mainBody"><h1>ノード2</h1></div>
        <div class="mainBody"><h1>ノード2</h1></div>
    </div>
</div>

CSS3 コード

.mainBody{
    display: -webkit-flex; /* Safari */
    ディスプレイ: フレックス;
    flex-direction: 行;
    コンテンツの配置: flex-start ;
}
.sbody{

}
.oneBody{
    display: -webkit-flex; /* Safari */
    ディスプレイ: フレックス;
    flex-direction: 列;
    コンテンツの両端揃え: スペースを空ける;
}
#ノード1{
    /*高さ: 200px;*/
    上マージン: 100px;
    左マージン: 100px;
}
h1{
    行の高さ: 100%;
    display: -webkit-flex; /* Safari */
    ディスプレイ: フレックス;
    flex-direction: 列;
    コンテンツの中央揃え: 中央;
}

実際の効果は以下のとおりです。

ああ、ちょっと粗雑ですね... でも、スタイルは何でも好きなようにできます。ノードを追加するには、HTML に対応するノード コードを追加するだけです。高さと位置は適応的です。CSS3 flex のおかげで、この時代に生きているのは幸運です。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

<<:  数千万件のレコードをMySQLに素早く挿入する方法に関する実践的なチュートリアル

>>:  docker ベースで Prometheus+Grafana を構築する手順の詳細説明

推薦する

Dockerの一般的なコマンドとヒントのまとめ

インストールスクリプトUbuntu / CentOS Debian のインストールに問題があるようで...

Linux での tcpdump コマンド例の詳細な説明

序文簡単に言えば、tcpdump は、ネットワーク上のトラフィックをダンプし、ユーザーの定義に従って...

Linux で履歴コマンドを表示および実行する方法

履歴コマンドを表示し、指定されたコマンドを実行します owen@owen:~/owen/softwa...

CSS3 パッケージ化後にプレフィックスプラグインを自動的に追加する方法の詳細な説明: autoprefixer

vue-cli で構築されたプロジェクト スキャフォールディングでは、すでに autoprefix...

Reactイベントスロットリング効果が失敗する理由と解決策

目次ここでの問題は次の通りです:解決策1:解決策2: コンストラクタで初期化を割り当てる採掘場の概要...

@media レスポンシブ CSS を使用してさまざまな画面に適応する例

定義と使用@media クエリを使用すると、さまざまなメディア タイプに異なるスタイルを定義できます...

Jsonフォーマットの詳細な説明

目次JSON は次の 2 つの構造に基づいて構築されます。 2. JSON形式1. オブジェクト2....

layui をベースにしたログインページの実装

この記事の例では、ログインページを実装するためのlayuiの具体的なコードを参考までに共有しています...

2 級コンピュータ試験のための MySQL の知識ポイントとよく使用される MYSQL コマンド

2級コンピュータ試験のMySQL知識ポイントの基礎、一般的なMYSQLコマンドは次のとおりです。よく...

Linux 7.7 でスワップ パーティション SWAP を設定する方法

Linux システムの Swap パーティション、つまり swap パーティションは、一般に仮想メモ...

MySQLデータベースに接続し、クエリ操作を実行するためのIDEAの完全なコード

1.まずMysqlリンク設定ページを書く パッケージ com.wretchant.fredis.me...

少なくとも7日間連続して注文を行ったユーザーに対するSQLクエリ

テーブルを作成するテーブル order(id varchar(10),date datetime,o...

Element における複数データ読み込み最適化の実装

目次シナリオコードの実装要約:シナリオ最近、ElementUI をベースにしたバックグラウンド管理シ...

データバインディングとリストデータの表示にはVue3を使用する

目次1. Vue2との比較1. Vue3の新機能2. Vue2とVue3の応答原理の比較3. 配列の...

ブラウザがクロージャをどのように認識するかについて詳しく説明します

目次序文クロージャの紹介メモリのゴミを識別する方法クロージャのメモリ表現結論序文クロージャは、Jav...