Toon posts:

links binnen divs probleem

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hey tweakers,

Ik heb een probleem met het positioneren van links binnen div's.

Ik heb een webpagina die bestaat uit 5 <div>'s verdeeld in 2 andere <div>'s met een achtergrond afbeelding. (die op elkaar aan moeten sluiten).

De pagina moet gecentreerd zijn en daarom heb ik de 2 <div>'s (die samen 5 andere <div>'s bevatten) in 1 container div geplaatst.

De container div heb ik de grootte van de gehele pagina gegeven (1024 x 768)
de container heb ik 2 marges meegegeven: left: auto en right: auto

Bij 4 van de 5 losse <div>'s heb ik bij ieder weer een div geplaast met daarin een <a href>

Tot zo ver klopt alles! alleen de links staan (logisch) links boven in de <div>'s

Probleem:
De 4 divs die de <a href> bevatten wil ik heel precies positioneren door marges te gebruiken.
maar als ik dat doe. Dan verschuiven alle 4 divs naar beneden op een of andere manier buiten de container!

weten jullie hoe ik dit moet oplossen? ik heb al geprobeerd om de links in <p> te zetten in plaats van <div> maar dan krijgt elke <div> waar de <p> in staat een "enter".

voor de duidelijkheid de CSS en de HTML code's:

CSS:
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
43
44
45
46
47
48
49
50
51
52
53
div#container
{
    width: 1024px;
    height: 768px;
    margin-left: auto;
    margin-right: auto;
}

div#right_column
{
    float: right;
    width: 312px;
    height: 768px;
}

div#home
{
    background: url("images/home.jpg");
    height: 197px;
    width: 312px;
}

div#about_me
{
    background-image: url("images/about_me.jpg");
    height: 169px;
}

div#portfolio
{
    background-image: url("images/portfolio.jpg");
    height: 176px;
}

div#contact_me
{
    background-image: url("images/contact_me.jpg");
    height: 226px;
}

div#left_column
{
    float: left;
    background: url("images/content_left.jpg");
    width: 712px;
    height: 768px;
}

div#home_link
{
margin-left: 100px;
margin-top: 50px;
}


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
<body>

<div id="container"><!-- opening container -->
    
    <!-- linker kolom -->
    <div id="left_column">
    </div>
    
    <!-- rechter kolom -->
    <div id="right_column">
        <div id="home">
            <div id="home_link"><a href="home.html">Home</a></div>
        </div>
        
        <div id="about_me">
            <div id="about_me_link"><a href="about_me.html">About me</a></div>
        </div>
        
        <div id="portfolio">
            <div id="portfolio_link"><a href="portfolio.html">Portfolio</a></div>
        </div>
        
        <div id="contact_me">
            <div id="contact_me_link"><a href="contact_me.html">Contact me</a></div>
        </div>
    </div>
</div><!-- afsluiting container -->

</body>
</html>


Ik wil diegene die de moeite hebben genomen dit bericht door te nemen heel erg bedanken! _/-\o_

Groeten,
Aego

Acties:
  • 0 Henk 'm!

  • mad_max234
  • Registratie: September 2003
  • Laatst online: 07-02 11:09

mad_max234

AMD Athlon II M320

Is de manier van menu maken met ul en li niet beter geschikt voor zoiets? Ben zelf ook nog aan het leren hoe het beste een website te maken, dus wellicht vergis ik me, maar heb even voorbeeldje gemaakt van hoe het er dan uit zou kunnen komen te zien.

HTML:
1
2
3
4
5
6
7
8
<div id="right_column">
<ul>
<li id="home"><a href="home.html">Home</a></li>
<li id="about_me"><a href="about_me.html">About me</a></li>
<li id="portfolio"><a href="portfolio.html">Portfolio</a></li>
<li id="contact_me"><a href="contact_me.html">Contact me</a></li>
</ul>
</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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/* CSS Document */

#right_column {
    float: right; 
    padding: 0; 
    margin: 4px 0;
}

#right_column ul li a {
    padding: 5px;
    margin: 0;
    color: #FF0000;
}

#right_column ul {
    list-style-type: none;
    display: inline;
    padding: 0;
    margin: 0;
    background-color: #00FF00;
}

#right_column ul li#home {
    list-style-type: none;
    display: inline;
    float:left;
    padding: 0;
    margin: 0;
    background: url("images/home.jpg");
    height: 197px;
    width: 312px;

}

#right_column ul li#about_me {
    list-style-type: none;
    display: inline;
    float:left;
    padding: 0;
    margin: 0;
    background-image: url("images/about_me.jpg");
    height: 169px;

}
#right_column ul li#portfolio {
    list-style-type: none;
    display: inline;
    float:left;
    padding: 0;
    margin: 0;
    background-image: url("images/portfolio.jpg");
    height: 176px;

}
#right_column ul li#contact_me {
    list-style-type: none;
    display: inline;
    float:left;
    padding: 0;
    margin: 0;
    background-image: url("images/contact_me.jpg");
    height: 226px;


}


Edit/
Denk ook aan de dubbel margin in ie tegenover firefox en andere browsers. ;)

Hier nog wat meer uitleg over ul li menu's
http://www.webcredible.co...css-navigation-menu.shtml

[ Voor 8% gewijzigd door mad_max234 op 21-01-2009 04:04 ]

-Andere hobby- -


Acties:
  • 0 Henk 'm!

  • kalizec
  • Registratie: September 2000
  • Laatst online: 17-07 01:45
Ik sluit me aan bij mad_max234. Menu's maken op basis van zgn Suckerfish is een stuk practischer. Ook is het helemaal niet nodig om div's om iedere anchor heen te zetten, je kunt een anchor immers ook gewoon als block laten renderen en gedacht zich verder als een div.

Core i5-3570K/ASRock Z75 Pro3/Gigabyte Radeon HD7850/Corsair XMS3 2x4GB/OCZ Vertex2 64GB/3x640GB WD Black/24" B2403WS Iiyama x2/Nec 7200S


Acties:
  • 0 Henk 'm!

  • Da Weef
  • Registratie: Januari 2004
  • Laatst online: 15-09 09:16
Inderdaad semantisch veel beter om lists te gebruiken voor menu's. Een discussie welk list-type beter is vind je vast wel ergens op dit forum ;)

Overigens wat er nu praktisch gebeurt is dat je de container relatief positioneert en de elementen erin laat floaten. Hierdoor rekken deze de container niet mee. Om ervoor te zorgen dat de container meerekt zul je óf de container moeten laten floaten, óf de elementen relatieve positie geven. Eventueel is het ook mogelijk door er een (lege) div met relatieve positie onder de floats te plaatsen en deze te laten clearen...

Echter zoals hierboven al staat is dit eigenlijk niet aan de orde in dit geval omdat je gewoon lekker lists moet gebruiken voor je menu ;)

.


Acties:
  • 0 Henk 'm!

  • tonyisgaaf
  • Registratie: November 2000
  • Niet online
Da Weef schreef op woensdag 21 januari 2009 @ 12:18:
[...]
Overigens wat er nu praktisch gebeurt is dat je de container relatief positioneert en de elementen erin laat floaten. Hierdoor rekken deze de container niet mee. Om ervoor te zorgen dat de container meerekt zul je óf de container moeten laten floaten, óf de elementen relatieve positie geven. Eventueel is het ook mogelijk door er een (lege) div met relatieve positie onder de floats te plaatsen en deze te laten clearen...
[..]
Je kunt een relatief gepositioneerde container prima laten meerekken met gefloate inhoud d.m.v. het toevoegen van een "overflow: hidden" op die container.
offtopic:
In IE6 zul je dan waarschijnlijk weer andere problemen krijgen...

NL Weerradar widget Euro Stocks widget Brandstofprijzen widget voor 's Dashboard


Acties:
  • 0 Henk 'm!

  • Boelie-Boelie
  • Registratie: November 2004
  • Laatst online: 26-09-2020
tonyisgaaf schreef op woensdag 21 januari 2009 @ 14:15:
offtopic:
In IE6 zul je dan waarschijnlijk weer andere problemen krijgen...
Die zijn er voor zover ik weet niet, maar als jij een bron weet, hoor ik het graag. Wat wél zeker is, is dat IE6 heel erg veel gare dingen op CSS-gebied doet wanneer je geen gebruik maakt van een correct doctype (hint aan Aego)...

[ Voor 3% gewijzigd door Boelie-Boelie op 23-01-2009 02:04 ]

Cogito ergo dubito


Acties:
  • 0 Henk 'm!

  • tonyisgaaf
  • Registratie: November 2000
  • Niet online
Boelie-Boelie schreef op vrijdag 23 januari 2009 @ 02:03:
[...]
Die zijn er voor zover ik weet niet, maar als jij een bron weet, hoor ik het graag.
[...]
Een aantal, maar toevallig liep ik gister weer tegen de volgende aan:
http://www.positioniseverything.net/explorer/guillotine.html
Wordt getriggerd door een relatief gepositioneerde container en een (willekeurige) "a:hover" in CSS. De pagina rendert goed, tot je over de link hovert (die overigens in een container ervoor stond).

Dus een combinatie van (Son of) Suckerfish (veel a:hover) + relatief gepositioneerde container met erin floats kan renderfouten opleveren in IE6.
Boelie-Boelie schreef op vrijdag 23 januari 2009 @ 02:03:
[...]
Wat wél zeker is, is dat IE6 heel erg veel gare dingen op CSS-gebied doet wanneer je geen gebruik maakt van een correct doctype (hint aan Aego)...
En daarvoor hebben we dan de volgende tabel:
http://hsivonen.iki.fi/doctype/

Als je niet weet wat je moet kiezen, is naar mijn mening "html 4.01 strict" de handigste keuze.

[ Voor 24% gewijzigd door tonyisgaaf op 23-01-2009 10:18 ]

NL Weerradar widget Euro Stocks widget Brandstofprijzen widget voor 's Dashboard


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

offtopic:
Wat een flauwekul om de knoppen voor je menu in de CSS te stoppen. Daar heb je gewoon img elementen met alt attributen voor. * drm vindt stiekem dat er soms te ver wordt doorgeslagen in zogenaamd semantisch correcte HTML en alles maar in de CSS te stoppen

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Nu online

MueR

Admin Tweakers Discord

is niet lief

Een image in je menu met correcte alt en title voldoet prima hoor.

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • tonyisgaaf
  • Registratie: November 2000
  • Niet online
drm schreef op vrijdag 23 januari 2009 @ 16:02:
offtopic:
Wat een flauwekul om de knoppen voor je menu in de CSS te stoppen. Daar heb je gewoon img elementen met alt attributen voor. * drm vindt stiekem dat er soms te ver wordt doorgeslagen in zogenaamd semantisch correcte HTML en alles maar in de CSS te stoppen
Gebruik je dan wel/niet verschillende image-states voor :hover en (bijv.) .selected? En regel je dat dan met CSS of JS?

Ik gebruik bijna altijd de "background-image", i.c.m. met één sprite voor alle menu-onderdelen in alle states. Scheelt weer wat GET's, maar is weer lastiger te onderhouden/updaten.

Ben wel een beetje van de "semantische" school...

NL Weerradar widget Euro Stocks widget Brandstofprijzen widget voor 's Dashboard


Acties:
  • 0 Henk 'm!

  • Boelie-Boelie
  • Registratie: November 2004
  • Laatst online: 26-09-2020
tonyisgaaf schreef op woensdag 21 januari 2009 @ 14:15:
Je kunt een relatief gepositioneerde container prima laten meerekken met gefloate inhoud d.m.v. het toevoegen van een "overflow: hidden" op die container.
offtopic:
In IE6 zul je dan waarschijnlijk weer andere problemen krijgen...
Boelie-Boelie schreef op vrijdag 23 januari 2009 @ 02:03:
Die zijn er voor zover ik weet niet, maar als jij een bron weet, hoor ik het graag.
In dat PIE-artikel staat de oplossing voor het probleem: floats clearen. Maar die oplossing had je toch al aangegeven in je eerste reactie? Dan is er toch - precies zoals ik zeg - geen probleem ie IE6 en zul je toch geen andere problemen krijgen?

Cogito ergo dubito


Acties:
  • 0 Henk 'm!

  • tonyisgaaf
  • Registratie: November 2000
  • Niet online
Boelie-Boelie schreef op zaterdag 24 januari 2009 @ 01:03:
In dat PIE-artikel staat de oplossing voor het probleem: floats clearen. Maar die oplossing had je toch al aangegeven in je eerste reactie? Dan is er toch - precies zoals ik zeg - geen probleem ie IE6 en zul je toch geen andere problemen krijgen?
Dat zei Da Weef in de reactie, waarop ik reageerde. Hij spreekt inderdaad over een dummy-div waarmee je floats kan clearen. Daarnaast zei hij dat je de container moet floaten óf de elementen in de container relatief moet positioneren, wat ik weersprak.
Daarnaast werd meermalen aangeraden om een (Son of) Suckerfish-achtig menu te gebruiken.

Die combinatie (container met gefloate elementen en a:hover) kán zorgen voor de eerdergenoemde "Guillotine" bug van IE6 (en toevallig gebeurde dat eergisteren zowel bij een eigen website als bij een collega zijn website). Dat daar oplossingen voor zijn blijkt inderdaad ook uit het PIE artikel. Ik ben geen IE6-basher, ik sprak slechts uit (verse) ervaring.

Ben benieuwd wat de TS er allemaal van vindt, want ik vind het allemaal nogal wat :)

[ Voor 0% gewijzigd door tonyisgaaf op 24-01-2009 02:06 . Reden: typo ]

NL Weerradar widget Euro Stocks widget Brandstofprijzen widget voor 's Dashboard


