Margin-top werkt niet / padding-right in horizontal list

Pagina: 1
Acties:

  • Luke!
  • Registratie: Juli 2001
  • Laatst online: 14:12

Luke!

#Treinbaas
Topicstarter
Hoi,

Ik loop tegen twee problemen aan bij het maken van een lay-out.

Afbeeldingslocatie: http://www.limburglos.nl/temp/frameind.jpg
In de afbeelding de namen van de frames zoals ze gedefinieerd zijn.

Framesets
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<html>

<head>
    <title>Titel</title>
    <frameset rows="150px,*,3%" border="1">
        <frame name="top" src="data/alg/top.htm" noresize>
        <frameset cols="20%, *" border="1">
            <frame name="sub" noresize>
            <frame name="inhoud" src="data/alg/welkom.htm" noresize>
        </frameset>
        <frame name="rand" src="data/alg/rand.htm" noresize scrolling="no">
    </frameset>
</head>
<body>
</body>
</html>


Html van een bestand dat in submenu laadt:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<head>
    <title>Titel</title>
    <link rel="stylesheet" href="../../site/alg.css" type="text/css">
</head>

<body>
    <p class="kop">Koptekst</p>

    <ul class="submenu">
        <li class="submenu"><a href="link1.htm" target="inhoud">Link 1</a></li>
        <li class="submenu"><a href="link2.htm" target="inhoud">Link 2</a></li>
    </ul>
    </div>
</body>
</html>


Html van een bestand dat in inhoud laadt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<html>

<head>
    <title>Titel</title>
    <link rel="stylesheet" href="../../site/alg.css" type="text/css">
</head>

<body>
    <p class="kop">Koptekst</p>

    <p>Blablablablablablablablablablablablabla</p>
</body>
</html>


Beide pagina's verwijzen dus naar dezelfde css en zijn qua opmaak/indeling identiek.

CSS
code:
1
2
3
4
5
6
7
8
9
body            {font-family:arial;color:#114088;font-size:100%;font-weight:lighter;margin-left:10%;margin-top:3%;margin-bottom:5%;margin-right:21%;text-align:justify;}

p.kop           {font-weight:bold;}

ul.submenu      {padding-left:10%;margin-left:0px;}
li.submenu      {list-style-type:circle;font-family:arial;color:#114088;font-size:100%;font-weight:lighter;}

ul.link         {padding-left:2.5%;margin-left:0px;}
li.link         {list-style-type:circle;}


Dan nu het probleem:
Afbeeldingslocatie: http://www.limburglos.nl/temp/vb.jpgVoor de duidelijkheid, boven is net nog een stukje van het frame "top" nog te zien, dan links "submenu" en rechts "inhoud".

Zoals jullie zien wordt bij het bestand dat in het frame "submenu" laadt, de topmarge niet meegenomen. Ik snap echter niet waarom die niet wordt meegenomen. Ik heb de pagina die in het frame "submenu" laadt eens een eigen CSS gegeven en de margin-top moet ik daarbij op 14% zitten om ongeveer op dezelfde hoogte uit te komen als bij de pagina die in het frame "inhoud" laadt. In de 'standaard' CSS staat margin-top op 3%. Ik snap echter niet waar dit verschil door komt (en dus ook niet hoe ik dat op kan lossen zonder twee CSS-bestanden aan te houden.

---------------------------

Het tweede 'probleem' is van een geheel andere aard. Over een achtergrondafbeelding wordt over 75% van de breedte een menu geplaatst met behulp van een horizontal list.

Wat ik in gedachten had was het volgende, CSS
code:
1
2
#menu1 ul   {position:absolute;left:-.7%;top:93px;margin-top:0px;}
#menu1 li   {display:inline;list-style-type:none;font-family:impact;color:#FFFFFF;font-size:120%;font-weight:lighter;}


Daarmee wil ik het volgende realiseren:
Afbeeldingslocatie: http://www.limburglos.nl/temp/link.jpg
In werkelijkheid zijn niet alle link-teksten even groot. Ik had alle elementen (dus "Link" én "|" steeds in een apart <li></li>-koppel geduwd en de ruimte tussen de elementen op te lossen door er een padding-right op te zetten. Het geheel moet echter meegroeien met de paginagrootte (bij verschillende resoluties dus) en dus de padding-right-waarde zou relatief moeten zijn (bij een vaste grootte vallen de items anders uiteindelijk in de beedte buiten de beschikbare ruimte). Momenteel heb ik dat opgelost door in plaats van een horizontal list een tabel te gebruiken, maar een en ander moet toch ook gewoon met een opsomming kunnen?


Heeft iemand een idee wat er in het eerste geval fout gaat en hoe ik de horizontal list in het menu kan verwerken?

Verwijderd

In de HTML van het submenu bevindt zich een </div>. misschien heeft het daarmee te maken?

Ik zou zo niet weten hoe je die horizontale list in het menu kan verwerken.

Wel heb ik een algemene opmerking. Als je geen frames hoeft te gebruiken van een "opdrachtgever" is het verstandig om dit ook niet te doen. Frames zijn om verschillende redens lastig in gebruik. Persoonlijk vind ik een site die zich aan de resolutie aanpast niet erg mooi. Hou het simpel :)

  • Luke!
  • Registratie: Juli 2001
  • Laatst online: 14:12

Luke!

#Treinbaas
Topicstarter
Die </div> hoort er inderdaad niet te staan, maar het is helaas niet de oplossing voor 't probleem. Het onderste frame (rand) is niet zo noodzakelijk, voor de rest vind ik het (als opdrachtgever zelf ;)) wel handig vanwege het waarschijnlijk regelmatig moeten aanpassen van de menu's.

Thx anyway :)

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Frames en quirksmode rendering; dat zou in ieder geval wel voor verschillen tussen browsers kunnen zorgen (heb je het probleem enkel in 1 bepaalde browser of in meerdere?).
Verder is een margin-top in procenten natuurlijk lastig te bepalen door een browser, want 3% van wat eigenlijk?

edit: de specificatie zegt het volgende omtrent percentuele margins:
The percentage is calculated with respect to the width of the generated box's containing block. Note that this is true for 'margin-top' and 'margin-bottom' as well. If the containing block's width depends on this element, then the resulting layout is undefined in CSS 2.1.
margin-top en margin-bottom worden dus bepaald door de breedte van het element als je procenten gebruikt :)

[ Voor 12% gewijzigd door crisp op 25-12-2006 11:44 ]

Intentionally left blank


  • Luke!
  • Registratie: Juli 2001
  • Laatst online: 14:12

Luke!

#Treinbaas
Topicstarter
crisp schreef op maandag 25 december 2006 @ 11:40:
Frames en quirksmode rendering; dat zou in ieder geval wel voor verschillen tussen browsers kunnen zorgen (heb je het probleem enkel in 1 bepaalde browser of in meerdere?).
Dit 'probleem' treedt op in zowel IE als FF.
Verder is een margin-top in procenten natuurlijk lastig te bepalen door een browser, want 3% van wat eigenlijk?

edit: de specificatie zegt het volgende omtrent percentuele margins:
[...]
margin-top en margin-bottom worden dus bepaald door de breedte van het element als je procenten gebruikt :)
Oh. Ja, dan snap ik wel waar dat verschil door komt.... :p Thx!

Staat alleen het tweede puntje nog, met die padding.

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Luccus schreef op maandag 25 december 2006 @ 13:34:
[...]
Staat alleen het tweede puntje nog, met die padding.
Ik zou die list-items gewoon left floaten, dan kan je ze gewoon een (percentuele) breedte geven. Dat scheidingsteken zou ik dmv een background-image doen, het is immers enkel visueel bedoelt.

Intentionally left blank


  • Luke!
  • Registratie: Juli 2001
  • Laatst online: 14:12

Luke!

#Treinbaas
Topicstarter
crisp schreef op maandag 25 december 2006 @ 14:17:
[...]
Ik zou die list-items gewoon left floaten, dan kan je ze gewoon een (percentuele) breedte geven. Dat scheidingsteken zou ik dmv een background-image doen, het is immers enkel visueel bedoelt.
Als ik in de CSS voor li een {float:left;width:x;} meegeef dan kan ik width niet percentueel opgeven. Verder zou het dan toch niet uitmaken om de scheidingstekens een andere class mee te geven* en hun width ook in de CSS te regelen? Scheelt me gekloot met afbeeldingen, er ligt al een backgroundimage in.

CSS
code:
1
2
#menu1 ul   {position:absolute;left:-.7%;top:93px;margin-top:0px;}
#menu1 li   {float:left;width:20%;list-style-type:none;font-family:impact;color:#FFFFFF;font-size:120%;font-weight:lighter;}


* Ik heb het hele menu dus in een div class="menu1" zitten. Kan ik daarbinnen dan nog zowel een li class="menuitem" en li class ="menusch" maken om die allebei een aparte width mee te geven?

[ Voor 45% gewijzigd door Luke! op 25-12-2006 15:20 ]

Pagina: 1