Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

CSS vraag: Inheritance, hiërarchie

Pagina: 1
Acties:

  • Zippy1970
  • Registratie: Augustus 2007
  • Laatst online: 07-03 08:40
Ik probeer met enkele CSS regels te bepalen hoe <LABEL></LABEL> elementen worden gerenderd afhankelijk van de class van z'n container. Simpel voorbeeld:

Cascading Stylesheet:
1
2
3
4
5
6
7
8
  .style1 label {
    font-size: 20pt;
    font-weight: bold;
  }
  .style2 label {
    font-size: 14pt;
    color: red;
  }
.
.
HTML:
1
2
3
4
5
6
7
8
9
<DIV CLASS="style1">
  <LABEL>Dit is een titel</LABEL>
  En dit niet.
</DIV>

<DIV CLASS="style2">
  <LABEL>Dit is weer een titel</LABEL>
  En dit wederom niet.
</DIV>


Dit geeft het verwachte resultaat. In het eerste blok krijgt het label een font-size van 20pt, in het tweede blok een font-size van 14pt en is de tekst rood.

Maar hier gaat het fout:

HTML:
1
2
3
4
5
6
7
8
9
10
<DIV CLASS="style1">
  <LABEL>Dit is een titel</LABEL>
  En dit niet.

  <DIV CLASS="style2">
    <LABEL>Dit is weer een titel</LABEL>
    En dit wederom niet.
  </DIV>

</DIV>


De tekst "Dit is een titel" is 20pt en in het zwart (zoals verwacht). Maar de tekst "Dit is weer een titel" is ook 20pt i.p.v. 14pt, maar wel in het rood. Dus blijkbaar krijgt de tweede label eerst de rules van style2, daarna wordt hij overschreven/aangevuld met de rules van style1.

Hoe kan ik er nou voor zorgen dat de tweede label uitsluitend de rules krijgt van style 2 (ongeacht of hij nu wel of niet genest is)?

Code kan tussen [code=taal][/] tags ;)

[ Voor 3% gewijzigd door BtM909 op 12-10-2013 01:19 ]


  • Zippy1970
  • Registratie: Augustus 2007
  • Laatst online: 07-03 08:40
Om mijn eigen vraag te beantwoorden, dit doe je door gebruik te maken van de child-selector ">".

Dus:

code:
1
2
3
4
5
6
7
8
9
10
<STYLE>
  .style1 > label {
    font-size: 20pt;
    font-weight: bold;
  }
  .style2 > label {
    font-size: 14pt;
    color: red;
  }
</STYLE>

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:28

crisp

Devver

Pixelated

Zippy1970 schreef op vrijdag 11 oktober 2013 @ 23:45:
[...]
Maar de tekst "Dit is weer een titel" is ook 20pt i.p.v. 14pt, maar wel in het rood.
Dat is toch niet het geval. Hij is wel bold omdat die property vanuit de '.style1 label' nu ook toegepast wordt, maar hij is wel degelijk 14pt. Dus of je gebruikt een buggy browser, of je testvoorbeeld klopt niet ;)

Intentionally left blank


  • jostefa
  • Registratie: Januari 2006
  • Laatst online: 11:15
Klik rechter muisknop op die 2e titel en dan element inspecteren. Nu zie je precies welke classes er van toepassing zijn op dat element.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Labels worden trouwens niet gebruikt om titels aan te geven, daar heb je h1-h6 voor, eventueel in combinatie met een header-tag. Labels zijn er om bij invoervelden aan te geven wat je er moet invullen.

HTML-tags in hoofdletters schrijven is trouwens nogal archaeïsch en wordt tegenwoordig eigenlijk niet meer gedaan.

[ Voor 22% gewijzigd door NMe op 12-10-2013 16:33 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-11 09:49

Bosmonster

*zucht*

pt's zijn overigens bedoeld voor print-CSS (pt's zijn een drukwerk unit). Voor screen kun je px (of em) gebruiken.

  • BeefHazard
  • Registratie: Augustus 2010
  • Laatst online: 11:24
Pt is zo erg nog niet, maar dan kun je op zich beter beginnen met
Cascading Stylesheet:
1
2
3
4
5
    body
    {
        font-size: 12pt;
        font-weight: 400; /*afhankelijk van wat jij wil natuurlijk*/
    }


En vanaf daar met em's werken.

[ Voor 8% gewijzigd door BeefHazard op 14-10-2013 09:52 ]

R6 | 24-70 F2.8 DG OS HSM Art | 18-35 F1.8 DC HSM Art | EF 70-200 F4L IS USM | EF 50mm f/1.8 | Zenbook 14 OLED | T14G4 OLED


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-11 09:49

Bosmonster

*zucht*

pt's werken ook wel, maar ze zijn niet bedoeld voor screen. Dus dan kan die het beter gelijk afleren ;)

Met em's werken maakt zijn inheritance issues alleen maar groter, dus ook dat zou ik vooralsnog even afraden.
Pagina: 1