[CSS] Properties overnemen van ene class op andere class?

Pagina: 1
Acties:

  • Haywire
  • Registratie: Januari 2000
  • Laatst online: 06-12-2025
Hallo allemaal,

Ik geloof dat het tijd wordt voor een goede tutorial over CSS :| Ik breek me namelijk het hoofd over het volgende (zoeken op GoT en door de W3C-spec heeft niks opgeleverd).

Voor een bestaande site wil ik een PHP e-Commerce pakket (osCommerce) aanpassen. Voor de site maak ik al gebruik van een CSS. Om nu zo min mogelijk aan het nieuwe pakket te hoeven aanpassen, zou ik op de een of andere manier de stijlen die binnen osC worden gebruikt willen hangen aan de stijlen uit mijn bestaande CSS. Ik wil dus zeggen: gebruik voor deze stijl in osC die stijl ui de bestaande CSS. Iets als:

.stijlvanosc { class: stijluitbestaandecss }

Kan dat? :?

Alvast bedankt.

  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 21-08 17:05
Kun je de osCommerce CSS niet weglaten(of leeg maken en een @import doen op je 'eigen' CSS) en de namen die daarin gebruikt worden als 2e naam in je 'eigen' CSS toevoegen?
dus:
code:
1
2
3
4
5
6
7
8
<style type="text/css">
<!--
.OrigineleStijlNaam, .osCommerceStijlNaam
{
        color: #0099FF;
}
-->
</style>


Als je eerst je 'eigen' CSS inlaad, kun je daarna evt nog de (Originele of osCommerce) style uitbreiden dmv:
code:
1
2
3
4
.osCommerceStijlNaam
{
        font-family: Verdana, Arial, Helvetica, sans-serif;
}

[ Voor 34% gewijzigd door beetle71 op 22-04-2003 15:08 ]


  • Scharnout
  • Registratie: November 2000
  • Laatst online: 12:39

Scharnout

Meuk

Misschien gewoon je classes toevoegen aan het css bestand en dan:
code:
1
class="classVanPakket classVanJezelf"


disclaimer: ik ben een prutser :+ dus of dit een mooie/nette oplossing is weet ik niet, maar hij werkt wel!

And Bob's your uncle ...


  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 21-08 17:05
@ Scharnout:
Dan moet de TS alsnog alle code doorlopen en wijzigen. Dan kan hij net zo goed overal even de stylename veranderen in "classVanJezelf"..... En IMHO is dat niet wat hij wil.

  • Haywire
  • Registratie: Januari 2000
  • Laatst online: 06-12-2025
Beetle71: hmm... Had ik nog niet aan gedacht. Maar dat betekent wel dat ik in mijn eigen CSS moet gaan hacken... Da's weer minder...

[ Voor 8% gewijzigd door Haywire op 22-04-2003 17:07 ]


Verwijderd

je kan toch gewoon beide stylesheets in je html stoppen? of in mekaar zetten met een @import? vervolgens makn je alle classes die je anders wilt gaan aanpassen en nieuwe erbij zetten

  • Haywire
  • Registratie: Januari 2000
  • Laatst online: 06-12-2025
Da's nou juist het punt; ik wil eigenlijk geen stijlen anders maken of nieuwe erbij zetten, ik wil stijlen van osC linken naar stijlen die ik al had. Als ik dan mijn bestaande stijlen ooit aanpas, dan veranderd osC fijn mee (het hele idee achter CSS). Beetle71 z'n oplossing komt daar nog het dichtst in de buurt. Alleen jammer dat ik dan allemaal osC-stijlnamen door mijn CSS heen moet gaan vlechten.

[ Voor 24% gewijzigd door Haywire op 22-04-2003 17:24 ]


  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 21-08 17:05
Wat je ook zou kunnen doen is een php-scriptje met een array'tje maken waarin staat welke osC-stijl met welke 'eigen stijl gevuld moet worden.
Vervolgens daarin je eigen css inladen en een str_replace eroverheen ( str_replace eigen naam met osC naam ) waarna hij het geheel weer echo'ed.
Je osC krijgt dan ipv stylesheet.css stylesheet.php

Verwijderd

juist niet stel je hebt 2 files: 1.css en 2.css, dan doe je gewoon achter elkaar:
<link href="1.css" rel="stylesheet" type="text/css" />
<link href="2.css" rel="stylesheet" type="text/css" />
stel dat in 1.css het volgende staat:
a {
color: red;
font-size: 18px;
}
en je zet in 2.css:
a {
color: blue;
}

dan wordt in je document een a blauw en 18px groot. 1.css kan je dus gewoon nog ergens anders gaan gebruiken, 2.css definieert alleen wat er veranderd. Als dit niet is wat je wilt snap ik je nog niet helemaal vrees ik

  • Haywire
  • Registratie: Januari 2000
  • Laatst online: 06-12-2025
Dan moet je beter lezen, vrees ik, want duidelijker kan ik het niet uitleggen :P En beetle71 begrijpt het wel...

OK, nog een poging. In de scripts van osC wordt bijvoorbeeld de stijl "pageHeading" gebruikt. Hiervoor zou ik eigenlijk de eigenschappen willen gebruiken die ik in mijn bestaande CSS onder de naam "maintitle" heb gedefinieerd. Er zijn minstens twee opties, die ik beide wil ontlopen:
1) Loop door alle scripts van osC om daar alle "pageHeading"s te vervangen door "maintitle"s (en, niet te vergeten, moet dat dan ook weer voor alle andere stijlen)
2) Kopieer botweg de stijldefinitie "maintitle" uit mijn eigen CSS naar de definitie van "pageHeading".

1) is totaal onacceptabel, ik moet er niet aan denken om dat elke keer te doen als er een update van osC is.
2) is al minder vervelend, maar dan moet ik nog de stijl-definities op twee plekken aanpassen, terwijl het in wezen om dezelfde stijl gaat.

Beetle71 heeft nu optie 3) aangedragen: de namen van osC in mijn originele CSS opnemen bij de stijl waar ik ze aan wil hangen. Het enige nadeel is nu dat ik dan mijn nog enigszins overzichtelijke css moet gaan doorspekken met osC-naampjes.
Ideaal zou zijn als ik op de een of andere manier via de CSS kon zeggen dat "pageHeading" een alias is voor "maintitle". Ik zou dan mijn eigen css @import-en en dan eenvoudigweg alle osC-namen aan equivalenten uit mijn eigen CSS hangen. De vraag is dus: hoe (als dat al kan)?

[ Voor 4% gewijzigd door Haywire op 22-04-2003 18:03 . Reden: Typos ]


  • Haywire
  • Registratie: Januari 2000
  • Laatst online: 06-12-2025
Die tweede suggestie van Beetle71 is ook wel grappig, trouwens... Jammer alleen dat CSS kennelijk standaard hier geen voorzieningen voor heeft.
Pagina: 1