Probleem met CSS-prioriteitselector

Ik moet een selector schrijven vergelijkbaar met:

div#content > section (.left > img) + .left

maar uiteraard worden de haakjes genegeerd. Hoe zou ik dit moeten herschrijven? Of is het niet mogelijk in gewone CSS?

1
Nou, ja, ik heb een sectie in mijn hoofdinhoud div. Ik wil elke .left-klasse stijlen die direct wordt voorafgegaan door een andere .left-klasse, die op zijn beurt een img-kind daaronder in de structuur heeft.
toegevoegd de auteur linkyndy, de bron
Kun je uitleggen wat het resultaat zou moeten zijn?
toegevoegd de auteur Jason Gennaro, de bron
Afgesproken is meer informatie nodig of misschien de html-markup waarmee je werkt
toegevoegd de auteur TimWickstrom.com, de bron

4 antwoord

Nee, u kunt niets in CSS selecteren op basis van wat het bevat, wat in wezen is wat u probeert tussen haakjes.

Het is het beste te verklaren door deze vraag over SO.

2
toegevoegd
Dus ... zal een andere aanpak moeten proberen. Jammer. Bedankt voor het helpen.
toegevoegd de auteur linkyndy, de bron
Het is een gemakkelijke selector met JQuery, maar niet direct mogelijk met CSS, sorry.
toegevoegd de auteur Nate B, de bron
jQuery mootools dojo noem je de lib en het is eenvoudig, bekijk de viool die ik hieronder heb gemaakt om één jQuery-oplossing voor dit probleem te zien
toegevoegd de auteur TimWickstrom.com, de bron

Wat je probeert te doen is niet mogelijk tenminste niet vanaf de laatste css3-specificatie.

Als je niet wilt toevoegen via de server, misschien een beetje jQuery?

Zie deze viool als het doet wat je wilt heel gemakkelijk

http://jsfiddle.net/4qZpc/2/embedded/result/ - results!

Grab the code: http://jsfiddle.net/4qZpc/2/

1
toegevoegd
Ik ga voor de jQuery-oplossing. Dank je!
toegevoegd de auteur linkyndy, de bron

U moet een klasse .image_in_it aan de server toevoegen aan elk element met .left class als het een img-element bevat.

<div id="content">
    
<div class="left image_in_it"> </div> <div class="left"> </div>
</div>

and then div#content > section > .left.image_in_it + .left would select any .left directly following .left.image_in_it

0
toegevoegd
Ik wilde geen extra id's gebruiken ... Ik hoopte dat het alleen met selectors en bestaande klassen kan worden opgelost. Maar toch bedankt!
toegevoegd de auteur linkyndy, de bron

Hoe zit het met het geven van de sectie een id (ervan uitgaande dat je meerdere secties hebt) en doe dan iets als:

#content-section img + .left

Ik weet niet helemaal zeker welk effect je hier probeert te bereiken, maar als er geen specifiek geval is waarbij een .left-element direct volgt op een img anders dan hier, zou je veilig moeten zijn.

Als alternatief, als je geneste .left-elementen hebt, zou je kunnen doen:

#content-section img + .inner-left
0
toegevoegd
Ik wilde geen extra id's gebruiken ... Ik hoopte dat het alleen met selectors en bestaande klassen kan worden opgelost.
toegevoegd de auteur linkyndy, de bron