image resizen

Status
Niet open voor verdere reacties.

calvinsnl

Gebruiker
Lid geworden
11 apr 2012
Berichten
57
beste,

ik ben bezig met photoshop websites, maar nu kom ik echter achter een probleempje.
ik heb een background ingesteld en dan een "middle" dat bestaat uit 1 image.
nu zou ik graag willen dat dat middle part automatisch aangepast word naar bijv 80% van het scherm, maar dat de hoogte/breedte verhouding goed blijft. weet iemand hoe ik dat kan doen.

MvG calvin

PS. webiste link: www.beatz.calvins.nl
 
je kan als je de middelste layer selecteert, bovenin het menu naar bewerken > transformatie > schalen gaan, als je die aanklikt kan je boven de afbeelding percentages selecteren of handmatig resizen.
 
Het gaat hier om het schalen van de image op de website naar elke schermresolutie, niet in photoshop.
 
Ehhh.... ja wat bedoel je dan? In je eerste post zeg je: beste, ik ben bezig met photoshop...
en in je 2e post: ... niet in photoshop.

Photoshop is een speciaal bewerkingsprogramma voor grafische bestanden.
Adobe maakt ook andere software waaronder eentje waarmee je website bestanden kunt editen.
 
de term photoshop website, dat betekent dat ik de website helemaal in photoshop heb gemaakt daarom heb ik ook 1 plaatje in het midden.
het gaat hier om het maken van de website de coding niet het ontwerpen, anders was ik hier op de verkeerde plaats.
mijn vraag is hoe ik dat laat resizen met een schermresolutie via CSS
 
Het kan op twee manieren, met CSS3 (simpel, maar het werkt niet in IE8 en ouder) of door een normale <img /> als achtergrond te gebruiken (werkt in iedere browser maar kost iets meer moeite.

CSS3:
Code:
#middle{
background-size:80%;
}

Met <img>
Zet een afbeelding met de achtergrond in je #middle div met class="achtergrond". In de CSS zet je dan dit.
Code:
#middle{
width:80%;
position:relative;
margin:o auto; //dit houdt de boel in het midden
}

.achtergrond{
position:absolute;
width:100%;
z-index:-1;//met dit getal moet je misschien wat experimenteren.
}

ECHTER, je hebt een fundamentele fout gemaakt. Je achtergrond is niet echt een achtergrond. http://www.beatz.calvins.nl/images/middle.png heeft niet alleen de achtergrond in zich maar ook de complete structuur van je site met menutekst. Dit heeft een aantal grote nadelen.
1) Google kan je site niet goed indexeren omdat het geen tekst in plaatjes kan lezen, mensen die van schermlezers afhankelijk zijn zullen ook weinig met je site kunnen doen.
2) Je bent alle flexibiliteit kwijt, als je ook maar iets meer tekst hebt dan in je oorspronkelijke ontwerp dan gaat het buiten de vakken.
3) Als je ook maar iets wilt veranderen moet je de hele afbeelding aanpassen.
4) Het maakt je site zwaarder dan nodig is.
5) Het wordt een nachtmerrie om alles bij alle resoluties op de goede plek te krijgen.
Je kunt beter even naar de links in mijn handtekening kijken, daar staat goed uitgelegd hoe je wel een site moet opbouwen.

Er zijn er vast nog wel wat meer maar dit is wat me nu even te binnen schiet
Maar ook daar heeft hij niks aan, het ding moet met de venstergrote mee rekken.
 
Laatst bewerkt:
ik ben zelf een beetje aan het uitvogelen hoe css werkt, ik weet dat ik daarbij fouten maak, maar ik zou graag een oplossing willen die werkt.
ik heb nu dit in de css file:

#middle {
margin: 0 auto;
background: url(images/middle.png);
size: contain;
position: relative;
}

maar dit werkt blijkbaar niet. ik weet dat in de middle image ook het achtergrond zit, maar voordat ik dat aanpas zou ik graag eerst willen weten hoe ik het zo groot mogelijk kan maken.

Mvg calvin
 
ah sorry ik begreep het verkeerd. dacht dat je een oplossing zocht om de middelste layer in photoshop the veranderen van formaat...

wat ik zou gebruiken als web oplossing;


in css:
body {padding:0px; margin:0px; overflow:hidden;}
#middel {position:absolute; width:100%; margin:0px; padding:0px; left:0px; right:0px;z-index:1}
#content {z-index:2; position:absolute; margin:0px; padding:0px; height:100%; width:100%; overflow:scroll; }

