Breedtte van li's bepalen t.o.v. breedtte browser

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

- Ariën  -
Beheerder

- Ariën -

09/11/2011 19:19:01
Quote Anchor link
Jaaah, en daar ben ik weer met een andere vraag.

Ik heb een divje #menu, met daarin een mooie list die een float:left heeft om naast elkaar te staan.

Nu wil ik de li's over de hele paginabreedtte verspreiden. Hoe kan ik dit het beste doen? Als er 3 li's zijn moet elk dan 33% zijn van de pagina breeddte.

1) Ik geef alle li's in de inline-css een width mee:
style="width:25%"

Maar dit is niet echt handig, als het aantal vaak verschilt.

2) Ik dacht iets met width:auto, maar dat is niet gelukt.

Wie o wie?
 
PHP hulp

PHP hulp

11/01/2025 02:55:36
 
Wouter J

Wouter J

09/11/2011 19:25:09
Quote Anchor link
Dit is een probleem waar ik bij het maken van mijn site ook tegenaan ben gelopen. Met CSS is het niet op te lossen, heb ik geconcludeerd. Ik heb het vervolgens zo opgelost:
Met JavaScript tel ik het aantal li's in het menu. Vervolgens geef ik ze 100/{aantal li's} width mee met JavaScript.
Stel dat JavaScript uit zal staan dan geef ik ze een padding left en right mee, maar geen breedte.

Dit scriptje even opgezocht:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
var lis = document.getElementsByTagName('nav')[0].getElementsByTagName('li'),
    len = lis.length;
    
for( l=0; l < len; l++ ) {
  lis[l].style.width = (100 / len) + '%';
}

// En het scriptje voor kijken of JS aan/uit staat
// Maak je HTML tag zo op: <html class="no-js">
var el = document.getElementsByTagName('html')[0];
    el.className = el.className.replace(/no-js/, 'js');

De laatste code heb ik afgekeken van Modernizr.
 
- Ariën  -
Beheerder

- Ariën -

09/11/2011 19:29:47
Quote Anchor link
Da's vervelend dat dit niet met alleen CSS getackeld kan worden.
Dat wordt dus apart rekenen.
 
Ozzie PHP

Ozzie PHP

09/11/2011 20:26:42
Quote Anchor link
Kun je t niet in PHP oplossen dan? Als je je menu-items in een array hebt staan kun je het aantal menu-items tellen met count(). Stel dat je site 900 pixels breed is dan zeg je $width = 900 / aantal menu-items.

En dan inline css gebruiken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<li stye="width:<?php echo $width; ?>px">menu-item 1</li>
Gewijzigd op 09/11/2011 20:28:06 door Ozzie PHP
 
- Ariën  -
Beheerder

- Ariën -

09/11/2011 20:36:48
Quote Anchor link
Dat idee had ik ook in gedachten...
 
Ozzie PHP

Ozzie PHP

09/11/2011 20:39:38
Quote Anchor link
Lijkt me de beste oplossing, dan blijft het ook zonder javascript goed gaan.
 
- Ariën  -
Beheerder

- Ariën -

09/11/2011 21:04:20
Quote Anchor link
Eerst maar eens kijken hoe ik dit netjes in mijn CMS integreer :P
Hoewel het ook best wel in Smarty kan worden afgehandeld...
 
Ozzie PHP

Ozzie PHP

09/11/2011 21:06:49
Quote Anchor link
In je cms? Bedoel je je framework?
 
- Ariën  -
Beheerder

- Ariën -

09/11/2011 21:10:24
Quote Anchor link
Jep... Eigen framework gebouwd, dienend als CMS.
 
Ozzie PHP

Ozzie PHP

09/11/2011 21:15:37
Quote Anchor link
oke... nice... maar het CMS is eigenlijk het "beheer" gedeelte, dus ik neem aan dat jouw opmerking met het framework deel te maken had.
 
- Ariën  -
Beheerder

- Ariën -

09/11/2011 21:22:17
Quote Anchor link
CMS is een algemeen woord voor het hele systeem waarmee je je site beheert en bekijkt. Nu je het zegt is het niet echt logisch bedacht.

De admin heet trouwens gewoon de backend, en de site zelf waar je alles op publiceert, dat is de frontend.
 
Ozzie PHP

Ozzie PHP

09/11/2011 21:25:47
Quote Anchor link
Ik zie het CMS als het beheer deel waar je op kunt inloggen. Onder framework versta ik de MVC opzet met library. Front-end...de voorkant van je website, dat wat de gebruiker ziet. Backend, de achterkant, waarop je als beheerder kan inloggen.
 
- Ariën  -
Beheerder

- Ariën -

09/11/2011 21:34:33
Quote Anchor link
Het is maar hoe je het ziet, maar WikiPedia ziet het toch anders, dan jouw opvatting...
 
Ozzie PHP

Ozzie PHP

09/11/2011 21:50:25
Quote Anchor link
volgens mij bedoel ik hetzelfde :)

en wij dus ook...
 
- Ariën  -
Beheerder

- Ariën -

09/11/2011 22:35:35
Quote Anchor link
Maar goed, laten we maar even ontopic gaan. Als iemand anders nog een tof idee heeft, of een CSS-hack kent dit dit wel voor mogelijk maakt zonder inline zooi te gebruiken of JS.
 
Ozzie PHP

Ozzie PHP

09/11/2011 22:46:36
 
- Ariën  -
Beheerder

- Ariën -

09/11/2011 22:54:56
Quote Anchor link
Ik ga hier even naar kijken. Het mag dan wel geen li zijn, maar toch... ;-)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.