Ik ben bezig aan mijn nieuwe website, maar voor mijn lay-out ondervind ik een paar problemen... En ik weet echt niet waar ze vandaan komen...
Bij chrome en firefox heb ik helemaal geen problemen, en bij IE heb ik ze wel.
Probleem 1:
Mijn logo/bedrijfsnaam wordt in 2 gesneden, omdat mijn menu blauwe menu tab iedere keer een klein beetje van de rand afspringt.
Probleem 2:
Bij de contact pagina wordt heel de boel uit elkaar getrokken...
Je mist een doctype. Dit moet altijd eerst, anders gaat IE in de qruiks mode (doen alsof het IE6 is).
Meer fouten:
- Lay out maak je in tabellen en niet in divs.
- HTML schrijf je met een kleine letter, in XHTML is dit zelfs verplicht.
- Gebruik geen inline CSS. Stop alles in de Stylesheet, dus geen height= enz.
- Afbeeldingen voor het design doe je met CSS: background.
- Als je een vlak wilt hebben van 1 kleur moet je geen image gebruiken, maar de kleur optie bij CSS: background.(zie vorige link)
inderdaad, je basis structuur in tabellen is not done tegenwoordig.
div's met ID's en Classes en een goeie css ernaast doen wonderen, ik denk dat er weinig mensen trek hebben om hierin naar bugs te gaan zoeken. Maar om je een beetje op weg te helpen:
<body>
<div id="Container">
<div id="Header">
<a class="logo"><img src="logo.jpg"></a>
<div class="navigation">hier je menu (in een list)</div>
<div class="keyvisual"> </div>
</div>
<div id="Content">hier je pagina's invoegen</div>
<div id="Footer">inhoud van je footer</div>
</div>
</body>
Oei, bij mij is het dus allemaal een beetje ouderwets laat maar zeggen...
Maar wat is nu het beste, lay-out in tabellen of in div?
Als ik een design maak in photoshop, dan kan ik deze gewoon exporteren en ik heb deze in html...
Dus waarom zou ik met div elementen beginnen prutsen?
En welk doctype gebruik ik best?
Ik heb er nu even de standaard van dreamweaver in geplakt. Met het gevolg dat de fout in mijn navigatie opgelost is. Maar nu past deze mijn css niet helemaal correct toe in mijn tabellen.
Div zijn veel beter, mits je ook CSS gebruikt (in een aparte stylesheet).
Photoshop is gemaakt om te designen niet om te html-en etc, daarvoor heb je dreamweaver...
doctype kan niet echt heel erg fout gaan... maar tabellen hebben hun eigen gedragingen. Het enige waar ik nog tabellen voor gebruik is voor mailings... in een website doe ik ALLES met divs tenzij er een tabel moet komen om informatie in te zetten, maar als ik zonder tabellen kan doe ik het zonder.
En vele andere editors. Want dreamweaver heeft ook een WYSIWYG editor, dus die zou ik niet zo snel gebruiken.
webbiexl schreef:
doctype kan niet echt heel erg fout gaan...
Een doctype kan juist wel heel veel doen! Als er geen doctype is of het doctype niet op regel 1 staat gaat IE in de qruiks mode. Dan zit je hele website door elkaar.
Dit is dus waarschijnlijk de fout bij cowb. Je kan denk ik het best HTML4 transitional doctype gebruiken.
Verder is een design in divs veel beter dan in tabellen.
Wel aangezien het hier nu niet direct over een moeilijke design gaat, heb ik al even zitten proberen om mijn design over te zetten naar div.
Maar ik sukkel een beetje met die position dingen. Dus daar moet ik me nog een beetje beter in informeren...
[..quote..]
En vele andere editors. Want dreamweaver heeft ook een WYSIWYG editor, dus die zou ik niet zo snel gebruiken.[..quote..]
Ja dat ook maar hij zegt dat hij dreamweaver heeft dus dat...
Waldio schreef:
[..quote..]
Een doctype kan juist wel heel veel doen! Als er geen doctype is of het doctype niet op regel 1 staat gaat IE in de qruiks mode. Dan zit je hele website door elkaar.[..quote..]
dat zeg ik tog niet, het maakt in principe niet onwijs veel uit welke doctype hij gebruikt zolang hij er maar 1 inzet, en dat die tabellen niet goed gaan is logisch want die hebben hun eigen gedragingen...
Als je quote doe het dan goed ;) Dat de jager de wolf opensnijd wil nog niet zeggen dat hij een coldblooded killer is
Positioning is eigenlijk heel simpel als je het principe doorhebt, daar dit met alles zo is
Je hebt 2 divs (div Aa en Ab) in een div (A).
div Aa wil je rechts halverwege div A hebben en div div Ab wil je daar overheen positioneren. Nu kan je die 2 divs een positie geven dmv positioning.
Die 2 div Aa en Ab geef je position: absolute;.
Maar er is een addertje: Position: absolute; heeft altijd een container nodig om zijn positie te bepalen en de body tag heeft standaard de hoogste rang in de orde van een website en houd alles netjes binnen het "frame" (de opper-div met de verentooi en vredespijp als je het zo wilt zien).
Nu wil je niet dat ze rechts in het midden van je "frame" komen te staan maar rechts in het midden van div A. Daarvoor moet je div A ook een positie geven, namelijk position: relative;. Dit houd in dat voor de divs Aa en Ab nu relatief gezien div A de opper-div is.
Nu over het overlappen van Ab over Aa
Als je div overlappen heb je, of je het nou leuk vind of niet, je te houden aan een volgorde. Ja vervelend, maar zo is het nou eenmaal . De onderste gepositioneerde div komt bovenaan het rijtje en hoe meer laagjes je hebt, laten we zeggen, div Aa komt onderop dus bovenaan het lijstje, daarop div Ab die staat onder div Aa in het lijstje
@webbiexl, ik dacht dat je bedoelde te zeggen dat een doctype niet nodig is. Maar je bedoelde te zeggen dat het soort doctype niet uitmaakt, als er maar iets staat.
Nu is dat ook niet helemaal waar, want als je HTML script en je een XHTML doctype neerzet is het niet valid...
@webbiexl: ik heb ondertussen al ontdekt dat je ook met Z-index kan werken om in lagen te werken...
Is er trouwens geen website waar er wat commando's staan om div de aligneren? Ik heb heel lang moeten zoeken om dingen te vinden zoals float ed.
Ik heb ook een reden gevonden waarom ik gebruik maakte van tabellen. Bij mijn navigatie staan er een aantal afbeeldingen naast elkaar. En wanneer ze niet in een tabel staan dan is er een zeker ruimte tussen de 2 afbeeldingen waardoor mijn navigatie balk op niks trekt...
Dit is wellicht op te lossen met een beetje CSS, alleen weet ik nog niet hoe...
Dat kun je oplossen met CSS margin/padding: http://sceneone.nl/positionering/margin.php
En een site voor aligneren is ook sceneone.nl. Lees de artikelen bij positionering maar eens, margin/padding artikel is er daar 1 van.
Ook zou ik de images als background plaatsen, zodoende kan je deze met css veranderen bij hoveren. De gebruiker heeft zo geen javascript nodig voor deze acties.
Waarom er nu wel een spacing is weet ik niet. waarschijnlijk nog ergens een kleinigheid dat over het hoofd wordt gezien. In elk geval zou ik float:left of right aanraden.
Dat is wel een goed idee. Maar dit voldoet niet echt aan mijn eisen.
Want dan moet ik per knop een div gaan maken met bijhorende css voor de achtergrond afbeelding...
Float werkt wel hoor.
Maar er zitten meerdere afbeeldingen in één div, en de afbeeldingen horen gewoon mooi naast elkaar te staan, maar er zit een zeker ruimte tussen de twee afbeeldingen die ongewenst is...
Ik heb je afbeeldingen eens bekeken, je hebt ongeveer 1 pixel breedte ertussen (ook bij float, zonder float is dit niet). Deze ruimte is er enkel bij de standaard afbeelding, niet bij de hover-afbeelding (toch niet als men float).
De kleine grijze spatie, komt er enkel en alleen door de afbeelding zelf, immers de onderste 30 pixels aan de linkerkant zijn grijs (zoals de achtergrond) ipv zwart.
Het heeft niks met de afbeeldingen te maken hoor...
want op mijn andere versie is het gelukt via tabellen. En nu ik met div elementen probeer te werken gaat het niet!
Strange. Ik heb dit nochtans getest in IE8 en FF, beiden reageren zoals het moet de links (a) met images worden rechts geplaatst. (bij float right)
Ik heb dan nog verder gekeken en ik zie 2 problemen die mogelijks de verkeerde plaatsing tonen:
- je hebt de width van div#navigatie niet meer op 100% staan
- je gebruikt nog een andere browser, dewelke CSS anders interpreteert.
kan je de CSS eens posten zoals je deze hebt aangepast, dan kunnen we misschien verder troubleshooten.
<div id="content">Hier in worden mijn pagina's geladen.</div>
<div id="foother">Dit moet ten aller tijde helemaal onderaan tegen het browser plakken</div>
<divid="content">Hier in worden mijn pagina's geladen.</div>
<divid="foother">Dit moet ten aller tijde helemaal onderaan tegen het browser plakken</div>
De bedoeling is dus dat men foother ten alle tijde helemaal onderaan tegen de onderkant van men browser plakt. Dit kan via absolute. Maar wanneer mijn content een beetje groter wordt dan overlapt deze mijn foother, en dat wil ik niet... Hoe voorkom ik dit?
Dit is de situatie waarover ik het heb... http://www.crea...io&m=3
Als je van deze pagina naar de home pagina doorklikt dan zie je het verschil!
@Beirensg: Ik heb mijn CSS aangevuld met jouw code. Het is deels opgelost. Maar mijn foother blijft nog steeds tegen het einde van mijn content plakken in plaats van aan de onderkant van de pagina! Jammer genoeg.