Sidebar mee rekken met content div

Status
Niet open voor verdere reacties.
Hé, bij mij is de pagina nog steeds hetzelfde als toen ik mijn vorige reactie gaf. :shocked:
De css is ongewijzigd, de clear-div op het eind ontbreekt nog steeds enzo.
Op 1024*768px doet ie het dan ook niet goed, en ook op andere reso's wordt de sidebar niet tot onderaan doorgetrokken en komt de footer niet op z'n pootjes terecht.

Zitten we naar dezelfde versie te kijken?

(leeg je elke keer je browser-cache voordat je een nieuwe versie bekijkt?)
 
Laatst bewerkt:
Het zou toch moeten kloppen hoor. Was sommige wijzigingen vergeten (clear div en body height weghalen), maar de footer borders raken nog steeds de rechterkant niet aan..

Verder ziet het er op mijn werk en hier thuis (24" breedbeeld en 19" vierkant) verder wel prima uit.. Alles rekt goed mee enzo, het enige probleem lijkt me nu de footer.
 
Het zou toch moeten kloppen hoor.
Maar het klopt niet hoor. :p

In de html van kam.webencoding.nl/c5/ staat nog steeds (regel 62):
HTML:
...
<!--<div id="bottomspace" class="clear"></div>-->
...
Dat moet zijn:
HTML:
...
<div class="clear"></div>
...
Want er moet wel geklierd blijven worden. :)

Wat doet ie dan?
 
Echt vreemd, want ik heb t echt aangepast en geupload. Ben pas morgenmiddag weer in de gelegenheid om t te fixen. Dan laat ik het wel weten ;-)
 
Je had gelijk, er was iets foutgegaan met de upload. Nu klopt de clear-div wel, maar zie ik nog steeds dat de footer niet aansluit..
 
Footer helemaal met z'n voetjes op de onderrand van het scherm?
Die zat er wel in in de 100% test kort (en idem lang) van reactie nr. 35.

Daar stond o.a.:
HTML:
html {
   ...
   height: 100%;
   }
body {
   ...
   min-height: 100%;
   }
Nu zit er in:
HTML:
html {
   ...
   height: 99%;
   }
body {
   ...
   min-height: 99%;
   }
Dan maakt een korte pagina het scherm vol op 1% van de hoogte na. *) :)

Met vriendelijke groet,
CSShunter
__________
*) Of .99*99%, dan is het 2%, daar wil ik afwezen. ;)
 
Footer helemaal met z'n voetjes op de onderrand van het scherm?
Die zat er wel in in de 100% test kort (en idem lang) van reactie nr. 35.

Daar stond o.a.:
HTML:
html {
   ...
   height: 100%;
   }
body {
   ...
   min-height: 100%;
   }
Nu zit er in:
HTML:
html {
   ...
   height: 99%;
   }
body {
   ...
   min-height: 99%;
   }
Dan maakt een korte pagina het scherm vol op 1% van de hoogte na. *) :)

Met vriendelijke groet,
CSShunter
__________
*) Of .99*99%, dan is het 2%, daar wil ik afwezen. ;)

De 99% was bewust, omdat ik met 100% een scrollbalk kreeg, en die wilde ik niet. Het probleem wat ik bedoel is iets anders.

Als je goed naar de footer kijkt, dan zie je dat de top-border aan de rechterkant niet aansluit aan de rechter-border van het 'geheel'. Er zit 1 of 2 pixels speling.. Ik kan echter niet achterhalen waar dit vandaan komt..
 
Ja, ik heb even m'n pixelometer erbij gepakt, en het is een gapend zwart gat van 1px. ;) Het lijntje is de boven-border van de #footer. Dat varieert dus met de breedte van de #footer.
Met:
Code:
#footer {
   ...
   width: 769px;
   }
is het gaatje gedicht.
De oorzaak zal zijn dat de #footer er absoluut in staat, en dan geen rekening hoeft te houden met de rechter-border, zoals de andere elementen die 768px nodig hebben.

==========
De 99% was bewust ... enz.
Jazeker, die 100% van mij ook!
En ook de {padding-bottom: 1px;} voor de <html>: juist om een scrollbar te forceren!

Struikelpunt is namelijk, dat Firefox, Chrome, Opera en Safari niet alleen geen scrollbar laten zien als het niet nodig is, maar ook geen ruimte voor de rechter-scrollbar hebben gereserveerd.
  • Internet Explorer doet het anders: die laat ook niet z'n blauwe scrollbar zien, maar heeft wel de ruimte gereserveerd; die is uit-gegrijsd en valt daardoor niet zo op aan de rand van het scherm.
Dit heeft consequenties voor gecentreerde websites zoals deze. Bij een korte pagina is er geen scrollbar, en staat het midden van de pagina op exact 50% van de breedte van het scherm.
Bij een lange pagina is er wel een scrollbar, van ca. 17px breed. Die gaat af van de paginabreedte, en dan is 50% van de overblijvende ruimte niet 50% van de schermbreedte, maar minder: een stukje naar links (als ik het wel heb 17/2= 8.5 pixel, heel knap).
Daardoor zie je in FF enz. de pagina verspringen als je van een korte naar een lange pagina gaat, en vice versa.
Het is dus kiezen of delen: of geen scrollbar op een korte pagina (maar verspringen bij een lange pagina), of geen verspringen (maar een scrollbar op de korte pagina's).

Ik kies altijd voor de scrollbar, want verspringende pagina's vind ik hinderlijker.
Zo is 't gekomen met die 100%+1px. :)
En hier kan de footer dan ook mooi op de vloer landen.

Met vriendelijke groet,
CSShunter
 
Hallo CSSHunter!

Bedankt voor je medewerking weer. Tot nu toe leek alles goed te gaan, maar ik ben helaas tegen nog een probleempje aangelopen.

De locatie van het menu schijnt voor problemen te zorgen i.c.m. mijn CMS. Nu was ik de structuur eens aan het bekijken, en kan ik het me wel enigszins voorstellen. Het menu (nu in secondwrap) valt eigenlijk binnen de firstwrap. Is er een manier waarop we het menu op dezelfde locatie kunnen houden als nu, maar het nu in de firstwrap verwerken? Hopelijk werkt mijn CMS dan een stuk beter.

Edit:
Heb het menu nu herprogrammeert (controleer het maar even), maar het werkt nog steeds niet.. De CMS ziet mijn DIV's op de juiste positie, maar op één of andere manier registreert hij de mouse-over verkeerd. Ik weet niet of jij toevallig iets vreemds ziet in die ccm-style bestanden?

Edit:
Heb het menu wat jij voor me gemaakt hebt terug gezet. Dat bleek toch beter te werken. Het jammere is dat de CMS nog steeds niet optimaal functioneert, dus mijn laatste vraag blijft staan.
 
Laatst bewerkt:
Is er een manier waarop we het menu op dezelfde locatie kunnen houden als nu, maar het nu in de firstwrap verwerken?
Nee, dat zal niet gaan, want de firstwrap heeft een vaste hoogte van 200px. Als het menu dan op twee regels moet komen, werkt dat niet, want dan zou de firstwrap opeens hoger moeten worden. Vandaar dat ik 'm in de secondwrap had gezet, en wat omhoog getild om over de firstwrap heen te komen.

Het lastige is, dat de firstwrap en de secondwrap in banen onder elkaar zitten, terwijl de hoofdindeling eigenlijk twee kolommen had moeten zijn: een sidebar-kolom en een rechterblok.

Maar wat het niet goed in het menu doet, is dat dat het submenu afgekapt wordt als je hovert?
Dan kijk je met IE, want alle andere browsers hebben er geen last van. ;)

Probeer eens:
Code:
#menu {
   ...
   position: relative;
   }
h1 {
   margin: 20px 0 0 0;
   padding: 0;
   }
Gaat het dan beter?
 
Nee, dat zal niet gaan, want de firstwrap heeft een vaste hoogte van 200px. Als het menu dan op twee regels moet komen, werkt dat niet, want dan zou de firstwrap opeens hoger moeten worden. Vandaar dat ik 'm in de secondwrap had gezet, en wat omhoog getild om over de firstwrap heen te komen.

Het lastige is, dat de firstwrap en de secondwrap in banen onder elkaar zitten, terwijl de hoofdindeling eigenlijk twee kolommen had moeten zijn: een sidebar-kolom en een rechterblok.

Maar wat het niet goed in het menu doet, is dat dat het submenu afgekapt wordt als je hovert?
Dan kijk je met IE, want alle andere browsers hebben er geen last van. ;)

Probeer eens:
Code:
#menu {
   ...
   position: relative;
   }
h1 {
   margin: 20px 0 0 0;
   padding: 0;
   }
Gaat het dan beter?
Hi!

Ik heb geen problemen met IE op dit moment, jij wel?

Ik kan nu 2 dingen doen:

- Een 'dummy' thema maken voor de CMS, die wél goed werkt, en waar ik tijdelijk naar kan switchen indien ik precisiewerk moet doen. Daarna kan ik dan weer terug switchen naar het echte design. Het grote nadeel hieraan is dat het dummy thema dan zichtbaar is in de live-omgeving, en dat mag eigenlijk écht niet gebeuren.

- Het huidige thema compleet redesignen :( En, no way dat me dat gaat lukken zonder jouw hulp.

Edit:
Ben ik weer. Heb voor optie 2 gekozen, en ben begonnen met jouw 15-stappenplan resultaat (deze: http://bliksekaters.nl/tests/knights-nw-f15.htm).
Het werkt nu echt perfect in combinatie met mijn CMS, het enige wat ik nog opnieuw moet regelen is de minimum hoogte van de pagina. Ik ga kijken of dat lukt.

Edit:
Ik krijg het niet voor elkaar..

Ik heb het nu zo: *knip*

Zoals je kunt zien worden nog de oude achtergrondafbeeldingen gebruikt. Ik heb geprobeerd de nieuwe te implementeren, en een minimum hoogte te creëren (met jouw voorgaande tips), maar het wilde niet lukken.

Kun jij me helpen om dit design de minimumhoogte van het scherm mee te geven, en de 'nieuwe' images te implementeren? :)
(Oja: en hoe ik het menu weer 'in' de header krijg (zodat de content start op dezelfde hoogte als de sidebar) en dat de footer weer aan de grond blijft.)

Edit:
Ik heb de footer nu tegen de onderkant aan gekregen, maar met de 'nieuwe' indeling krijg ik hem niet exact onder mijn content.. De 'left' in de CSS schijnt niet goed te werken.. Als ik 'left: 0' doe, dan staat hij tegen de linkerkant van de sidebar. Als ik dan 'left: 221px' doe (221 = breedte sidebar), dan gaat hij juist alleen maar meer naar links..?
 
Laatst bewerkt:
Shoot! :(
Was ik een halfuurtje bezig een mooie reactie te schrijven ... Windows crash. :shocked:

En dan is je concept weg: want het inlog-sessiecookie van helpmij is verdwenen, dus kan niet meer op de oude "bezig met antwoord" pagina komen, en het stond lokaal alleen in het FF werkgeheugen dat bij een crash verloren gaat. En een tmp-kopie van de reactie tot dan toe had ik al wel in Kladblok gezet voor eventualiteiten (wegvallende internet-verbinding, iets per ongeluk uit de reactie wissen enzo), maar dat had ik nog net niet opgeslagen...
Grmpf! :evil:
Maar ik zal kijken of mijn eigen werkgeheugen me niet in de steek laat. ;)

Mvrgr,
CSShunter
 
Goed: aan alle kanten een continuing story dus. ;)

Tja, in mijn eerdere 15-stappenplan was nog niet de nagekomen wens opgenomen om de footer altijd op de bodem van het venster te krijgen, en dat verandert de structuur aanzienlijk.
In je laatste versie van 't moment (www.knightsandmerchants.net) zit bv. naast de body{min-height:100%;} ook nog een body{height:100%;}, en dan kan de footer mooi in het midden van de pagina komen te staan.

Een nieuwe Make Over!
Maar als ik het goed begrijp, zit je in concrete5 niet gebakken aan de oude indeling met de <div id="to-center">, de <div id="firstwrap"> en de <div id="secondwrap">? Want die zie ik in de nieuwe versie gelukkig niet meer terugkomen.
Dat schept nieuwe kansen! :)

Want dan kan mijn oude plan opgehaald worden om het zo simpel mogelijk te doen: een linkerkolom, een rechterblok en een footer.
Dan kan het menu ook in de header van het rechterblok komen met een eronder doorlopende header-background, wat eerst niet ging (omdat de header in z'n horizontale opbouw een vaste hoogte moest hebben, en het omhoog-trek partijtje voor het menu nodig was). Dat hoeft dan niet meer, en maakt het veel makkelijker.
Kortom, de volgende opbouw:
HTML:
<body>

<div id="sidebar">
   [inhoud sidebar]
</div>

<div id="main"><!-- is hele rechterblok (excl. footer) -->
   <div id="header">
      <img src="images/kam_logo.gif" />
      <div id="menucontainer">
         [alles van het menu]
      </div>
   </div>

   <div id="content">
      [de hele pagina-inhoud]
   </div>
</div><!-- eind #main -->

<div class="clearB"><!-- hoogste van #sidebar en #main wint --></div>

<div id="footer">
   [inhoud footer]
</div>
   
</body>
Als jij kans ziet dit in je systeem te krijgen, zie ik wel kans om de bijpassende css te verhapstukken. ;)

=====
Ik heb geen problemen met IE op dit moment, jij wel?
Nou en of! Met mijn IE7 kan ik niet bij de items van het submenu onder de twee eerste komen, dan floept het het hele submenu weg.
Dat openbaart zich nu pas, omdat er eerder maar 1 item in het submenu stond, en je er nu een heel rijtje aan hebt toegevoegd.
Ook onhandig kan zijn: het links lijnen van de submenu's. Bij een submenu op een klein hoofdmenu-item aan de rechterkant kan het submenu van de pagina gaan aflopen.
Bij elkaar vraagt dat een complete revisie van het menu waar ik je mee had opgezadeld.

Daarbij komt kijken:
  1. Het puur met css maken van een horizontaal dropdown-menu is één.
    Dat is te doen.
  2. Het maken van een horizontaal dropdown-menu met variabele item-breedtes is twee.
    Ook dat valt te doen.
  3. Het maken van een gecentreerd horizontaal dropdown-menu met variabele item-breedtes is drie.
    Dat is al wat lastiger, maar het is nog steeds te doen.
  4. Het maken van een gecentreerd horizontaal dropdown-menu met variabele item-breedtes, dat zo nodig automatisch een tweede regel aanmaakt (bij veel items of bij vergroting van het letterformaat): dat is vier.
    Dat is niet ongecompliceerd, maar het kan wel (mijn 100%-versie; o.k. in FF, Chrome, Opera en Safari). *)
  5. Maar ... het maken van een gecentreerd horizontaal dropdown-menu met variabele item-breedtes, dat zo nodig automatisch een tweede regel aanmaakt,
    en het ook nog doet in alle IE-versies ...
    ... dat valt in de categorie "misdadige opdrachten". :d
Maar ik geloof dat ik een heel eind gekomen ben. Met een nieuw menu èn de nieuwe structuur, en deze keer in een 1-staps plan:

Resultaten "Make Over 2"
Opmerkingen over Internet Explorer.
  • Eerst de andere browsers: Firefox, Chrome, Opera en Safari doen het probleemloos.
  • IE6 heb ik laten schieten.
  • IE7: doet het bij het huidige menu probleemloos met de lettergroottes (die IE in het menu Beeld "tekengroote" noemt) normaal, groter, kleiner, en extra klein.
  • Voor IE7 is daarvoor een "Conditional Comment" nodig met een afwijkende stijlregel. Deze CC komt in de head van alle pagina's met het menu te staan (zie broncode).
  • IE7 heeft een probleem bij de lettergrootte extra groot en als er meer items zijn en een tweede regel nodig is: dan komt het submenu niet boven de hoofdmenu-items op de tweede regel.
  • Voor de test heb ik een "netrenderer-versie" gemaakt, waarin het eerste menu opengeklapt is (deze: knights-makeover2-netrenderer.htm), die ingevoerd kan worden in de screenshot-machine van Netrenderer (www.ipinfo.info/netrenderer), waaruit de submenu-resultaten voor IE7, IE8 en IE9 opgemaakt kunnen worden.
  • In Netrenderer doen IE8 en IE9 het goed (zonder CC).
knights-ie8-netrenderer.png

Overige opmerkingen
  • De header-afbeelding heb ik iets verlengd aan de onderkant, zodat er nooit een zwart gat onderaan het menu kan komen (deze gebruikt).
  • Tegelijkertijd de gelegenheid te baat genomen om het middengedeelte wat aan te harken: met minder rommelige achtergrond komt het logo beter uit de verf. :)
  • De content-bg afbeelding heb ik een kopje kleiner gemaakt: scheelt weer 6kB aan overbodige zwarte pixels, en een beetje snellere pagina.
Met vriendelijke groet,
CSShunter
__________
*) Voor gecentreerde horizontale dropdowns zijn verschillende methoden in omloop (zie ook deze Google).
Maar niet geheel toevallig hebben alle demo's daarvan een uiterst kort lijstje met gecentreerde hoofd-items: ze passen allemaal ruimschoots op één regel. Dan kan je tweeregelige problemen niet zien!
 
Laatst bewerkt:
Edit: het is al gelukt!

Heb alles opmaak van de body verplaatst naar een 'container'-div, en die ook in de HTML geplaatst. Dat werkt fantastisch, alleen rekte daarna de pagina niet meer tot de hoogte van het scherm.
Dat heb ik opgelost door de 'container'-div een min-height van 100% te geven.

Resultaat: Het werkt vlekkeloos (voor zover ik kan zien). Zou jij alles willen checken voor me? Je hulp was super!

Hi! :)

Het werkt... op één puntje na (en dat is meteen hét grote probleem waar ik constant tegenaan loop.

Het gaat om dit attribuut:

Code:
body {
position: relative;
}
Als in de CSS van de body 'position: relative' wordt opgegeven, loopt heel mijn CSS in de soep. Dit is makkelijk op te lossen door dat weg te halen. De hele site werkt dan nog goed, op de footer na! De footer loopt dan niet door naar onderen, maar blijft op zijn oorspronkelijk plek staan.

Als we dus die relative position uit de body krijgen én de footer altijd onderaan krijgen zijn we helemaal klaar. Is dit mogelijk? :)

Mvg,
Tom
 
Laatst bewerkt:
Als in de CSS van de body 'position: relative' wordt opgegeven, loopt heel mijn CSS in de soep.
Daar snap ik nu helemaal niets van :shocked:

Je laatste versie (met de body{position:relative;} er in, conform m'n stylesheet) doet het bij mij prima!
Bedoel je soms "CMS"?
Dat kan ik me nog wel voorstellen.

Maar als dat het is, kan je de body{position:relative;} uit het stylesheet halen, zodat je pagina's toonbaar zijn in het CMS.

Met een beetje geluk zou je zonder schade aan het CMS die relativiteit er vervolgens weer in kunnen brengen als je helemaal onderaan elke pagina zet:
HTML:
...
<script type="text/javascript">
   var body = document.getElementsByTagName('body')[0];
   body.style.position = 'relative';
</script>
</body>
</html>
Misschien werkt dat?

Of anders zou je in de CMS-fabriek moeten rondneuzen waar de afdeling is die de afbeeldingen op scherm verzorgt.
In de concrete5-documentatie vond ik dat je de "Edit Mode" kunt beïnvloeden:
Add space between blocks in edit mode
PHP:
<?php  if ($page->isEditMode()) { ?>
  <div style="min-height: 20px"> </div>
<?php  } ?>
(www.concrete5.org/documentation/introduction/cheat-sheet)​
Als dat mogelijk is, is misschien meer mogelijk?

Met vriendelijke groet,
CSShunter
 
Ah, dat was dus een stevige kruispost! :)
Ik had je vraag nog open staan toen ik wat anders ging doen. Terug van weggeweest niet de pagina ververst - en nu zie ik bij het inzenden dat de vraag "zichzelf" heeft opgelost.
Mooi werk! :thumb:

Ik ga zo even kijken.
 
Hoeps! :(
Nu zie ik opeens dat in Opera *) de submenus wegfloepen als je van een hoofdmenu-item naar beneden gaat. Denk je alles gehad te hebben, krijg je dat weer...
Totaal niet verwacht: bij m'n testen was ik even vlug horizontaal langs de hoofd-items gehoverd om tevreden te zien dat de submenus ook bij Opera op hun plaats stonden. En als een submenu in Firefox draait (ik ontwerp met FF ernaast), doet het dat altijd ook wel in Opera.
Nu niet dus... :shocked: Je moet ook bij elke sch**t die je in de css plaatst of verandert meteen zorgvuldig op alle browsers testen. :rolleyes:

Ik weet niet of daar nog wat op te verzinnen valt. Maar als je op de hoofdpagina Informatie (en de andere idems) meteen bovenaan het submenu herhaalt (gewoon als horizontaal rijtje links), dan kunnen de Opera-fans er toch bij komen.

Ik hoop dat ik er niet van ga dromen.
CSShunter
_______
*) D.w.z. Opera versie 10.1. - Intussen zit Opera op versie 11.52, misschien doet die het beter?
 
Laatst bewerkt:
Ik bedoel een herhaling van het submenu, maar dan als vast submenu (zonder hover) op de pagina's die je in het hoofdmenu kunt aanklikken.

Bij nader inzien is een horizontale herhaling toch niet zo goed (ze passen er niet naast elkaar op!), en kan je beter een verticale herhaling maken. Dan kan het ook volledig in dezelfde stijl als de hover-submenu's, wat ook duidelijker en gebruikersvriendelijker is.

Zoiets:

knights-infopage.png


knights-otherpage.png
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan