CSS selektor podle následujícího elementu

qelurg

  • ****
  • 373
    • Zobrazit profil
    • E-mail
CSS selektor podle následujícího elementu
« kdy: 27. 07. 2020, 13:27:42 »
Jak mám pomocí CSS vybrat element podle toho, jaký za ním následuje další element? Konkrétně bych chtěl ostylovat všechny P (zrušit spodní margin) za kterými následuje UL nebo OL. Děkuji.
« Poslední změna: 27. 07. 2020, 13:59:10 od Petr Krčmář »


Re:CSS selektor podle následujícího elementu
« Odpověď #1 kdy: 27. 07. 2020, 14:03:23 »
Tohle v cistem css nejde, asi nejjednodussi reseni je pridat tem predchudcum tridu javascriptem.

Re:CSS selektor podle následujícího elementu
« Odpověď #2 kdy: 27. 07. 2020, 14:17:55 »
Na tohle CSS selektor nemá. Záleží na struktuře dokumentu, možná by vám mohlo pomoci :last-of-type.

Případně můžete prasácky ul a ol, které následuje po p, nastavit záporný okraj.

Re:CSS selektor podle následujícího elementu
« Odpověď #3 kdy: 27. 07. 2020, 14:25:34 »
CSS nemá zpětné reference - tedy stylovat žádné "předchozí" elementy. Možná pomohou nějaké first-*, last-* nebo only. Nebo se nabízí popřesouvat onen rušivý styling na následující elementy, kde ho pak bez problémů změnit lze.

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:CSS selektor podle následujícího elementu
« Odpověď #4 kdy: 27. 07. 2020, 17:33:12 »
By mě zajímalo, zda to byl záměr, nebo se to jen stalo.

Protože to trochu připomíná law of demeter. Když mám strom komponent, tak se mi taky osvědčilo, aby komponenta neviděla do předka, ale jen potomkům.

Jen taková úvaha.


Re:CSS selektor podle následujícího elementu
« Odpověď #5 kdy: 27. 07. 2020, 21:47:19 »
By mě zajímalo, zda to byl záměr, nebo se to jen stalo.

Protože to trochu připomíná law of demeter. Když mám strom komponent, tak se mi taky osvědčilo, aby komponenta neviděla do předka, ale jen potomkům.

Jen taková úvaha.

Myslel bych, ze je to tim, ze kdyz se dostanu na nasledujici element tak ten predchozi uz je "vykresleny". Takze nejake zjednoduseni implementace kvuli linearnimu zpracovani.
Nicmene nechapu tu analogii se stromem komponent. Myslel sem, ze tady se mluvi o "sourozencich" a ne predcich a potomcich.

Re:CSS selektor podle následujícího elementu
« Odpověď #6 kdy: 27. 07. 2020, 22:18:35 »
Protože to trochu připomíná law of demeter. Když mám strom komponent, tak se mi taky osvědčilo, aby komponenta neviděla do předka, ale jen potomkům.
Tady je to přesně naopak, uzel ve stromu nevidí „dopředu“ – potomky a následovníky (teda s výjimkou :last-*, tam trochu dopředu vidí). Minimálně jeden důvod je zřejmý – není nutné čekat, co bude, ale známou část stromu je možné vykreslovat rovnou.

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:CSS selektor podle následujícího elementu
« Odpověď #7 kdy: 27. 07. 2020, 22:45:49 »
Myslel sem, ze tady se mluvi o "sourozencich" a ne predcich a potomcich.

Sorry za nepřesné vyjádření. Mnou zmiňované omezení se týká i sourozenců. Komponenta může přistupovat jen ke svému vnitřku. A hlavně mi šlo i to, že to omezení v případě komponent je ideové (technicky není problém tam hodit parenta), a tak jsem uvažoval nad tím, zda návrháři css neměli na mysli taky něco takového.

Re:CSS selektor podle následujícího elementu
« Odpověď #8 kdy: 27. 07. 2020, 23:26:22 »
Myslel sem, ze tady se mluvi o "sourozencich" a ne predcich a potomcich.

Sorry za nepřesné vyjádření. Mnou zmiňované omezení se týká i sourozenců. Komponenta může přistupovat jen ke svému vnitřku. A hlavně mi šlo i to, že to omezení v případě komponent je ideové (technicky není problém tam hodit parenta), a tak jsem uvažoval nad tím, zda návrháři css neměli na mysli taky něco takového.

Rozumim a myslim, ze spis ne. Ale ruku do ohne za to nedam. Predpokladam, ze jde fakt o to "kupredu leva, zpatky ni krok".
Jestli si dobre vzpominam tak treba TeX to resi nekolika pruchody. Pri kazdem generuje krome ciloveho dokumentu taky nejaky metadata pro pristi pruchod. Takze jede porad jen od shora dolu a dokument je cim dal tim hezci a hezci....

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:CSS selektor podle následujícího elementu
« Odpověď #9 kdy: 27. 07. 2020, 23:41:26 »
Myslel sem, ze tady se mluvi o "sourozencich" a ne predcich a potomcich.

Sorry za nepřesné vyjádření. Mnou zmiňované omezení se týká i sourozenců. Komponenta může přistupovat jen ke svému vnitřku. A hlavně mi šlo i to, že to omezení v případě komponent je ideové (technicky není problém tam hodit parenta), a tak jsem uvažoval nad tím, zda návrháři css neměli na mysli taky něco takového.

Rozumim a myslim, ze spis ne. Ale ruku do ohne za to nedam. Predpokladam, ze jde fakt o to "kupredu leva, zpatky ni krok".
Jestli si dobre vzpominam tak treba TeX to resi nekolika pruchody. Pri kazdem generuje krome ciloveho dokumentu taky nejaky metadata pro pristi pruchod. Takze jede porad jen od shora dolu a dokument je cim dal tim hezci a hezci....

OK :-)

qelurg

  • ****
  • 373
    • Zobrazit profil
    • E-mail
Re:CSS selektor podle následujícího elementu
« Odpověď #10 kdy: 28. 07. 2020, 06:57:51 »
Tohle v cistem css nejde, asi nejjednodussi reseni je pridat tem predchudcum tridu javascriptem.
Do toho html zasahovat nemuzu, jde o automaticky generovane html dokumenty, jedine co mohu je zmenit css sablonu. Co jsem dohledal, tak level 4 to asi bude resit pres :has(), jenze kdo vi, kdy bude implementovan,  napsany to bylo 2018. Doufal jsem v nejake nestandardni proprietarni reseni.