in je html:
<div id="middel"><img src="PADENNAAMNAARPLAATJE.jpg" width="100%" height="100%"></div>
<div id="content">
#content hier
</div>


zoiets?
 
Maar dat betekent dat het zich spreid over het scherm en dus niet zijn verhouding behoud.
Ik had gelezen dat "size:contain" zou helpen in de css. Maar dat is niet zo of doe ik dan iets verkeerd.
Verder is die 100% en 100% wel goed alleen de verhouding moet goed blijven.

Mvg calvin
 
Met background-size:contain; kun je er voor zorgen dat de achtergrondafbeelding binnen de grenzen van z'n container blijft (maar niet in oudere IE versies), maar de container kan wel groter zijn dan de achtergrondafbeelding. Stel dat je die #middle instelt op 80% van de schermgrote dan zal #middle op breedte schermen flink groter zijn dan de achtergrondafbeelding. Met background-size:100% auto; zorg je wel dat de achtergrond precies dezelfde breedte heeft als de container. (zie http://www.css3.info/preview/background-size/ voor meer info over background-size)

Maar, vergeet niet, dat je links niet flexibel zijn ingesteld, die blijven op een vaste positie staan en als de achtergrond flexibel is (en de plaatjes voor de knoppen in de achtergrond zitten) zal dat vaak de verkeerde positie zijn. Kortom, je zit op het moment op de verkeerde weg, een flexibele site bouwen waarbij het complete uiterlijk in de achtergrondafbeelding zit is gewoon een nachtmerrie.
 
zoals ik al zeg ben ik aan het oefenen met css, ik weet dat het achtergrond erin zit, maar dat maakt me nu niet uit omdat dat 2 seconden werk is om weg te helen (in photoshop) maar ik moet zorgen dat die middle op bijv. 80% van de breedte word weergegeven maar dat de hoogte ook goed blijft. hiermee bedoel ik dus de lengte breedte verhouding.
 
Zoals ik in post #7 al zei, je kunt een gewone afbeelding met position:absolute; als achtergrond gebruiken, of met background-position werken, maar daar hebben de meeste IE gebruikers niets aan (moeten ze ook maar een moderne browser gebruiken ;-p. )
 
het is niet de bedoeling dat ik de image als achtergrond ga gebruiken, hij moet ervoor staan. het moet zegmaar een soort van single-colum site worden waarbij de middle image de middelste colum is. die moet dan 80% van het scherm breed zijn en de verhouding (lengte/breedte) verhouding moet goed blijven. ik heb nu dit in de css:
#middle {
margin: 0 auto;
img: url(images/middle.png);
width:80%;
height: 100%;
position:relative;
}

maar dit werkt niet, ook raak ik hierbij de lengte/hoogte verhouding kwijt. de image zelf is vrijwel groot dus moet ook gesized worden.
 
Wat probeer je met img: url(images/middle.png); te bereiken? Als je gewoon een afbeelding wilt hebben kun je die het makkelijkst als <img /> in je HTML zetten.

OVerigens moet je wel van die height:100%; af, de browser moet de hoogte immers zelf aan kunnen passen om de beeldverhouding te laten kloppen.
 
oke, die img was eerst bacgkroud-image: maar ben ik vergeten terug te zetten naar background-image.
wat raad u me aan om in de css/html te zetten dan?
 
Heb je al geprobeerd wat ik in post #7 uitlegde? Er is aan je sit enog niets veradnerd dus we kunnen niet weten wat je geprobeerd hebt en of het werkte.
 
ik heb het er nu opstaan, het enige wat nog nodig is, is iemand met een groot beeldscherm die effe een kijkje wil nemen en vertellen of het er goed opstaat.
ik hoop dat het goed is gegaan op deze manier. alleen nog wachten op een antwoord daarover.

mvg calvin
 
Zonder de bij het plaatje horende CSS gaat dat niet werken natuurlijk. Bovendien geef je een vaste breedte en hoogte op aan #middle dus die kan nooit met het scherm meegroeien. Ik heb even een demo voor je op jsfiddle gezet (http://jsfiddle.net/apHAE/1/). In de demo neemt #midden altijd 80% van de breedte van het scherm in en is de afbeelding altijd exact even breed als #midden.

Overigens hoef je in dit soort gevallen niet op iemand met een groot scherm te wachten, je kunt ook gewoon uitzoomen met je browser om eenzelfde soort effect te krijgen.
 
Laatst bewerkt:
dat wat u nu op jsFiddle hebt gezet, staat in mijn css.
zoals het nu op de www.beatz.calvins.nl staat is dat goed, want dat is hetzelfde als op de jsFiddle staat.

Mvg calvin
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan