Uitlijnen van navigatie

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • mcdronkz
  • Registratie: Oktober 2003
  • Laatst online: 16-04 12:44
Heb de eer om dit schitterende ontwerp naar HTML/CSS code te vertalen. Normaal is dat een fluitje van een cent, maar deze menubalk bezorgt me wat kopzorgen.

De inhoud van de site is 990px breed en horizontaal gecentreerd. Dit menu is rechts uitgelijnd maar de menu items mogen niet 'buiten' het gebied van de inhoud komen, die 990px dus. De items moeten echter wel zover mogelijk rechts staan (wat mij betreft gaat het item 'Partners' helemaal tegen de rand aan). Afijn, de afbeelding is duidelijk genoeg.

De unordered list zou eigenlijk een right padding van %browser-width% - 990px mee moeten krijgen, als ik me niet vergis. Maar goed, dergelijke variabelen kun je niet gebruiken, tenzij je voor een JS oplossing gaat. Heb allerlei gedachten de revue laten passeren, veel dingen uitgeprobeerd die niet het gewenste resultaat geven, kom er gewoon even niet uit. :)

Er moet toch wel iets te bedenken zijn waarbij je gebruik maakt van louter HTML en CSS, met fatsoenlijke semantiek zonder allerlei 'overbodige' extra elementen? Ik kan er even niet opkomen, zou het dus zeer op prijs stellen als iemand me in de juiste richting kan helpen.

Dit is het ontwerp:

Afbeeldingslocatie: https://dl.dropbox.com/u/5493141/menu_small.jpg

(klikbaar)

Acties:
  • 0 Henk 'm!

  • alex3305
  • Registratie: Januari 2004
  • Laatst online: 22:33
Een float right in een main div? Of absoluut gepositioneerd met de right property op 0px?

Acties:
  • 0 Henk 'm!

  • mcdronkz
  • Registratie: Oktober 2003
  • Laatst online: 16-04 12:44
alex3305 schreef op donderdag 07 juni 2012 @ 01:54:
Een float right in een main div? Of absoluut gepositioneerd met de right property op 0px?
Hoe ga ik er dan voor zorgen dat die menu items niet buiten die gecentreerde 990px komen?

Acties:
  • 0 Henk 'm!

  • Z-Dragon
  • Registratie: December 2002
  • Laatst online: 01:12
Het lijkt me dat je het best af bent met het splitsen van de menubalk in het gedeelte dat binnen de "inhoud" valt en de rest die erbuiten valt. De enige kunst is dan ervoor te zorgen dat die netjes aansluiten, maar als je de HTML en CSS simpel houdt, moet dat goed te doen zijn. Voor andere oplossingen moet je bijvoorbeeld aannames doen over m.b.t. de ruimte die de menu-items in zullen nemen en/of is de kans groter dat verschillende browsers er elk wat anders van bakken.

[ Voor 4% gewijzigd door Z-Dragon op 07-06-2012 02:24 ]

^ Wat hij zegt.


Acties:
  • 0 Henk 'm!

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

Ik zou het denk ik (simpel) oplossen door 'vals te spelen' met een background-image* die het menu rechts buiten de 990px nabootst.

Even snel: http://jsfiddle.net/okke/7cqDE/

* De image 1500 x $hoogte_menu maken; eerste helft transparant, tweede helft kleur van menu. Die centreren. Done.

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Acties:
  • 0 Henk 'm!

  • alex3305
  • Registratie: Januari 2004
  • Laatst online: 22:33
mcdronkz schreef op donderdag 07 juni 2012 @ 01:56:
[...]


Hoe ga ik er dan voor zorgen dat die menu items niet buiten die gecentreerde 990px komen?
Een float right binnen een div van 990px? Zoiets als een container dus.

Acties:
  • 0 Henk 'm!

  • Z-Dragon
  • Registratie: December 2002
  • Laatst online: 01:12
Of probeer dit eens; werkt hier in alle browsers goed:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<html>
    <head>
        <link rel=stylesheet href="style.css" type="text/css" media=screen>
        <title>Demo</title>
    </head>
    <body>
        <div id="container">
            <div id="header"></div>
            <div id="menu">
                <div class="right"></div>
                <div class="left">
                    Item 1 - Item 2 - Item 3
                </div>
            </div>

        </div>
    </body>
</html>
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
body {
    padding: 0px;
    margin: 0px;
}

#container {
    width: 100%;
    text-align: center;
    background: #8080ff;
    overflow: hidden;
}

#header {
    width: 990px;
    height: 200px;
    background-color: #4040ff;
    margin: 0 auto;
}

#menu {
    margin-right: -495px;
    float: right;
    overflow: auto;
    height: 30px;
    width: 100%;
    margin-top: -130px;
    display: inline-block;
}

#menu .left {
    width: auto;
    height: 30px;
    background: white;
    float: right;
}

#menu .right {
    width: 50%;
    height: 30px;
    background: white;
    float: right;
}

^ Wat hij zegt.


Acties:
  • 0 Henk 'm!

  • Barryvdh
  • Registratie: Juni 2003
  • Laatst online: 11-09 12:49
Daar heb je dus jsFiddle voor he ;)

Acties:
  • 0 Henk 'm!

  • Z-Dragon
  • Registratie: December 2002
  • Laatst online: 01:12
Het vreemde is dat het juist daarin niet goed wordt weergegeven. 8)7

^ Wat hij zegt.


Acties:
  • 0 Henk 'm!

  • Barryvdh
  • Registratie: Juni 2003
  • Laatst online: 11-09 12:49

Acties:
  • 0 Henk 'm!

  • Z-Dragon
  • Registratie: December 2002
  • Laatst online: 01:12
Hmm, in de "ontwerpmodus" lukte dat bij mij niet. Maar goed, dan bij dezen ook live te zien. :)

^ Wat hij zegt.


Acties:
  • 0 Henk 'm!

  • Z-Dragon
  • Registratie: December 2002
  • Laatst online: 01:12
TS vindt het allemaal wel best?

^ Wat hij zegt.


Acties:
  • 0 Henk 'm!

  • mcdronkz
  • Registratie: Oktober 2003
  • Laatst online: 16-04 12:44
Z-Dragon schreef op vrijdag 08 juni 2012 @ 20:23:
TS vindt het allemaal wel best?
Maak je maar geen zorgen, ben er een weekendje op uit geweest. ;) Ben jullie erg dankbaar voor alle aangedragen oplossingen! Zal morgen eens e.e.a. implementeren, laat jullie het uiteraard weten als het gelukt is. :)

Acties:
  • 0 Henk 'm!

  • Z-Dragon
  • Registratie: December 2002
  • Laatst online: 01:12
:O

^ Wat hij zegt.


Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 09-09 12:00

TheNephilim

Wtfuzzle

Hier heb ik ook vreselijk mee lopen worstelen! Uiteindelijk een oplossing gevonden in (ongeveer) de onderstaande structuur. De footer zal vast helemaal naar beneden moeten, dus ook als er minder content is, helemaal onderaan. Hiervoor zijn wat truukjes, in mijn voorbeeld niet meegenomen.

Hopelijk heb je er wat aan! ^^

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<div id="header-wrapper">
    <div id="header">
        // header
    </div>
</div>

<div id="navigation-wrapper">
    <div id="navigation">
        // navigation
    </div>
</div>

<div id="content-wrapper">
    <div id="content">
        // content
    </div>
</div>

<div id="footer-wrapper">
    <div id="footer">
        // footer
    </div>
</div>


Cascading Stylesheet:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#header-wrapper {
    width: 100%;
}

    #header {
        width: 990px;
        margin: 0 auto;
    }
    
#navigation-wrapper {
    width: 100%;
    background: blue; /* Hier de background voor hele breedte */
}

    #navigation {
        float: right;
    }
    
#content-wrapper {
    width: 100%;
}

    #content {
        width: 990px;
        margin: 0 auto;
    }
    
#footer-wrapper {
    width: 100%;
    background: black; /* Hier de background voor hele breedte */
}

    #foote {
        width: 990px;
        margin: 0 auto;
    }


Edit: Zo te zien heeft de TS zelf al lange tijd niet gereageerd... :? Maar misschien hebben andere mensen met hetzelfde probleem er wat aan.

[ Voor 6% gewijzigd door TheNephilim op 06-07-2012 11:22 ]

Pagina: 1