2016-04-12 9 views
0

Ich habe folgende Sidebar:Wie wird der Rahmen ausgeblendet, wenn kein Inhalt vorhanden ist?

div.sphinxsidebar { 
    margin: 0px 15px 0px 0; 
    padding: 0; 
    width: 210px; 
    float: right; 
    font-size: 1em; 
    text-align: center; 
    border: 0.2px solid #CCC; 
    border-radius: 10px; 
    background-color: #F7F7F7; 
    } 

Dieses div hat einen Wrapper darin:

div.sphinxsidebarwrapper { 
    padding: 0; 

} 

ich so etwas wie folgt aussieht:

--------- -------------------------------

| -------- Inhaltsverzeichnis - -------- |

----------------------------------------

Das Problem, das ich habe, ist, dass, wenn dieses div leer wird, die Grenze so aussieht:

-------------------------- --------------

Also im Wesentlichen fällt die obere Grenze mit der unteren Grenze und die Grenze ist immer noch sichtbar.

Wie mache ich die Grenze für diesen Fall verschwinden.

Das Problem scheint zu sein, dass die Grenze eine Höhe zugeordnet hat. Also zum Div, der Inhalt ist nicht leer.

+0

Sie die Grenze zum inneren Element anwenden können, wenn Sie können, bedeutet, wickeln die Inhalt in ein anderes Tag. Andernfalls sollten Sie Back-End-Sprachen oder Javascript verwenden. – Stickers

+0

Ich schlage vor, Sie verwenden Display: Tabelle für div.sphinxsidebar statt halten Sie die Grenze nicht zusammengebrochen, aber wenn Sie wollen, dass es verschwunden ist, sollten Sie Javascript verwenden, um zu prüfen, ob leer und Grenze zu keiner setzen. –

+0

Ich habe das gleiche Verhalten, wenn ich die Grenze auf den Wrapper, auch leider, setzen: leer funktioniert nicht für mich aus irgendeinem Grund. – snowleopard

Antwort

0

Wenn Sie div auf leer setzen, stellen Sie auch die Anzeige auf none.

display:none;

+0

Hallo, danke für deine Antwort. Leider habe ich keinen Zugriff auf den Code, der den Inhalt des div steuert. So eine rein CSS oder JS Lösung scheint die einzige Alternative – snowleopard

+0

Versuchen Sie dies vielleicht zu sein? '.sphinxsidebar: leer [style = 'height: 0px;'] { display: none; } ' – Wowsk

+0

Hat entweder nicht arbeiten, ich denke, der Grund ist, weil die div eine Höhe tatsächlich hat, wegen der Grenze. – snowleopard

0

Sie können CSS3 Lösung oder JS Lösungen

CSS

ausblenden Element verwenden:

.sphinxsidebar:empty{ 
    display:none 
} 

oder nur Grenze entfernen:

.sphinxsidebar:empty{ 
    border: none; 
} 

JS: entfernen Element:

$(document).ready(function() { $('.sphinxsidebar:empty').remove(); }); 

oder entfernen Grenzen:

$(document).ready(function() { $('.sphinxsidebar:empty').css({'border': 'none'}); }); 
+0

Hallo danke für deine Antwort, aus irgendeinem Grund: leer ist für mich nicht funktioniert – snowleopard