Acties:
  • 0 Henk 'm!

  • Da Weef
  • Registratie: Januari 2004
  • Laatst online: 15-09 09:16
LOL, wat een discussie zeg ;)

Ik had er inderdaad niet bij stilgestaan dat je met een overflow statement (overflow: auto kan toch ook?) ervoor kunt zorgen dat floats de relative parent meerekken. Er kunnen dan inderdaad issues ontstaan met IE6 dat nogal knoeit met de overflow-functionaliteit.

Uiteindelijk kunnen we het er wel over eens zijn dat een clear div de praktische oplossing is toch? Okay, lelijk, maar praktisch ;)

.


Acties:
  • 0 Henk 'm!

  • tonyisgaaf
  • Registratie: November 2000
  • Niet online
Da Weef schreef op zondag 25 januari 2009 @ 22:18:
LOL, wat een discussie zeg ;)

Ik had er inderdaad niet bij stilgestaan dat je met een overflow statement (overflow: auto kan toch ook?) ervoor kunt zorgen dat floats de relative parent meerekken. Er kunnen dan inderdaad issues ontstaan met IE6 dat nogal knoeit met de overflow-functionaliteit.

Uiteindelijk kunnen we het er wel over eens zijn dat een clear div de praktische oplossing is toch? Okay, lelijk, maar praktisch ;)
:) Ja, je moet op je woordkeuze letten! :P

Ik dacht ook dat een clearing DIV dé oplossing was, maar toen ik vervolgens die DIV op 1px hoog zette, verdween alle left-floatende content in de container (natuurlijk ook weer alleen in IE6). Een behoorlijk WTF momentje. Dus ik heb vervolgens de clearing DIV verwijderd, een IE6 stylesheet eraan gehangen en de container DIV "Zoom: 1;" meegegeven. Logisch...

Zal even kijken of ik een ge-anonimiseerde case online kan zetten.Ik was verbaasd.

[ Voor 15% gewijzigd door tonyisgaaf op 25-01-2009 23:50 . Reden: Cases erbij. ]

NL Weerradar widget Euro Stocks widget Brandstofprijzen widget voor 's Dashboard


Acties:
  • 0 Henk 'm!

  • Kiphaas7
  • Registratie: Februari 2005
  • Laatst online: 23:23
Alle niet-IE browsers kunnen inderdaad floats clearen met een overflow hidden op een container. IE doet dat niet, maar wel zodra je de "hasLayout" eigenschap van IE activeert. Dan gaat IE namelijk "autoclearen". Dit is te doen door een element een breedte of hoogte opgeven. Zoom:1 activeert ook "hasLayout".

(staat beter uitgelegd op deze site: http://www.quirksmode.org/css/clearing.html )

Wat ik vreemd vind is dat blijkbaar een clearing div, wat toch normaal wordt beschouwd als een robuustere oplossing dan bovenstaande, maar als nadeel heeft dat het nutteloze html toevoegd, raar doet bij jou...

[ Voor 7% gewijzigd door Kiphaas7 op 26-01-2009 09:30 ]


Acties:
  • 0 Henk 'm!

  • tonyisgaaf
  • Registratie: November 2000
  • Niet online
Kiphaas7 schreef op maandag 26 januari 2009 @ 09:29:
Alle niet-IE browsers kunnen inderdaad floats clearen met een overflow hidden op een container. IE doet dat niet, maar wel zodra je de "hasLayout" eigenschap van IE activeert. Dan gaat IE namelijk "autoclearen". Dit is te doen door een element een breedte of hoogte opgeven. Zoom:1 activeert ook "hasLayout".

(staat beter uitgelegd op deze site: http://www.quirksmode.org/css/clearing.html )

Wat ik vreemd vind is dat blijkbaar een clearing div, wat toch normaal wordt beschouwd als een robuustere oplossing dan bovenstaande, maar als nadeel heeft dat het nutteloze html toevoegd, raar doet bij jou...
Tjah, uiteindelijk zijn het allebei "hasLayout" problemen. In het eerste geval vervelend dat de container geen "hasLayout" heeft. In het tweede geval vervelend dat de clearing DIV "hasLayout" krijgt wanneer ik de hoogte instel.
HasLayout is een beetje de "catch-all" term voor 90% van de IE(6)-specifieke ehm, features.

Hier is nog een zeer uitgebreide pagina over het "hasLayout" probleem:
http://www.satzansatz.de/cssd/onhavinglayout.html

Het gaat BTW wel knetterhard offtopic en gezien de post-history van de TS denk ik dat we nog wel een maandje op antwoord kunnen wachten.

NL Weerradar widget Euro Stocks widget Brandstofprijzen widget voor 's Dashboard

Pagina: 1