CSS vraagje

  • Onderwerp starter Onderwerp starter beta
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

beta

Gebruiker
Lid geworden
8 aug 2005
Berichten
27
Hoi,

Ik heb een vraagje mbt tot CSS en een nette opmaak van mijn 'Links' pagina. Ik wil afbeeldingen gebruiken als links en daaronder een kleine omschrijving geven van de site. Nu lukt het me niet om de tekst netjes onder de afbeeldingen te krijgen. Bij de een zit de tekst 20 pixels onder de afbeelding en bij de ander iets van 5 oid. Hoe kan ik dit netjes oplossen? Moet ik de afbeeldingen links laten floaten of de tekst? (font etc is ook nog niet overal gelijk maar dat is geen probleem).

De link naar de pagina is: http://members.home.nl/l.belgers/Links.html

Alvast bedankt!
 
ze dit bij de class van je links of verander het.
margin-top:0px;
als dit niet werkt kan je dit ook proberen
display:inline;
 
Thx! Ik heb e.e.a geprobeerd en het ziet er nu een stuk beter uit!
 
Succes!
(pas nu even gaan kijken op flickr: schitterende foto's! :) )

O, en ik zie dat je in het menu onder "Contact" een rechtstreekse e-mail link hebt staan. Ik vind dat niet zo gebruikersvriendelijk, want ik verwacht dat je bij een klik op "Contact" naar een contact-pagina zal gaan, waar naam, adres, e-mail adres enz. op worden getoond (of een pagina met een e-mail formulier).
Nu begint bij een klik op "Contact" mijn computer te pruttelen, en ik zit een tijdje te wachten tot er iets gebeurt - dan gebeurt er iets: mijn e-mail programma blijkt gelanceerd te zijn! - Maar ik wilde alleen maar even kijken wat de contact-gegevens waren, en helemaal niet mijn mail-programma openen om direct een mailtje te gaan sturen. Dus mijn mail-programma weer sluiten; en al met al ben ik zeker een halve minuut voor nop bezig geweest... grmmpf! :confused:

Ik zou daarom ofwel de tussenstap van een contact-pagina maken, ofwel het woord "Contact" veranderen in "E-mail", ofwel onder het menu een aparte link "e-mail" zetten (want alle andere menu-onderdelen gaan wel naar een andere pagina, en deze niet). ;)

Met vriendelijke groet,
CSShunter

PS: misschien is je contact-pagina nog in aanbouw, dan heb ik niets gezegd (alleen tegen anderen die dit lezen en misschien hetzelfde doen). :)
 
Succes!
(pas nu even gaan kijken op flickr: schitterende foto's! :) )

O, en ik zie dat je in het menu onder "Contact" een rechtstreekse e-mail link hebt staan. Ik vind dat niet zo gebruikersvriendelijk, want ik verwacht dat je bij een klik op "Contact" naar een contact-pagina zal gaan, waar naam, adres, e-mail adres enz. op worden getoond (of een pagina met een e-mail formulier).
Nu begint bij een klik op "Contact" mijn computer te pruttelen, en ik zit een tijdje te wachten tot er iets gebeurt - dan gebeurt er iets: mijn e-mail programma blijkt gelanceerd te zijn! - Maar ik wilde alleen maar even kijken wat de contact-gegevens waren, en helemaal niet mijn mail-programma openen om direct een mailtje te gaan sturen. Dus mijn mail-programma weer sluiten; en al met al ben ik zeker een halve minuut voor nop bezig geweest... grmmpf! :confused:

Ik zou daarom ofwel de tussenstap van een contact-pagina maken, ofwel het woord "Contact" veranderen in "E-mail", ofwel onder het menu een aparte link "e-mail" zetten (want alle andere menu-onderdelen gaan wel naar een andere pagina, en deze niet). ;)

Met vriendelijke groet,
CSShunter

PS: misschien is je contact-pagina nog in aanbouw, dan heb ik niets gezegd (alleen tegen anderen die dit lezen en misschien hetzelfde doen). :)

Bedankt voor je comment! Je hebt inderdaad gelijk met dat 'contact' gedeelte. Ik ben pas welgeteld 1 week bezig met het maken van een website. Ik wist niet eens hoe ik iets op m'n Ziggo host geval :p moest zetten, laat staan dat ik iets wist van Dreamweaver. Mijn eerste website was met tabels maar dat is zo flexibel als niks vandaar dat ik ook nog effe DIV's moest leren (via adobe online tutorials ^^). Maar de site is nog zwaar in aanbouw. Ik was ook van plan om bij contact een extra pagina te maken zoals bij andere sites. Hier ben ik nog niet aan toegekomen. Morgen zet ik de foto's erop (moest dat ook nog uitvogelen via Lightroom, html/flash etc) maar dat was redelijk easy :p.
In ieder geval bedankt voor de info. Ik ga ermee aan de slag. Morgenavond ergens zal ik de geupdate site wel online hebben staan.

Groeten Luuk
 
Ik ben pas welgeteld 1 week bezig met het maken van een website.
Nou Luuk, petje af! :thumb:
Mocht je nog verlegen zitten om goede css-voorbeelden, dan kan je eens in de css-wiki van css-discuss gaan bladeren. Even naar beneden scrollen, en je komt genoeg tegen om de winteravonden door te komen. ;)
Er staat "FrontPage" boven, maar dat betekent in dit geval gewoon Voorpagina (en heeft gelukkig niets maar dan ook niets met de abominabele html-editor MS FrontPage te maken).

Met vriendelijke groet,
CSShunter
 
Bedankt voor de link!
Ik wilde een contact formulier pagina gaan maken maar las dat dat alleen goed in php kan. Maar ziggo ondersteund geen php dus zal ik even moeten wachten totdat ik m'n domeinnaam verzonnen heb (ik wilde bij hostingdiscounter.nl gaan).

Ook kom ik niet helemaal uit jouw list-items voorbeeld. Ik heb de broncode van jouw link geopend en e.e.a. in die van mij veranderd maar het lijkt er totaal niet op :p. Kun je me aangeven hoe je het ongeveer hebt gedaan? Ik zag al dat je redelijk wat nieuwe CSS rules had aangemaakt ervoor maar nu weet ik niet welke tag/class de images en text moeten krijgen (ik begin het net te leren :p).

Mvg,
Luuk

Edit: ik merk dat er nogal wat verschil is tussen de weergave op Safari (Dreamweaver staat op de Mac) en IE. Lelijke blauwe lijntjes om afbeeldingen bij Links en paarse om m'n header :(. Ik zal border: 0px even erbij gaan zetten.
 
Laatst bewerkt:
Hoi Luuk,
Kun je me aangeven hoe je het ongeveer hebt gedaan?
Jawel!
  1. Ik heb een serie css-opdrachten toegevoegd, die staan vanaf /* ===== nieuw ===== */ in regelnr.103 t/m regelnr.134. Loslaten hiervan op de oude html-code helpt niet, want:
  2. Als je nog even doorscrollt, zie je dat ik de hele structuur van de html-code van de <div id="mainContent"> drastisch heb omgebouwd (regel 195 t/m einde </div> in regel 221). Hier staan de elementen in, waarvan de styles met de css erboven zijn gedefinieerd.
De oorspronkelijke opbouw van een item was:
HTML:
<p class="style8"><a href="http://viewonnature.wordpress.com/"><img 
	class="linkimage" src="images/Wordpress.jpg" width="214" height="45" 
	alt="View on Nature" /></a></p>
<p class="linktekst"><span class="style15">View on Nature</span> is mijn 
	(Engelstalige) Weblog. Hier geef ik toelichtingen over mijn foto's 
	en over vind je ook de laatste Nikon nieuwtjes.</p>
D.w.z. alle regels als alinea's koud achter elkaar. Het volgende item heeft weer twee <p>'s, enz.
De nieuwe opbouw per item is geworden:
HTML:
<li><a href="http://viewonnature.wordpress.com/"><img 
	src="images/Wordpress.jpg" alt="View on Nature" width="214" height="45"></a>
    <p>Mijn (Engelstalige) Weblog. Hier geef ik toelichtingen over mijn foto's 
	en over vind je ook de laatste Nikon nieuwtjes.</p>
</li>
Dit is niet alleen korter, maar nu zijn ook steeds de img-link en de bijbehorende verklarende tekst samen opgenomen in één omvattend (list-)element <li>. Dat geldt ook voor de andere: het zijn nu ook in de html bij elkaar horende "blokjes" geworden die steeds hetzelfde zijn. Dat is niet alleen "semantisch beter" (hoi, zeggen de puristen onder ons), het heeft ook praktische voordelen bij het css-gebruik. Je kunt met minder id's en classes toe, en veranderen of aanvullen (zowel van de css als van de html) is veel makkelijker geworden.

Wat is er nu precies gebeurd?
We kijken eerst even naar wat het moet worden:
list-item.gif

Eigenlijk moeten het twee kolommetjes worden, maar dat verschijnsel kent css (nog) niet. Wat wel kan, is: het img telkens laten "drijven" aan de linkerkant { float: left; }.
Daarmee wordt het img (met de link-tag <a> ... </a> eromheen) uit de zg. "normal flow" gehaald, en wordt datgene wat wel in de "normal flow" zit, eromheen gedrapeerd. Als je dat zonder meer zou doen, zou hier de tekst onder de afbeelding doorlopen, want dat is de eerste beschikbare ruimte:
list-item2.gif

Om daar van af te komen, kunnen de alinea's <p> een margin (kantlijn-afstand) aan de linkerkant krijgen: { margin-left: 260px; }. De afstand van 260px is gekozen op grond van de meest brede afbeelding in de serie (FanchiPhotography) + nog wat vrij ruimte voor het mooi. Dan zijn alle toelichtingen onder elkaar op dezelfde plaats te zien. Het prettige is, dat nu de eerste 3 regels (naast het img) niet ook nog eens op 260px rechts van het plaatje beginnen: het plaatje zit niet in de "normal flow", de <p> ziet 'm dan niet, en doet net alsof de rekenafstand voor de 260px links van het plaatje begint. CSS heeft soms een wat eigenaardige manier van denken! Als je dit soort dingen eenmaal weet en ze vaak genoeg bent tegengekomen (bij mij doorgaans via het schade-en-schande model), dan begint het op den duur te wennen. ;)

Als bijverschijnsel: elke <li> heeft bovenin een border van 1px hoog gekregen (het grijze lijntje). Het lijntje eronder is dus het bovenlijntje van de volgende > en het allerlaatste item heeft dan ook geen onderlijntje.
Andere bijzaak, maar goed voor het oog: via de css-regel a img { border: 0; } vertellen we dat images die links zijn, niet zo'n 2 pixel brede blauwe rand moeten krijgen.

Voor de hoofdlijnen zijn er nu nog twee dingen nodig.
De verpakking: een lijstje kan een "unordered list" <ul>...</ul> zijn (een ongeordende lijst met alleen stipjes) of een "ordered list" <ol>...</ol> (een geordende lijst, d.w.z. met nummertjes 1,2,3 enz.). We kiezen voor een <ul>, en in de css halen we de bullet van elk item weg met ul { list-style: none; }.

Verder moet er nog iets verzonnen worden voor hele korte toelichtingen. Bij bv. maar één regel zou er dit gebeuren:
list-item3.gif

Wat is hier nu weer aan de hand? :shocked:
Niet alleen gaat de Flickr-afbeelding nu dwars door het lijntje van het volgende item, de ViewOnNature-afbeelding "kan er niet langs" en stoot met de neus van zijn linkerbovenhoek zo'n beetje tegen de rechterzijkant van de Flickr-afbeelding; en sleurt op zijn beurt de tekst mee naar rechts (tot het plaatje op is, en de tekst eronder komt (wel keurig op de 260px van links af). Hoezo?
Alweer komt dit door het floaten van de afbeeldingen en het daarom los staan van de "normal flow". Dan begint het volgende item op de plek die wel door de "normal flow" wordt voorgeschreven (ons oog zegt: te hoog!), en doordat de plaatjes een margin-top van 15px hebben (om in het normale geval op gelijke hoogte van de tekst te komen), kunnnen ze niet onder de vorige langs.
De truc is hier om een li { overflow: auto; } toe te voegen.
nu weet ik niet welke tag/class de images en text moeten krijgen
Ha, géén! :D
Als je telkens voor een item de nieuwe opbouw in <li>'s gebruikt, hoef je alleen maar een <li>...</li> in code-view te kopieren, en dan na het inplakken de link-gegevens (het link-doel, het img en de hoogte en breedte daarvan) + de bijbehorende tekst te veranderen. Of als 'm als "lege li" in te vullen:
HTML:
<li><a href="http://gelinktesite.nl/mapjeindiesite/paginavandoel.htm"><img 
	src="images/logo.png" alt="..." width="..." height="..."></a>
    <p>Hier ... de toelichtende tekst.</p>
</li>
Voor elke volgende doe je hetzelfde: klaar! :)

- Dat is het voordeel van css: je kunt met erg "schone html" werken (zonder allerlei extra id's en classes).
Hier gaat het om de drie elementen <a>, <img> en <p> die binnen een <li> zitten die binnen een <ul> zit, die binnen de <div id="mainContent">...</div> zit.
Dat is onze cascade. Om de style van een <p> in een item te bereiken, hoef je deze geen class of id mee te geven, als je begint met de #mainContent (dat is een id, en daar is er maar één van per pagina; dus daar mag je beginnen) en dan het trappetje van de waterval af gaat, bijvoorbeeld:
Code:
[FONT="Courier New"][SIZE="2"]#mainContent ul li p { 
   color: #EEEEEE;
   }[/SIZE][/FONT]
In het voorbeeld is er maar één soort <p> binnen de #mainContent (alle <p>'s zitten op dezelfde manier in de <li>'s van dezelfde <ul>). In dat geval kunnen we dus alle tussenliggende watervalletjes overslaan, en ook zeggen:
Code:
[FONT="Courier New"][SIZE="2"]#mainContent p { 
   color: green; 
   }[/SIZE][/FONT]
Dat wil zeggen: alle <p>'s die binnen de #mainContent zitten. Dus? Dus!

Anders wordt het, als je eronder bv. ook een brokje pure tekst zou willen zetten dat buiten het lijstje valt. Die tekst moet natuurlijk niet op 260px vanaf de linkerkant beginnen, maar gewoon de hele regel vullen. En stel dat die tekst niet groen moet zijn, maar rood. Dan pak je het zo aan:
Code:
[FONT="Courier New"][SIZE="2"]#mainContent p { /* alle p's binnen de #mainContent */ 
   margin: 0; 
   color: red; 
   }
#mainContent li p {  /* alleen die p's die in een li van de #mainContent zitten */
   margin-left: 260px; 
   color: green;
   }[/SIZE][/FONT]
Kortom: het meest specifieke geval krijgt telkens de voorrang.
(ik begin het net te leren :p)
Welkom in de wondere wereld van de css! :)

Groetjes,
CSShunter

[edit]Aha, na de inzending zag ik dat je de img {border:0;} al ontdekt hebt. Ik moet ook niet tussendoor weggaan en een half antwoord thuis laten kamperen op de nog aanblijvenstaande (aanstaanblijvende / aangeblevenstaande?) pc! :rolleyes:[/edit]

[edit]edit2 - O, voor het maken van vette tekst zou ik geen aparte class gebruiken, maar die er in zetten met <strong>...</strong>. Maar alles is beter dan een <b>...</b>![/edit]
 
Laatst bewerkt:
wow! Heel erg bedankt voor je goede/geduldige ;) uitleg! Ik ga ermee aan de slag en als het klaar is zal ik het je laten weten!

Nogmaals bedankt.

Gr. Luuk
 
Ik heb um geupdate en hij staat weer online --> http://members.home.nl/l.belgers/ . Als het goed is zijn alle bugs er nu zowat uit (onnodige CSS daargelaten ^^). Alleen nog wat kleine dingen veranderen zodat de tekst wat makkelijker te lezen is.

Kun je me verder nog 1 ding vertellen: hoe maak ik bold tekst wit als ik dit in codeview type: <strong>blablabla</strong>? Kan ik er dan ook ergens bijzetten color:FFFFF ofzoiets?

Gr. Luuk
 
Hoi Luuk,
hij staat weer online
Jaha, de link-pagina is prachtig geworden! :)
hoe maak ik bold tekst wit? Kan ik er dan ook ergens bijzetten color:FFFFF ofzoiets?
Yes! Als alle bold tekst van de hele site wit moet worden, kan het simpel met in het stylesheet:
Code:
strong {
   color: white;
   background-color: #111111;
   }
Het herhalen van de background-kleur is hier belangrijk voor als een bezoeker voor zijn toegankelijkheid de kleuren/achtergrondkleuren heeft omgewisseld (zwarte letters op witte achtergrond). De browser past dit nu ook toe bij de <strong>-woorden. Anders zouden die wit kunnen worden tegen een witte achtergrond, en dat leest wat minder prettig.
- Dat is ook de strekking van de kleur/achtergrondkleur waarschuwingen van de css-validator.

Als alléén de <strong> tekst binnen een bepaalde <div> (of ander element) wit moet worden, zet je de naam van die selector ervoor:
Code:
#naamvandediv strong {
   color: white;
   background-color: #111111;
   }
Weer volgens het trappetjes-model van de watervallen. Met proberen zie je zo of je genoeg tussenstapjes hebt gemaakt. ;)

CSShunter

PS: als je kleuren aangeeft met de hexadecimale notering { color: FFFFF; }, moet je er wel altijd het hekje { color: #FFFFF; } voor zetten, dan is het valid css en pakken alle browsers het.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan