Resolutie probleem!

Status
Niet open voor verdere reacties.

JeroenHulshof

Gebruiker
Lid geworden
13 dec 2012
Berichten
43
Hallo,

Ik had al een vraag over hoe ik de background 100% zou kunnen doen, en daar heb ik gewoon antwoord op gekregen en dat is verholpen, maar nu komt het volgende probleem:

Ik heb deze vraag denk ik al wel eens eerder gesteld, maar ben er niet uit gekomen.
Als ik op mijn 13" MacBook kijk, staat alles goed op de plek zoals ik het wil.

Ik heb op http://www.jeroenhulshof.nl/test een voorbeeld geplaatst met daarin 2 vakken. in 1 vak staat "Over mij", en het andere vak is Socialmedia.
Op mijn laptop staat alles goed naast elkaar. Maar op een televisie beeldscherm of een beeldscherm dat groter is dan 13" staat de social media balk wel op de zelfde hoogte, maar veel meer naar rechts. Dat is enorm lelijk want dan heb ik op een groter beeldscherm veel ruimte tussen Over mij en Socialmedia.

CSS:
Code:
@charset "UTF-8";
/* CSS Document */

body{
    font-family:							verdana;
    margin:									0px auto;
    position:								relative;
    width:									100%;
    background-color:						rgb(172, 172, 172);
    background-repeat: 			         		repeat;
background-position:                 		center center;
background-attachment:                  	fixed;
}

#container{
width: 										100%;
height: 									100%;
margin: 									0px auto;
}

#header{
	width: 									101%;
height: 									116px;
margin-top: 								-21px;
margin-left: 								-10px;
background-image:							url('./../images/bgheader.png');
background-repeat: 			         		repeat;
background-position:                 		center center;
background-attachment:                  	fixed;
font-family:								verdana;
}

#logo{
	width: 100px;
height: 100px;
margin-left: 61px;
margin-top: 32px;
position: absolute;
}

#nav{
float: right;
margin-top: 61px;
margin-right: 1px;
text-shadow: 0 1px 1px rgba(0,0,0,0.6);
}

ul {
list-style-type: none;
height: 80px;
width: 358px;
margin: auto;
}

ul li a:hover{
    color: #CF2718;
}

ul a {
padding-right: 10px;
padding-left: 10px;
display: block;
line-height: 80px;
text-decoration: none;
font-family: Georgia, "Roboto", sans-serif;
font-size: 15px;
color: #FFF;
}

li {
float: left;
}

#content{
	width: 740px;
min-height: 223px;
background-color: #FFF;
margin-top: 10px;
margin-left: 50px;
box-shadow: 2px 2px rgb(201, 201, 201);
position: absolute;
}

#contentbanner{
width: 772px;
margin-left: -19px;
height: 41px;
background-image: url('./../images/sprite.png');
margin-top: 29px;
}

#contentinfo{
width: 515px;
height: 23px;
margin-top: -15px;
margin-left: -90px;
color: #FFFFFF;
text-align: center;
cursor: pointer;
line-height: 30px;
text-shadow: 0 1px 1px rgba(0,0,0,0.6);
font-family: 'Roboto',sans-serif;
}

#socialmedia{
 width: 375px;
height: 229px;
float: right;
margin-right: -350px;
background-color: #FFF;
margin-top: 10px;
box-shadow: 2px 2px rgb(201, 201, 201);
}

#socialmediabanner{
width: 370px;
margin-left: -11px;
height: 41px;
background-image: url('./../images/ssprite.png');
color: #FFF;
cursor: pointer;
text-align: left;
padding-left: 25px;
line-height: 30px;
font-family: 'Roboto',sans-serif;
}

#footer{
	width: 100%;
height: 21px;
background-color: #CF2718;
margin-top: 100%;
text-align: center;
color: #FFF;
}

Hopelijk weten jullie hoe ik dit fix (:
 
Als je #container een vaste waarde geeft van bijvoorbeeld 1000px dan zal hij op elk scherm even groot zijn. Door je margin: 0 auto; zal deze altijd in het midden van het scherm staan.

Wat je dan wel moet doen is je #header uit die container halen omdat die anders ook maar 1000px breed wordt en ik neem aan dat je die gewoon 100% over de breedte van je pagina wilt.
 
Hallo,

Bedankt voor je duidelijke reactie!
Alleen, wanneer ik dat doe, is de header niet meer goed, er komt dan ruimte over aan de rechterkant + de container gaat helemaal naar beneden.
 
Hoi Jeroen,
Ja, dat kan kloppen. De nattigheid is, dat de pagina-structuur bestaat uit een combinatie van floats en absolute posities. In 9 van de 10 gevallen werkt dat van geen kanten als je de pagina goed wilt afstemmen op zo veel mogelijk resoluties.
Dan moeten de onderdelen juist zo veel mogelijk relatieve posities t.o.v. elkaar hebben.

=======

Een vaste breedte?
De pagina een vaste breedte geven en die centreren is een oplossing. Dan kunnen de twee kolommen niet te ver weg van elkaar komen, ook al is het een breedbeeldscherm. In dit geval zou dat kunnen door:
  • een container aan te leggen voor het linker- en rechterblok samen, die een vaste breedte heeft, plus {margin: 0 auto} voor het centreren bij brede schermen;
  • het linkerblok een {float: left} geven, en het rechterblok daarnaast laten komen met bv. een {float: right};
  • in de #header een "binnen-div" te maken, die diezelfde vaste breedte heeft, plus ook {margin: 0 auto} voor het centreren;
  • in die binnen-div het logo en het menu, weer gefloat;
  • de footer gaat vanzelf goed, want zonder tegenbericht neemt die de volle breedte in beslag.
Zo komt alles mooi recht onder elkaar te staan.

Nadeel: bij smalle schermen moet er links-rechts gescrolld worden om alles te kunnen zien. Hoe smaller het scherm, hoe meer scrollen! :rolleyes:
Extra lastig: het menu staat aan de rechterkant. Bij een resolutie van 800*600px (klein tablet) of lager is het menu niet helemaal of helemaal niet te zien als de bezoeker de pagina opent: het menu (waar vaak meteen naar gekeken wordt) valt dan buiten beeld.

=======

Dit pleit ervoor om een liquid layout te maken: zelf-aanpassend aan de resolutie. Daarvoor is nodig: alle breedte-maten opgeven in % in plaats van in px.
  • De breedte van het "Over mij"- en het "Social media"-blok varieert dan met de schermbreedte.
  • Onderling blijven ze wel in verhouding.
  • Om super-breedbeelders geen stijve nek te laten krijgen van het steeds links-rechts moeten kijken (bij vreselijk lange regels), kan er een maximale breedte aangegeven worden. Is die bereikt, dan is dat een "vaste breedte" en de pagina komt gecentreerd te staan bij de breedschermers.
Complicatie vormen de banners, die voorzien zijn van een image (dat een vaste px-breedte heeft). Dat kan niet meegaan met de flexibiliteit van de blokken! :confused:
Maar daar is gelukkig wat aan te doen. :)

  • Hier een opzetje: test-jh-1.htm

  • Voor de breedbeelders is er een gecentreerde {width: 1180px;}.
  • Maar tegelijkertijd is er een {max-width: 95%}: die krijgt voorrang bij schermen/windows smaller dan ca. 1200px (de rechter scrollbar heeft ook wat ruimte nodig).
  • Bij bv. een 1280*1024px resolutie krimpen de twee blokken. De banner krimpt vrolijk mee! ;)
  • Het menu is altijd te zien. Bv. op 1045*768px:

    jh-1024x768.png

  • Met de huidige css gaat het goed tot een resolutie van 320*480px (mobieltje in landscape-orientatie):

    jh-mobiel.png

  • Wil je nog kleiner gaan, of zitten er brede dingen in de Social Media, dan moet daarvoor een "responsive layout" toegevoegd worden. Daarmee kan het Social Media blok dan onder het andere blok komen bij hele kleine schermen.
  • NB: Het menu gaat vanzelf al goed (wat er niet op past, duikt vanzelf naar de volgende regel).

=======

Hoe de banner inclusief alle flapjes met uitsluitend slimme css (via z.g. "border-slants") is gerealiseerd:

  • Stapsgewijze opbouw van een "pseudo-image" met css: test-jh-a.htm
    t/m test-jh-f.htm
  • Voor Internet Explorer 8 (dat geen box-shadow kent), moet nog via een Conditional Comment geregeld worden dat bij het rechter top-blokje de linker-border ook de backgroundkleur van de pagina krijgt.
=======

Blijft over: de footer, waarvan het de bedoeling zal zijn dat deze helemaal onderop komt.
Met een margin-top kan dat niet lukken, want (a) die kan per pagina verschillen, en vooral (b) je kent de schermhoogte van de bezoeker niet.
Wat je wel kan doen:
  • De footer een {position: fixed} geven, dan kan deze altijd onder op de schermrand staan (en schuift de rest van de pagina er bij scrollen onderdoor).
  • Andere oplossing: een paar extra containers aanbrengen + wat extra css, zodat de footer bij korte pagina's onderaan het scherm staat, en bij lange pagina's onderaan de pagina.
  • Beschrijving werkwijze hiervoor: footer-via-minHeight-1.htm
Het resultaat van het laatste is:
  • Deze korte pagina: test-jh-2.htm.

  • En deze lange pagina: test-jh-3.htm.
    Alleen de hoeveelheid content is anders, voor de rest zijn het identieke pagina's
Met vriendelijke groet,
CSShunter
 
Nogsteeds het andere resolutie probleem!

Hallo,

Ik zit met een probleempje, en daar zit ik al een tijdje mee.

Ik heb een blank thema gedownload voor wordpress, zodat ik daarmee kan "klooien".
Nu heb ik even wat wit gemaakt, wat "Canvas" heet. Wat ik wil hebben is dat op elk beeldscherm, 13 t/m 22 inch of hoger, het zelfde eruit ziet als de macbook.

Code:
#canvas {
width: 1100px;
margin: 0 83px;
background-color: #FFF;
}

Zoals je ziet is het op de macbook mooi in het midden, en op de asus ver naar links toe en rechts een groot vak over.

[smallimg]http://i.imgur.com/30q89LX.jpg?1[/smallimg]

(Let niet op de rommel en de bedrading :thumb:)

Kunnen jullie mij hier mee helpen?

Met vriendelijke groeten,


Jeroen Hulshof.
 
Laatst bewerkt door een moderator:
Hoi,

Omdat schermen een verschillende resolutie hebben (bij 13" is deze laag, bij grote schermen hoog) zal het nooit lukken om een pagina op elk scherm hetzelfde eruit te laten zien. In je css ga je uit van een vaste 1100px. Voor de achtergrond foto heb je op een 1980px scherm 880px over en op een 1440px nog maar 340px. Op de wat oudere tablets verdwijnen stukken van je pagina.

Je kunt ook bijvoorbeeld width:80%; gebruiken maar dan wordt de pagina flexibel.

Suc6, Roon
 
Ik heb het gefixed,

Ik was bezig met een website voor een minecraft server, en ik heb gewoon margin: 0px auto; in de gedaan. alles is nu goed, op elke resolutie. van telefoon tot oneindig groot beeldscherm!

Toch bedankt voor je reactie.
 
Ik heb je twee topics over hetzelfde samengevoegd. Je had geen reactie meer gegeven op het bericht van CSS en het pas prima bij elkaar.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan