Tekst naast afbeelding centreren / HTML5

Status
Niet open voor verdere reacties.

janyep

Gebruiker
Lid geworden
7 mei 2008
Berichten
261
Hallo,
Mag ik nog een keer? Nu heb ik dit weer:

tekst verticaal centreren naast een plaatje met <align="middle"> kan blijkbaar niet meer in HTML5:
http://www.w3schools.com/html5/tag_img.asp

Maar hoe gaan we dat dan oplossen? :shocked:

HTML:
#header h3 {text-align:center; font:14px/20px Arial, Helvetica, sans-serif;}
#header h3 img{padding:0 0 0 20px; border:0; float:left;}
#header h3 .hfdst{text-align:right;}
#header h3 .paginas{text-align:right; font-size:12px;}
#header h3 .paginas a:link, #header h3 .paginas a:visitied{margin:0 20px;
 padding:4px; border:1px solid brown; text-decoration:none; color:brown;}

/* de bovenste #header h3 wordt in andere pagina's gebruikt t.b.v. text-align:center; */

HTML:
<h3><img src="plaatje.png" width="120" height="120" alt="" title="" />
 <span class="hfdst">2.2&nbsp; Vogels<br />
     <span class='paginas'>Pagina 1 van 2<br />
      <a href="test-1.html">1</a> <a href="test-2.html">2</a>
     </span>
 </span>
</h3>

Code:
    2.2 Vogels
Pagina 1 van 2
        1    2

Verder lukt er eventjes hélemaal niets:
** de 3 regeltjes lijnen niet rechts uit maar staan gecentreerd (geërfd van de bovenste #header h3)
** om de hyperlinks 1 2 verschijnen geen vierkantjes / border:1px solid brown;
** de hyperlinks 1 2 staan gewoon strak naast elkaar, i.p.v. margin:0 20px;
** de hyperlinks 1 2 kleuren niet bruin

Weet iemand raad?
Groeten janyep
 
Laatst bewerkt:
Vraag 1 (vertical align):
Gebruik line-height. Voorbeeld:

Code:
div {
    height: 50px;
    line-height: 50px;
}

Hyperlinks (tiepvaud):
Verander:
Code:
a:visitied
in:
Code:
a:visited

Aanvulling:
Probeer je tags goed af te sluiten. Je spans zijn niet goed geplaatst. Je h3
Width en height van images mogen moeten ook in css.
Je h3-tag is voor mij echt een raadsel. Dit behoor je nooit zo te gebruiken. Vervang deze door een div-container.

Code:
<div>
    <img src="plaatje.png" class="classname" alt="" />
    <span class="hfdst">2.2&nbsp;Vogels</span><br />
    <span class='paginas'>Pagina 1 van 2</span><br />
    <a href="test-1.html">1</a>&nbsp;<a href="test-2.html">2</a>
</div>

Daarnaast, als je je hyperlinks als blokje wilt weergeven is het good practive daarvoor "display: block;" te gebruiken. Eventueel met een "float: left;".

:thumb:
 
Ondertussen: heeft u ook verstand van de hgroup?

Hallo, Tarabass
dank voor de reactie. Had het al opgegeven dat iemand er nog aardigheid in zou hebben dat hele verhaal van mij te lezen!

Ben nog even bezig geweest, maar de 3 regeltjes lijnen nog steeds niet rechts uit (staan gecentreerd). Dit geef ik nu maar op en laat maar zo: waarom ook niet eigenlijk. De één houdt van de moeder, en de ander houdt van de dochter, toch?
Code:
  2.2 Vogels
Pagina 1 van 2
     1    2

Je h3-tag is voor mij echt een raadsel.
Voor mezelf op een gegeven moment ook :cool:
Waarom geen <h4> en <h5> erbij, in plaats van dat gedoe met classes op <h3>

Gebruik line-height. Voorbeeld:
div {height: 50px; line-height:50px;}
Ik was erg blij met deze suggestie
... maar uiteindelijk krijg ik hem zo toch niet aan de praat.

Met "echt het betere doe-het-zelven" heb ik nu iets in elkaar gedraaid wat geloof ik ongeveer wel werkt: de eerste regel staat zo ter hoogte van de bovenste img-rand, de tweede regel staat ongeveer in het midden en de derde regel staat ter hoogte van onderste img-rand.

HTML:
#update_fixed {display:block; position:fixed; right:25px; bottom:5px;
     margin:-20px 0 0 0; font-size:12px;}
* html #top_fixed, * html #update_fixed {position:absolute}

#header {border-left:3px solid #666; text-align:center; color:#0481b5;}
#header h1 {padding:0 0 20px 20px; letter-spacing:0.075em; white-space:pre;
     text-align:left; font:28px/34px "Lucida Console", Monaco, monospace;}
.nl {color:#f60/* oranje */; font:bold 20px Arial, Helvetica, sans-serif;}
#header h2 {padding:0 0 20px 0; text-align:center;
     font:bold 18px/34px Arial, Helvetica, sans-serif;}
#header h3 {padding:20px; font:14px/25px Arial, Helvetica, sans-serif;}
#header h3 img{height:120px; width:120px; border:0; float:left;}
#header h4 {padding:0 20px 20px 20px; font-size:12px; font-weight:normal;}
#header h5 .huidig, #header h5 a{margin:0 20px 0 0; padding:3px;
     border:1px solid #666; text-decoration:none; color:#0481b5;}
#header h5 .huidig {padding:5px; cursor:default;}
#header h5 a:hover{background:#0481b5; color:#fff;}


Vraag: heeft u ook verstand van de hgroup? Zo ja, vindt u dat dit eruitziet zoals <header> en <hgroup> bedoeld worden?
Als u nog een keer wilt reageren: zou er heel blij mee zijn!
Nogmaals dank,
vriendelijke groet janyep

HTML:
  <div id="header">
   <hgroup>
<!-- met html-editor niet inspringen i.v.m. white-space:pre !! --><h1>----
-------------
--
---------<span class="nl">.nl</span></h1>
    <h2>uw ----gids &nbsp; | &nbsp; ons ----verslag</h2>
    <h3><img src="-------.png" alt="" title="" />2.2&nbsp; Vogels</h3>
	<h4>Pagina 1 van 2</h4>
	<h5><span class="huidig">1</span> <a href="test2.html">2</a> 
	 <a href="test2.html">&raquo;</a></h5>
   </hgroup>
   <p><div id="update_fixed">laatst bijgewerkt:&nbsp;
    <time datetime="2010-12-31">31-12-2010</time></div>
   </p><!-- http://oli.jp/2009/html5-structure2/ -->
</div><!-- einde "header" -->
 
Laatst bewerkt:
Hoi janyep,
(...) iets in elkaar gedraaid wat geloof ik ongeveer wel werkt: (...)
Deze heb ik in een html5-pagina gezet:
Opmerkingen:
  • Er zit een <div> binnen een <p>: verboden werk!
  • Het kolommetje voor naast de afbeelding zit als geheel wel gecentreerd, maar niet t.o.v. van de pagina: gecentreerd t.o.v. de overgebleven ruimte naast de afbeelding.
  • Je kunt proberen pixel-precies de lettergroottes op te geven, maar dat gaat niet lukken. Als bv. een bezoeker in z'n browser-instellingen een grotere letter kiest (of: moet kiezen, om dat het anders voor hem/haar niet te lezen valt), gaat die pixel-precisie helemaal verloren. De letters moeten schaalbaar blijven zonder dat de layout in elkaar valt!
Mij lijkt zoiets het mooiste:
txt-naast-afb.gif
Of gewoon zo:
txt-naast-afb-2.gif

(De laatste zal een stuk makkelijker te maken zijn; ik vind 'm ook wat prettiger lezen.)
Is dat de bedoeling, of iets anders?

Met vriendelijke groet,
CSShunter
 
Hallo, CSShunter

Goed dat je weer op de radar bent! En weer prima suggesties.
"of gewoon zo" was inderdaad de bedoeling.

omdat ik ook gebruik dit menu: http://net.tutsplus.com/

werkte ik tot nu toe met de bijbehorende style (van o.a. http://nettuts.s3.amazonaws.com/819_megamenu/demo/index.html )


Code:
*   {margin:0; padding:0;}
html, body {overflow:auto;} /* overflow t.b.v. container_fixed_kolom  */
body {width:100%; max-width:100%; text-align:left; background:#fafafa;}
	 /* container_fixed_kolom vlg. demusdesign.com/bipolar/index.html */	
body, ul, li {font:14px/21px Arial, Helvetica, sans-serif; text-align:left;}

Mede n.a.v. jouw suggestie is het nu geworden:

Code:
*   {margin:0; padding:0;}
html, body {overflow:auto;} /* overflow t.b.v. container_fixed_kolom  */
body {width:100%; max-width:100%; text-align:left; background:#fafafa;
	font:100.1%/21px Arial, Helvetica, sans-serif; text-align:left;}
	 /* container_fixed_kolom vlg. demusdesign.com/bipolar/index.html */

:cool: Alleen heb ik geen idee waar ik mee bezig ben t.a.v. font:100.1%
Vind je het erg t.z.t. ook nog eens uit te leggen welke gedachte daar achter zit?
... ps: blijkbaar kan mijn test_klooi_pagina.html prima zonder
body, ul, li {font:14px
...

Nogmaals dank,
vriendelijke groet janyep
 
Laatst bewerkt:
Lettergrootte: hoe en waarom?

Hoi janyep,
... geen idee waar ik mee bezig ben t.a.v. font:100.1% ...
Vind je het erg t.z.t. ook nog eens uit te leggen welke gedachte daar achter zit?
Niet erg! :) Achter die rare 100.1% zitten de volgende ideeën:
  • Lettergroottes hebben alles te maken met bruikbaarheid en toegankelijkheid van een site. Bezoekers moeten de lettergrootte zo nodig bij kunnen stellen.
  • Internet Explorer heeft de onhebbelijkheid dat als de lettergrootte opgegeven is in px ("fixed font size"), dan de lettergrootte-opties via het IE-menu: Beeld > Tekengrootte > "Groter" enz. niet meer te gebruiken zijn.
  • Als de letterformaten opgegeven worden in relatieve eenheden (% of em's), kan IE er wel mee omgaan. Daarom: nooit een fixed font gebruiken!
  • Je zou de websites de kost moeten geven, die nog een fixed font gebruiken. Want dat is "zo lekker makkelijk" om de layout te maken. Bij relatieve letterformaten moet je inderdaad wat meer moeite doen om containers zodanig te fabrieken, dat deze niet uit elkaar vallen, maar meerekken en meekrimpen als het letterformaat door de bezoeker wordt aangepast. Tegenover de eenmalige inspanning van de webbouwer staat, dat de site dan voor eeuwig toegankelijk is voor een zo groot mogelijk publiek.
  • Webbouwers die verder dan hun IE-neus kijken, weten ook dat een fixed font size niets uithaalt voor andere browsers, bv. Firefox. Als je in FF via menu: Beeld > Zoomen > Alleen tekst zoomen > "Inzoomen" enz. kiest, wordt de lettergrootte altijd aangepast, fixed size of niet (en valt de layout alsnog uit elkaar, als de boxes bv. een fixed width en height hebben). - Want de bezoeker is de baas over de lettergrootte op zijn eigen computer, en zo hoort het!
  • Goed, we pakken dus relatieve eenheden voor de letterformaten.
  • Nu heeft IE ook de onhebbelijkheid, dat als je géén lettergrootte opgeeft voor de body, dan de verschillen tussen de opties "Normaal", "Groter", "Extra groot", "Kleiner" en "Extra klein" veel te groot worden. Met body {font-size: 100%;} ben je daar van af.
  • Opera had de onhebbelijkheid (bug) om de afrondingen niet goed te doen, als je de pure 100% opgeeft. Met de extra .1% ben je daarvan af. Of de laatste versies van Opera de bug ook nog hebben, weet ik niet; maar kwaad kan het nooit.
  • Daarmee wordt het: body {font-size: 100.1%;}.
  • Omdat letterformaten in het algemeen erfelijk zijn van hun omvattende elementen (hun "parent"), kan je voor de rest volstaan met het opgeven van het formaat in em's (1em = 100%). En als het formaat voor de <p>'s op 100% moet blijven, hoef je niets te doen.
Dus bijvoorbeeld:
Code:
body { font-size: 100.1%; }
h1 { font-size: 1.3em; }
h2 { font-size: 1.1em; } 
p, li { font-size: .9em; }
Verder is het oppassen geblazen als er "geneste formaten" zijn, bv.:
Code:
h1 { font-size: 1.3em; }
h1 span { font-size: .9em; }
Het formaat binnen de <span> is niet niet .9em (zeg: 90%) t.o.v. de <body>, maar .9em t.o.v. zijn parent, de <h1>. Dus: 90% van 1.3em = 1.17em, oftewel 117%.

En als je de <p>'s en de <li>'s allebei op .9em hebt staan (zoals hierboven), moet je geen <p>'s binnen de <li>'s zetten. Want met:
HTML:
<ul>
    <li><p>een lijst-item</p></li>
    <li><p>een lijst-item</p></li>
    <li><p>een lijst-item</p></li>
</ul>
... starten de <p>'s met het formaat van hun parent <li> (.9em) en passen daar hun eigen verhoudingsgetal (ook .9em) op toe. Dan wordt het resultaat dus .9 x .9em = .81em; en dat is waarschijnlijk kleiner dan de bedoeling was!

Tenslotte nog de korte schrijfwijze voor de font-eigenschappen.
Met:
Code:
p { font: 12px/30px italic bold enz. }
... is het eerste getal voor de slash / het letterformaat, en het tweede getal is de lijnhoogte (line-height). Te proberen op w3schools.

Een opdracht:
Code:
body { font: 100.1%/21px Arial, Helvetica, sans-serif; }
... zou dus betekenen dat de basis voor de later volgende letterformaten 100.1% moet zijn, en de regelhoogte altijd 21px. De regelhoogte kan dus later niet meeschalen, en dat gaat dus fout gaan!
De regelhoogte moet ook relatief zijn (t.o.v. het letterformaat van dat element; zie hier bij w3c: "the line height percentage refers to the font size of the element itself"), dus ook in % of em's.

Tenslotte nog een link naar een prima uitgebreidere uitleg van de 100.1% enzo:
"to or not to specify font sizes?", www.accessifyforum.com/viewtopic.php?p=12830

Succes!
Met vriendelijke groet,
CSShunter
 
Laatst bewerkt:
Van px naar em

Hallo CSShunter,
jij weet echt de mensen voort te helpen hé? Nou, ik vind het helemaal geweldig!

Em's: nog best lastig, maar dat maakt nieuwsgierig nietwaar?

Begrijp ik goed dat alle width's, height's, borders, paddings, margins etc. in em's gaan? Behalve de width's en height's die een % hebben natuurlijk?
Geldt dat ook voor width en heigt van de .img ?

Hieronder staat hoe ik één en ander implementeer.
Het lijkt voorlopig te lukken: aandachtspuntjes heb ik gehighlight met rood en groen
Terwijl mijn browser is ingesteld op 16px ging ik "ooit" hier vanuit:
Code:
*            {margin:0; padding:0;}
body       {font:14px/21px Arial, Helvetica, sans-serif;}
#header    {border-left:3px solid #666;}
#header h1 {padding:0 0 20px 20px;
            letter-spacing:0.075em;
            font:28px/34px "Lucida Console", Monaco, monospace;}
.nl        {font:bold 20px Arial, Helvetica, sans-serif;}
#header h2 {padding:0 0 20px 0;
            font:bold 18px/34px Arial, Helvetica, sans-serif;}

HTML:
  <header id="header">
   <hgroup>
      <h1>
<hgroup> komt niet voor in mijn <style> en daarom heb ik bij het bepalen van em ook geen rekening gehouden met het feit dat alles is ingesloten door de <hgroup> :eek:

body
{font:14px/21px Arial, Helvetica, sans-serif;}

Code:
body {font:100.1%/1.5 Arial, Helvetica, sans-serif;}
/* Unitless line-heights vlgs.
http://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/
en
http://www.maxdesign.com.au/articles/css-line-height/ */

http://www.alistapart.com/articles/howtosizetextincss voegt nog een IE-hack toe, maar dat lijkt overbodig?
Code:
<!--[if !IE]>-->
<style type="text/css">
body {font-size:16px;}
</style>
<!--<[endif]-->

Dan op http://pxtoem.com/ selecteer ik in de linkerkolom "Select your body-font-size" 16px

#header
{border-left:3px solid #666;}
Code:
#header {border-left:0.188em solid #666;}
/* 3px met body-font=16px */

#header h1
{padding:0 0 20px 20px;
letter-spacing:0.075em;
font:28px/34px "Lucida Console", Monaco, monospace;}
Code:
#header h1 {padding:0 0 0.714em 0.714em;
/* 20px's met body-font-size=28px >> het resultaat klopt,
    maar KLOPT DIT ECHT dat de padding wordt berekend
    t.o.v. font-size=28px in h1? */
            letter-spacing:0.075em;
/ * deze letter-spacing ooit overgenomen uit een template en hoeft nu niet aangepast te worden ? */
            font:1.75em/1.2 "Lucida Console", Monaco, monospace;}
/* 28px met body-font=16px / >> 34:28=1.2 */

de .nl staat met font:20px tussen <h1><span class="nl">.nl</span></h1>
#header h1 had font:28px/34px en dus:
.nl
{font:bold 20px Arial, Helvetica, sans-serif;}
Code:
.nl {font:bold 0.714em Arial, Helvetica, sans-serif;}
/* 20px met body-font=28px */

#header h2
{padding:0 0 20px 0;
font:bold 18px/34px Arial, Helvetica, sans-serif;}
Code:
#header h2 {padding:0 0 1.111em 0; 
/* 20px met body-font=18px
     >> padding wordt weer berekend t.o.v. font:18px in h2 ??!! */
            font:bold 1.125em/1.9 Arial, Helvetica, sans-serif;}
/* 18px met body-font=16px  >> 34:18=1.9 */

Kwam dit tegen: Don’t Worry About Ems op http://www.problogdesign.com/design/write-better-css-with-best-practices/
"An old piece of advice..."
Maar in plaats van voortschrijdend inzicht :rolleyes: vindt je dit dus te kort door de bocht?
"Tegenover de eenmalige inspanning van de webbouwer staat, dat de site dan voor eeuwig toegankelijk is voor een zo groot mogelijk publiek."

Wel aardig, kwam dit ook tegen: = http://www.astahost.com/info.php/sizes-webdesign-em-px_t8926.html
How To Make All Browsers display the same (relative) size
A problem, which occurs from time to time, is that the same values are displayed differently in different browsers.
You can avoid this by using awry values (like 0.63em) instead of rounded ones. This makes the browsers interprete them more precisely, but don't ask me why! =

Een andere em-calculator op http://riddle.pl/emcalc/

Hoop weer te mogen horen,
met vriendelijke groet
janyep
 
Laatst bewerkt:
Aha!
Ik pak er vast eentje uit: het advies in "Don’t Worry About Ems". Daar staat o.a.:
Nowadays though, any modern browser can work with pixel fonts (Because most of them use zooming now, instead of just making the fonts larger).
Mmm, dat is wel waar, maar ...
  • Mee-zoomende beeldschermen heb ik nog nooit gezien...
  • In Internet Explorer is er nog steeds geen ondersteuning voor opschaling van px zonder zoomen van de hele pagina tegelijk (wat vanaf IE7 mogelijk is)...
  • In Firefox kan je wel alleen de lettergroote aanpassen zonder op de totale pagina te moeten inzoomen...
  • Zo heb ik mijn FF ingesteld, want bij inzoomen op de hele pagina ... zoomt ie in op de hele pagina, en verdwijnt dus een deel van de pagina aan de rechterkant...
  • Daarmee zou ik geen overzicht meer op de pagina hebben, en zou ik steeds links-rechts moeten scrollen met de horizontale scrollbar (en als ik aan iets een hekel heb, is het de horizontale scrollbar: dan moet je steeds heen en weer muizen tussen de verticale en de horizontale scrollbar)...
  • Als je er bij het bouwen van een site van uit gaat, dat men maar moet zoomen met de hele pagina tegelijk (en alles in px vastlegt), dwing je IE- en FF- en andere gebruikers dat ook te doen: want anders valt de pagina-layout uit elkaar...
  • En ik houd er niet van om bezoekers tot iets te dwingen om mijn pagina's te kunnen bekijken. Dan moet de bezoeker "gebruiksvriendelijk" zijn voor de site, ten koste van zichzelf, in plaats van dat de site gebruiksvriendelijk is voor de bezoeker. :confused:
  • Ik vind het advies dus geen voortschrijdend inzicht, maar meer een voortschrijdende gemakzucht. :p (en legitimatie van eerdere px-wandaden).
Neem bijvoorbeeld deze pagina:
  • http://home.tiscali.nl/developerscorner/gigastyle/gigastyle-index.html
  • Die is altijd schermvullend, bij welke resolutie of lettergroote of eventuele sidebar ook (en past ook nog net op een 800x600px scherm).
  • Misschien een beetje een extreem voorbeeld, maar als je hetzelfde ontwerp zou maken met een fixed font-size (en fixed box-sizes), dan gaat ie vrolijk desintegreren!
Morgen ga ik de rest van je reactie eens lezen!
Wordt vervolgd,
CSShunter
______________
PS;
Ook het advies "Start With a Reset" heb ik zo mijn twijfels over.
Als je Eric Meyers reset-css toepast *), moet je alles en ook alles weer opnieuw gaan instellen. Bv. alle <ul>'s, <ol>'s en <li>'s hebben ook een reset naar {margin:0;padding:0;} gekregen, en dat moet ik dan met de hand weer goedmaken zodat de bullets weer tevoorschijn komen. Bij <ol>'s en <ul>'s gooit ie er ook standaard de bullets uit, zie ik: {list-style: none;}. Enz.
- In plaats van eerst alles resetten en dan weer invoeren, pak ik liever alleen die elementen vast die ik wel wil standaardiseren. Anders wordt 't me veel te veel werk.
En ik ben lui aangelegd! ;)
__________
*) Ha, Eric Meyer past op zijn eigen site ook niet die reset-css toe, maar gaat op die pagina gewoon instellen wat ie wel nodig heeft. Zie z'n css! :d
 
Laatst bewerkt:
Hoi janyep,
Even terug naar je nr. #7.

Begrijp ik goed dat alle width's, height's, borders, paddings, margins etc. in em's gaan? Behalve de width's en height's die een % hebben natuurlijk?
Neen!
Alléén alle width's enz. die je relatief wilt hebben: bv. t.o.v. de schermbreedte, de containerbreedte of de standaard-lettergrootte of standaard-regelhoogte. Want op die manier schalen ze mee met de schermbreedte, enz.

Soms kan ook een relatief opgegeven margin-top en/of margin-bottom voor de schalende tekst-elementen (<h1>, <h2>, ..., <p>, <li> e.d.) nuttig zijn, maar meestal kan dat ook gewoon in vaste px zonder dat je er last van hebt.

In elk geval: een relatieve margin-left of padding-left (en idem: -right) bij tekst-elementen geeft bij opschalen juist een averechts effect!
Hoe groter het letterformaat (bij eenzelfde breedte), des te minder woorden passen er op een regel. En als je dan de margin-/padding- L/R óók in em's zou doen, zou die linker- en rechter-afstand tot de zijkant ook juist groter worden: nog minder woorden op een regel!
Dus bij L/R margins en paddings is meestal de px-eenheid de aangewezen weg.

Geldt dat ook voor width en height van de .img ?
Nee, die hoeven ook niet relatief opgegeven worden, tenzij je juist wilt dat een image meeschaalt met de lettergrootte.
Maar browsers kunnen images niet zo goed geschaald weergeven, en vaak is het ook niet nodig. Voor afbeeldingen houd ik altijd gewoon de px-maten aan.

Unitless line-heights vlgs. ...
Prima idee, prima bronnen.

alistapart.com/articles/howtosizetextincss voegt nog een IE-hack toe, maar dat lijkt overbodig?
Lijkt me ook, want het artikel is van 2007, en Safari is intussen weer een paar versies verder dan de toenmalige Safari 2: in de body kan alles gewoon met % voor de letterhoogte.
Eigenlijk is het een "niet-IE hack", bedoeld voor Safari; want in:
HTML:
<!--[if !IE]>-->
 .... font-size:16px;
<!--<[endif]-->
is het uitroepteken "niet". D.w.z. het is geen normaal conditional comment (waarbij iets voor alleen IE geregeld wordt), maar juist een omgekeerd CC.
In de ALA-constructie wordt IE dus een relatieve lettergrootte toebedeeld, en de rest niet (omdat Safari 2 daar niet goed mee omging). Als de rest ook een relatieve lettergrootte kan krijgen (omdat Safari verder is), kan het omgekeerde CC dus (denk-denk ;) ) gewoon weggelaten worden.
Dus:
Code:
body {font: 14px/21px Arial, Helvetica, sans-serif;}
kan worden:
body {font: 100.1%/1.5 Arial, Helvetica, sans-serif;}

Nu de:
Code:
#header {border-left: 3px solid #666;}
of:
#header {border-left: 0.188em solid #666;}
/* 3px met body-font=16px */
Een border-breedte kan volgens de css2.1-spec (http://www.w3.org/TR/CSS2/box.html#border-properties) een expliciete <length> waarde hebben. Een <length> eenheid kan uitgedrukt worden in em's (http://www.w3.org/TR/CSS2/syndata.html#length-units): "The 'em' unit is equal to the computed value of the 'font-size' property of the element on which it is used."
Gaan we rekenen! De font-size van de #header is geërfd van de <body>, dus ook 100.1% (van de 16px standaard browser-fontsize) = 16.016px. Om daar 3px van te maken, moet het 3*(1/16.016)= 0.1873 keer zo klein zijn, dus .1873em.
Wat gaat er nu gebeuren bij vergroting van het letterformaat?
Stel in de browser wordt het letterformaat geschaald naar 110% > dat geeft dan 110% van die 3px = weer 3px, want kleiner dan één px kan een beeldscherm niet vertonen! Afhankelijk van hoe een browser precies afrondt, is minstens een letter-vergroting van 150% of 200% nodig om de border-breedte op 4px te krijgen.
Maar - is de hamvraag -: is het wel nodig om de border-breedte mee te schalen met het letterformaat? Nee, zou ik zeggen, die borderlijn zie je altijd wel en mag gerust op 3px blijven staan.
Daarmee kunnen we al dit gemuggel op de virtuele duizendste pixel weer vrolijk vergeten :d :
Code:
#header {border-left: 3px solid #666;}

De:
Code:
#header h1 { padding:0 0 20px 20px;}
Hier draaien de padding-waarden met de klok mee: boven, rechts, onder en links.
In elk geval voor de linkerpadding kunnen we ons afvragen: moet die wel meeschalen als de letters vergroot worden? Zo nee, dan kan de laatste 20px rustig blijven staan.
En dezelfde vraag eigenlijk voor de padding-bottom:
  • is het echt wel nodig om deze iets groter te laten worden als de fontsize opgeschaald wordt door de bezoeker?
  • en is dat verschil eigenlijk wel waarneembaar?
(Antwoord: twee testpagina's, met px'en resp. em's, zullen dat gauw genoeg uitwijzen! :P )

Tot zover op heden!
Wordt vervolgd,
CSShunter
_______________
PS: Als lui tiepje doe ik nooit aan font-size berekening. Ik "rotzooi maar wat aan", en bekijk het resultaat in de browser. Bevalt het me niet, dan ben ik binnen 3 testjes trial-and-error wel waar ik wezen moet. :)
 
Hai csshunter,

is het wel nodig om de border-breedte mee te schalen met het letterformaat? Nee, zou ik zeggen, die (linker)borderlijn zie je altijd wel en mag gerust op 3px blijven staan.

Maar 3px oogt in een hogere resolutie toch heel anders (dan wel ... een beetje dun ... en wellicht ietwat zielig ...)?

Google Analytics:
20% 1024x768
14% 1280x800
12% 1280x1024
14% 1440x900

Hogere resoluties die nu extreem lijken en amper worden gebruikt, maar die in de loop van de jaren wellicht toch ook gangbaar gaan worden?

1% 1600x1200
5% 1920x1200
1% 2560x1440

Ben benieuwd hoe je daar over denkt. Mag soms graag een ander geluid als dat van mezelf horen!

Overigens, wat hebben schermresolutie en beedschermformaat met elkaar te maken?

Hoop weer te mogen horen,
met vriendelijke groet
janyep
 
Laatst bewerkt:
Maar 3px oogt in een hogere resolutie toch heel anders (dan wel ... een beetje dun ... en wellicht ietwat zielig ...)?
... Ben benieuwd hoe je daar over denkt.
Eh, eh, ik zei al eerder:
testpagina's zullen dat gauw genoeg uitwijzen! :P
Heb je al testpagina's gemaakt? En wat is daar uitgekomen? Mogen we ze zien? :d

Ik denk in ieder geval graag met harde bewijzen in de hand, voor ik iets durf te zeggen.
En ... ik durf dit te zeggen: als je een zielige 3px border voor hoge resoluties wilt opkrikken, dan helpt het inzetten van een relatieve border-width ... niet!

Je zou het misschien niet zeggen, maar als je resolutie groter is, worden ook de letterformaten zieliger. D.w.z. de letters blijven precies evenveel pixels, maar een pixel op een hoge resolutie is nu eenmaal kleiner.
  • Als dat niet zo georganiseerd was, zouden waarschijnlijk tal van websites spontaan uit elkaar vallen bij een hogere of lagere resolutie dan waarop ze gemaakt zijn. Want wat er aan woorden op een regel van bv. 900px breedte past bij 1024*768, zou bij vergroting van de letters door formaatje 1280*1024 er opeens niet meer op passen!
  • Dat zou dus betekenen, dat alle websites per definitie totaal liquid zouden moeten zijn (altijd beeldvullend, resp. ook alle breedtes relatief t.o.v. de resolutie). In feite: automatisch inzoomen bij een hogere resolutie. - Maar dat zijn de feiten niet!
Als de lettergrootes bij hogere resolutie in px gemeten even groot blijven, tja, dan bijven daarvan afhankelijk gemaakte relatieve borderdiktes natuurlijk ook even groot.
Kortom: aan de zieligheid van smalle bordertjes bij hoge resoluties valt met gewone css momenteel niets te doen. Net zomin als aan de voor het oog kleinere letters bij een hogere resolutie.
Kan het dan op geen enkele manier? Ja, toch:
  • Met javascript, waarmee je een "resolution dependent layout" kunt maken. Dan doe je met javascript aan "resolutie-sniffing", en met het resultaat daarvan wordt een toepasselijk stylesheet ingeladen.
    Zie bv. hier of hier.
  • Met css3 (op het moment dat alle browsers dat voldoende ondersteunen!). In css3 zitten zg. "CSS3 Media Queries", waarmee je afhankelijk van een "medium" (bv.: scherm of printer) styles kunt definieren. Die waren er al in css2, maar in css3 kan je er ook voorwaarden aan verbinden, bv.:
Code:
#borderdiv { 
     border: 3px solid red;
     }
@media (min-width:1025px) {
     #borderdiv {
          border-width: 5px;
          }
     }
Zie hiervoor: www.w3.org/TR/css3-mediaqueries. Maar zover is het dus nog niet.

Overigens, wat hebben schermresolutie en beeldschermformaat met elkaar te maken?
Ik gebruik deze begrippen vaak slordig door elkaar, maar als ik ga nadenken, zou ik zeggen:
  • In principe "niets", want vroeger speelde ik met een SINCLAIR ZX SPECTRUM +, die je op de TV kon aansluiten, en toch maar maximaal 32 lettertekens op één regel kon krijgen, en in de grafische modus wel 256 beeldvullende (mega)pixels naast elkaar op het TV-scherm kon plaatsen.
  • Mijn prachtige beeldscherm heeft een beeldschermformaat van 37.5*30cm, of 48cm diagonaal, of 1280*768px.
  • Maar ... mijn schermresolutie heb ik op 1024*768px staan, uit voorzorg: om me bij het webontwerpen niet rijker te rekenen dan ik ben (en het er zonder horizontale scrollbar niet allemaal op zou passen bij 1024*768).
  • Mijn beeldschermformaat kan ik helaas niet aanpassen (daarvoor moet ik naar de winkel), mijn schermresolutie wel: soms ga ik even buurten op 800*600px (steeds minder, dat wel) of op 1280*1024px (om te kijken wat iets op dat "formaat" doet; of de standaard-lettertjes nog wel te lezen zijn, en of er misschien iets moois voor de breedbeelders aan de zijkanten zou moeten komen).
Met vriendelijke groet,
CSShunter
 
Hallo CSSHunter,
Mogen we de testpagina's zien? :d
de style eerst maar eens netjes "aangeharkt", en dit is 'm dan voorlopig:
/TEST/TEST.html

Heb je al testpagina's gemaakt? En wat is daar uitgekomen?
TEST.html staat nog in px (alleen header h1 en h2 in em ...)
duurt nog wel even: maak eerst template helemaal vol en daarna gaan pas de lettergrootte's van px in em

Ondertussen neem ik het helemaal aan en ben ik daar uit: alleen lettergrootte's in em's. Inderdaad:
Daarmee kunnen we al dit gemuggel op de virtuele duizendste pixel weer vrolijk vergeten :d

Je zou het misschien niet zeggen, maar als je resolutie groter is, worden ook de letterformaten zieliger. D.w.z. de letters blijven precies evenveel pixels, maar een pixel op een hoge resolutie is nu eenmaal kleiner.
Hier sta ik dus echt van te kijken. En dan blijkt dus dat alle kwartjes nog lang niet gevallen zijn!
Men neme bijv. resolutie 2560*1440
:o hebben die mensen dan hun browser ook gewoon op 16px staan, net zoals "wij met onze prachtige beeldschermen op 1024*768" ???
Maar juist daarvoor zijn toch de relatieve em's bedacht? Ik dacht dat in zulke resoluties de browsers bijv. op 20px zouden staan, ... of zoiets ...

Moet daarvoor misschien nog extra een query worden aangemaakt voor de font-size?
Bijvoorbeeld font-size:120% voor min-width:1920
Zoals in hicksdesign.co.uk/
Code:
body: {font-size:100%}
@media screen and (max-width: 800px) {
	body { font-size: 95%; }}	
@media screen and (min-width: 1024px) {
	body { font-size: 105%; }}

Om te testen in juist kleinere resoluties gebruik ik altijd even snel de Web developer toolbar http://chrispederick.com/work/web-developer/
Zelf heb ik 1024*768
Via configuratiescherm / beeldscherm kom ik (altijd even lastig) niet verder als 1280*1024
Is er een mogelijkheid, of bestaat er een tool om juist de wat grotere uit te testen, zoals 1920*1200 of 2560*1440 ?

Weer bedankt voor alle hulp!
Alle goeds toegewenst,
groeten janyep

The browser viewport: Remember laptops!
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan