uitlijnen text

Status
Niet open voor verdere reacties.

gertjuhhh1993

Gebruiker
Lid geworden
21 jun 2010
Berichten
127
beste mensen,

ik zit met het volgende probleem. ik heb een nav met een aantal linkjes en nu wil ik de eerste letter in de groenen balk hebben en de rest ernaast netjes onder elkaar. nu is het probleem als ik een non-monospaced font gebruik dat de uitlijning niet helemaal goed gaat. Hoe los ik dit op?

hier is een link met voorbeeld hoe het er uit ziet.nav.PNG

Alvast bedankt :)
 
Ik heb zoiets ooit opgelost door het in een table te zetten met 2 td's
 
1. Een tabel-oplossing
Ja, met een tabel kan het min of meer. Het is weliswaar niet zoals het hoort ("gebruik geen tabellen voor de opmaak!" Webrichtlijn R-pd.11.1), maar het kan wel: voor schermweergave. *)
Nadeel is dat in feite één link wordt uitgesmeerd over twee tabelcellen, die elk dezelfde link moeten bevatten, bv.:
HTML:
<tr>
    <td><a href="index.html">H</a></td>
    <td><a href="index.html">ome</a></td>
<tr>
Hiermee staat het woord "Home" niet als een echt woord in de html, wat bv. Google niet zo zal waarderen. De Google-bot ziet hetzelfde als een pure tekst-browser (die het ook niet zal waarderen!):

hifc-table-lynx.png

En een voorlees-browser gaat proberen dit voor te lezen:

hifc-table-fangs.png

Dus o.a. een link naar "ome" en een link naar "auto's" (want zo zal de voorlezer de "oto's" uitspreken).
  • Nu kan je wel de hoofdletters er ook als hidden text bij zetten in de tweede cel, maar de dubbele links blijven altijd.
Dit is dan meteen een mooie illustratie waarom die Webrichtlijnen-richtlijn er is! Dus de tabel-oplossing is het niet. ;)

==========
2. Een css-oplossing
"Met css kan alles > dus dit moet ook kunnen".
Inderdaad; en het principe is eenvoudig:
HTML:
<ul id="menu">
    <li><a href="index.html"> <span>H</span>ome</a></li>
    <li><a href="info.htm">   <span>I</span>nfo</a></li>
    <li><a href="fotos.htm">  <span>F</span>oto's</a></li>
    <li><a href="contact.htm"><span>C</span>ontact</a></li>
</ul>
Hier zijn het wel hele woorden.
De <span> krijgt telkens dezelfde breedte (opgegeven in de em-eenheid: afgestemd op de breedste hoofdletter).
Binnen de span kan de letter dan naar keuze links uitgelijnd, rechts uitgelijnd of gecentreerd worden. Gecentreerd lijkt me het mooiste, dan staat bv. de "I" niet zover van de "nfo" af.

hifc-css.png

In de praktijk is dit nogal lastig te realiseren: als je (a) de rechterkant van de hoofdletter-breedte altijd wilt laten samenvallen met de rechterkant van de groene background, plus (b) overeind wilt houden dat de opmaak in orde blijft als de lettergrootte door de bezoeker wordt opgeschaald (of verkleind), plus (c) een hover-variant wilt hebben, en (d) het ook nog cross-browser wilt laten werken (Internet Explorer ligt natuurlijk dwars).
Maar met extra drijfwerk (float's left), een extra <span> en flink wat gefiegel in margins en paddings met cijfers achter de komma kan het wel!


  • Resultaat: hifc.htm :)

  • Arial als proportioneel lettertype gebruikt, hoverbaar, valid xhtml1.0-strict, valid css2.1. **)
  • Getest in Firefox, Chrome, Opera, Safari en IE7.
  • Volgens Netrenderer.com kunnen IE8 en IE9 er ook mee overweg.
  • Voor de fijnregeling in de css (en een extra span in de html): zie broncode!

==========
3. Een image-oplossing
Dat kan natuurlijk altijd ook nog: de tekst als image-link produceren (met een title en hidden tekst erbij voor Google en de toegankelijkheid).
Dan is het ongevoelig voor lettergrootte-opschaling, staat exact op de goede plek, en ook een (css-) hover-variant is mogelijk.
Dat is waarschijnlijk de makkelijkste oplossing (met als nadeel: bij veranderingen in het menu moet opnieuw getekend worden).

Met vriendelijke groet,
CSShunter
____________
*) Onuitgewerkt voorbeeld met tabel-opmaak: hifc-table.htm.
**) NB: De css-validator heeft op het moment een lekje, waardoor de sans-serif in de font-family niet opgemerkt wordt! :eek:
 
Laatst bewerkt:
Bedankt Hanna en csshunter!

ik had eerst de tabele oplossing geprobeerd, maar ben later toch voor optie 2 gegaan. heb alleen nu nog 1 vraagje. stel je hebt Home. ik wil dat "ome" gwoon onder aan blijft en niet gaat zweven. hoe los ik dit op?
 
Hoi gertjuhhh1993,
Met:
Code:
#menu .rest {
	...
	padding-top: .8em;
	}

Met vriendelijke groet,
ome CSShunter
___________
PS: Dit soort dingen kan je altijd leuk uitproberen als je Firebug in Firefox stopt. Super voor alle diagnose-werk! :love:
Daarmee kan je snel online even kijken wat het wel of niet moet zijn: je ziet dan gelijk of iets werkt.
 
Laatst bewerkt:
Je kunt dit met een table doen:
<table width="300">
<tr>
<td width="52" class="initiaal">W</td>
<td align="left">elkom</td>
</tr>
<tr>
<td width="52">&nbsp;</td>
</tr>
</table>

In de css:
}
.initiaal {
font-size: 36pt;
font-weight: bold;
color: #333;
clear: left;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-style: normal;
line-height: 34pt;
margin: 0pt;
padding: 0pt;
}

Maar een plaatje is het makkelijkste, geen gezeur met browsers en allerlei verschillende instellingen.
 
Laatst bewerkt:
@ hanna:
Hoi hanna,
Even een niet domme vraag (want die bestaat niet). ;)
Wat is de essentiële kritiek/verbetering van jouw table-oplossing t.o.v. mijn table-oplossing (hifc-table.htm) in reactie nr. #3?

Met vriendelijke groet,
CSShunter
 
Helemaal geen kritiek/verbetering. Alleen maar een aanvulling op wat ik al eerder schreef.
Om het in alle browsers goed te krijgen is vaak een crime, daarom is dit misschien nog het beste te doen met een plaatje en
een hotspot b.v. Ik weet dat tabellen uit den boze zijn, maar soms............ :-)
 
Ah, juistem.
- Om van het gedonder en gebliksem af te zijn, zou ik zelf ook als de weerlicht voor de image-oplossing gaan. :D
Alleen dan niet met een image-map en hotspots, maar met css: de link er als transparant oppervlakje in zetten, met het plaatje als achtergrond-image. Dan kan je ook een ander plaatje tonen als je over het menu hovert.
  • Bij een imagemap kan dat niet zomaar; dan zou je javascript moeten gebruiken voor een hover (zie hier een vergelijking img-map/css-hover).
  • En een voorbeeld van een ccs-menu met 1 image (voor 9 menu-items en 9 hover-varianten). :)

Met vriendelijke groet,
CSShunter
 
Laatst bewerkt:
Ja, zo kan het ook.
Maar wij kunnen hier wel over in discussie gaan maar het gaat niet om ons toch ?
Gert moet zelf maar beslissen wat voor hem het makkelijkste is.
Succes Gert.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan