0

関連項目を表示するための図を作成しています:ブートストラップ 3.0 を使用したjsfiddle 。この例では、Ember を使用していません。これは非常に単純な例です。

しかし、問題は、Ember を使用して項目を動的に生成するときです。ダイアグラムは、最初、最後、および唯一の子セレクターで予期されたものとして表示されません。これは、ember が要素の前後に 1 つまたは 2 つのスクリプト タグを追加するために発生します。

<div class="level closed" style="display: block;">
    <script id="metamorph-218-start" type="text/x-placeholder"></script><script id="metamorph-216-start" type="text/x-placeholder"></script>
    <div class="item">
    <span class="title"><script id="metamorph-219-start" type="text/x-placeholder"></script>Element name 1<script id="metamorph-219-end" type="text/x-placeholder"></script></span>
    </div>  
    <script id="metamorph-216-end" type="text/x-placeholder"></script><script id="metamorph-217-start" type="text/x-placeholder"></script>
    <div class="item">
    <span class="title"><script id="metamorph-220-start" type="text/x-placeholder"></script>Element name 2 <script id="metamorph-220-end" type="text/x-placeholder"></script></span>
    </div>  
    <script id="metamorph-217-end" type="text/x-placeholder"></script><script id="metamorph-218-end" type="text/x-placeholder"></script>
    </div>

そのために私は使用しました:

.level >.item:nth-child(3):before {
    width: 10px;
    height: 50%;
    top: 50%;
    margin-top: 2px;
    border-top-left-radius: 10px;
}
.level >.item:nth-child(3):after {
    height: 10px;
    border-top-left-radius: 10px;
}

.level > .item:nth-last-child(3):before {
    width: 10px;
    height: 50%;
    border-bottom-left-radius: 10px;
}
.level >.item:nth-last-child(3):after {
    height: 10px;
    border-top: none;
    border-bottom: 2px solid #eee9dc;
    border-bottom-left-radius: 10px;
    margin-top: -7px;
}

問題は、子供が 1 人しかいないときです。残り火なしで、次のCSSを使用しました。

.item:only-child::after {
    border-bottom: 2px solid #eee9dc !important;
    border-left: 0px !important;
    border-bottom-left-radius: 0px !important;
    margin-top: -7px !important;
    width: 48px;
    left: -48px;
}

.item:only-child::before {    
    width: 0px !important;
}

しかし、ご覧のとおり、ember はこのスクリプト タグを追加しているため、唯一の子はなく、この CSS は適用されません。

4

1 に答える 1