2016-05-04 8 views
0

Ich habe eine 3D-Party-Bibliothek (fullcalendar), der auf einigen internen Berechnungen auf der Grundlage der Höhe der Elemente dynamisch zuweist in einem beliebigen Ansichtsfenster schön aussehen:Ist es möglich, einem Element basierend auf einem anderen Element Stil/CSS zuzuordnen?

<div style="height: 72px;"> 

Dies gilt jedoch nicht für alle Elemente passieren, fixiert einige haben Höhe. Ich möchte den Code der 3D-Party-Bibliothek nicht ändern und dachte darüber nach, ob es irgendwie möglich ist, den Stil eines Elements mithilfe von CSS auf einen anderen zu übertragen. Etwas wie:

Vielleicht gibt es ein paar andere Möglichkeiten, das gleiche Ergebnis zu bekommen, aber ich kann mir keine vorstellen.

+3

Mit JavaScript sicher. Mit plain vanilla CSS-Nr. – j08691

+0

Ich glaube nicht, dass es mit reinem CSS möglich ist, bis das Element verschachtelt ist. –

+0

hat dieses andere Div eine bekannte Höhe, eine ID oder eine Klasse? ist das div innerhalb eines bestimmten Platzes in seinem Container, dann sollte CSS in der Lage sein, dies zu tun, indem eine Klasse neben der Klasse dieses div hinzugefügt wird oder ein spezifischerer Selektor verwendet wird, um auf dieses einzelne div zu zielen. sonst, Sie benötigen Javascript, um benötigte Höhe zu erhalten und wenden Sie es an diese spezifische div ... könnte unklar sein, aber Ihre Frage nicht genug sagen, um eine positive oder negative Antwort geben ... es hängt von der Struktur, die Sie haben, IDs, Klasse und dein Stylesheet. wir können nur fair antworten: es kommt darauf an :) oder gehen Sie auf eine persönliche Meinung oder raten Sie –

Antwort

2

Ich weiß nicht, ob Sie nach einer Lösung suchen, um mit Javascript (ich weiß nicht, ob es möglich ist, nur mit CSS aber ich glaube nicht), aber hier ist ein Ansatz mit es:

Wenn Sie zwei divs mit zwei unterschiedlichen IDs haben:

<div id="div1" style="height: 72px;"></div> 
<div id="div2"></div> 

Dann können Sie lesen die Stil-Eigenschaft der ersten getComputedStyle() mit:

var element = document.getElementById('div1'), 
    style = window.getComputedStyle(element), 
    height1 = style.getPropertyValue('height'); 

Und um es in den zweiten Einstellung:

var div2 = document.getElementById('div2'); 
div2.style.height = height1; 

JSFiddle, um zu sehen, wie es funktioniert.

+0

Danke für Hilfe, aber ich habe versucht, es ohne Javascript zu tun, da die Höhe einer 3D-Party-Komponente ändert sich während der Größe z. Vielleicht gibt es aber keinen anderen Weg ... –

+0

@IlyaChernomordik Vielleicht kannst du den Code, den ich oben gesetzt habe, in eine Funktion einfügen und sie in der onresize-Methode aufrufen: https://developer.mozilla.org/en-US/docs/ Web/API/GlobalEventHandlers/onresize –

+0

Danke für Hilfe, ich werde versuchen, das zu tun –

0

Durch die Verwendung von weniger seine möglichen siehe Beispiel

.rounded_corners { 
     -moz-border-radius: 8px; 
     -webkit-border-radius: 8px; 
     border-radius: 8px; 
    } 

    #header { 
     .rounded_corners; 
    } 

    #footer { 
     .rounded_corners; 
    } 
0

Wenn sie im selben Container ist, können Sie verwenden, um ein flexbox.

#container { 
 
     display: flex; 
 
     flex-direction: row; 
 
     align-items:stretch /* That line gives them the same height */ 
 
    } 
 

 
#container > * { 
 
    background:gray; 
 
    border:1px solid black; 
 
    margin-right:5px; 
 
}
<div id="container"> 
 
     <div> 
 
     Some<br>very<br>high<br>text<br>that<br>uses<br>disgusting<br>BRs 
 
     </div> 
 
     <div> 
 
     The short one 
 
     </div> 
 
    </div>

+0

Hallo, sie sind nicht direkt unter dem gleichen Container (nur haben die gleichen entfernten Elternteil), also denke ich, das wird dann nicht funktionieren? –

+0

Nein, ich denke, es wird nicht funktionieren. Dann bitte ich um Entschuldigung. – SteeveDroz

+0

Danke für die Hilfe trotzdem :) –

Verwandte Themen