CSS variabele menu

Pagina: 1
Acties:

  • X-trace
  • Registratie: Juni 2004
  • Laatst online: 02-11-2024
Ik wil binnen een website gebruik gaan maken van een CSS list menu, waarbij de knoppen horizontaal inline worden geplaatst. Nu wil ik dat:
  • Het complete menu een vaste breedte heeft (500px)
  • De knoppen een breedte krijgen, afhanelijk van knop titel
  • De hele menu breedte word gebruikt
Het is een variabele menu, waarbij soms een knop een andere tekst bevat. Als ik bijvoorbeeld een menu van 4 knoppen heb, waarbij elke knop als titel 'HOME' heeft, worden ze allemaal 125px breed. Maar als ik nu een menu heb met 1 knop 'HOME' en 1 met 'FAQ', dan moet de 'HOME' knop net iets breder worden, waarbij toch de hele breedte wordt gebruikt.

Weet iemand hoe ik dit kan gaan berekenen? Voorbeelden voor een menu is niet nodig. Gaat mij puur om een berekening, waarbij de knoppen uit een database worden gelezen met behulp van PHP. Verder wil ik geen gebruik gaan maken van een TABLE. Ik weet dat wanneer je een TD geen breedte mee geeft, de browser automatisch een breedte mee geeft. Dit wil ik nu dan m.b.v. een list menu.

You cannot not communicate


  • X-trace
  • Registratie: Juni 2004
  • Laatst online: 02-11-2024
Niemand een idee, of is het niet duidelijk wat ik wil?

You cannot not communicate


  • Depress
  • Registratie: Mei 2005
  • Laatst online: 12-02 13:20
Je kunt met javascript de style aanpassen voor punt 2.

En punt 1 en 3 kun je gewoon in de CSS style zetten als een div.

  • X-trace
  • Registratie: Juni 2004
  • Laatst online: 02-11-2024
Ja, ok. maar dan moet ik weer hardcoded de width meegeven. Dit wil ik juist niet. Hij moet zelf uitrekenen hoe breed een div dan moet zijn.

You cannot not communicate


  • Mercarra
  • Registratie: Juni 2001
  • Laatst online: 10:35
X-trace schreef op zondag 15 oktober 2006 @ 13:15:
Ja, ok. maar dan moet ik weer hardcoded de width meegeven. Dit wil ik juist niet. Hij moet zelf uitrekenen hoe breed een div dan moet zijn.
Met javascript het aantal letters van de string die in een knop staat lezen. Al die waarden bij elkaar optellen. Dit getal delen door 500 en vermenigvuldigen met het aantal letters van de desbetreffende knop levert de breedte op. De laatste knop moet je even anders berekenen, door te kijken hoeveel px er nog over zijn, ivm afrondingsfouten.

Geen idee echter hoe je dit zou moeten programmeren in javascript, maar ik denk dat het niet al te lastig is.

Canon EOS 6D / Samyang 14mm f/2.8 / 17-40mm f/4.0 / 35mm f/1.4 / 50mm f/1.4 / 85mm f/1.8 / 70-200mm f/4 IS mercarra.nl


  • MBV
  • Registratie: Februari 2002
  • Laatst online: 12:42

MBV

Je kan met javascript kijken hoe breed een (evt onzichtbaar) div'je wordt waar je de gewenste tekst in zet, en dat naar proporties verdelen. Met bovengenoemde manier krijgt iiiii meer plek dan mmm, om maar eens wat te noemen.

Er was laatst trouwens laatst een andere, css only, manier hier langs gekomen. Daarin werd gebruik gemaakt van justified, en een groot blok op de volgende regel. Geen javascript-gedoe, wel vaste breedte :)

[edit]
tadaaa! :)

[ Voor 9% gewijzigd door MBV op 15-10-2006 20:35 ]


  • X-trace
  • Registratie: Juni 2004
  • Laatst online: 02-11-2024
TNX, ik ga het even proberen! Het moet ook niet zo zijn dat de iii even breed is als mmm ;)

al het niet lukt laat ik het weten...

edit: is me uiteindelijk niet gelukt. kost veel tijd om uit te zoeken etc.

[ Voor 22% gewijzigd door X-trace op 17-10-2006 22:18 ]

You cannot not communicate

Pagina: 1