2012-11-03 14 views
18

Ich versuche, den Stil von etwas zu ändern, das davon abhängt, ob sein Elternteil überflogen wird oder nicht.Gibt es einen CSS-Pseudo-Selektor für den Überlauf?

.pDiv { display: block; width: 300px; height: 100px; border: 1px solid rgb(0,0,0); } 
.cDiv { display: block; padding 4px; border-bottom: 1px solid rgb(0,0,0); 
.pDiv:overflow .cDiv { border-bottom: none; } 

<div class="pDiv"><div class="cDiv">child 1</div><div class="cDiv">child 2</div><div class="cDiv">child 3</div><div class="cDiv">child 4</div><div class="cDiv">child 5</div></div> 

ist es möglich, so etwas zu tun? Ich würde den Last-Kind-Pseudo-Selektor verwenden, aber die Anzahl der Kinder kann variieren, also möchte ich, dass der Rand-Boden des letzten Kindes NUR WENN das Eltern-Div überflogen wird. Ich möchte auch eine reine CSS-Lösung, bitte, kein JS!

+0

Leider werden Sie muss dafür JS benutzen. –

+0

Dies könnte helfen: http://stackoverflow.com/questions/9333379/javascript-css-check-if-overflow – Esger

Antwort

11

CSS kann nicht basierend auf verwendeten oder berechneten Stilen ausgewählt werden, so dass Sie kein Glück haben.

+0

bah, das ist lahm. Im Grunde versuche ich zu vermeiden, 2 untere Ränder direkt übereinander zu haben, wenn der Benutzer zum Ende des überflogenen Eltern-Divs scrollt. Schätze, ich muss JS verwenden, schade, es gibt keine einfache CSS-Lösung :( –

+0

@CharlesJohnThompsonIII: "einfache CSS-Lösung" ist ein Oxymoron sowieso – millimoose

+1

Sie meinen, es ist ein Pleonasmus? Sicher, aber es ist definitiv kein Oxymoron –

-3

verwenden JavaScript/JQuery wenn die DIV is overflown zu sehen, dann einfach eine Klasse auf das DIV hinzufügen ...

$("#yourdiv").addClass("overflown"); 

und dann Stil dieser Klasse ...

.overflown { 
......... 
} 
+0

Wenn er nicht in der Lage ist, es mit CSS zu tun, wie kann jQuery ihm helfen, das übergelaufene Element zu finden? – Hauge

+0

Ich gebe einen Link, der erklärt, wie JQuery überflogene Elemente finden kann ... bitte lesen Sie die Antwort vollständig. –

+5

Ich habe sowohl die Frage als auch deine Antwort gelesen. Um die ursprüngliche Frage zu zitieren: "Ich möchte auch eine reine CSS-Lösung, bitte, kein JS". Das ließ mich denken, dass deine Antwort nicht genau das war, wonach er suchte. – Hauge

Verwandte Themen