07. august 2008 - 16:06Der er
23 kommentarer og 1 løsning
Maks størrelse på billede
Hej allesammen. Jeg har et spørgsmål
Er det muligt at gøre sådan et et billede maks må være f.eks 400 px bredt?
Jeg har en billede hosting side, hvor gratis kan uploade og få hosted deres billeder. Problemet er så at når det bliver fremvist variere størrelsen meget hvilket nogle gange (hvis billedet er alt for stort) ødelægger mit design. Jeg havde tænkt på at gøre sådan at billedet maks må være 400 px bredt og højt px (men dog stadig beholde sin dimesion) og hvis brugeren så ville have billedet i en sin naturlige størrelse ville der være et link til billedet som viser billedet uden noget design omkring.
Men jeg vil jo så hellere ikke have at et billede som med målene 150X200 bliver strukket ud til 300X400. Så er der en måde at gøre sådan at billedet maks må have en størrelse på 400 px på en side?
enhydralutris > Du forvrider billedets format. Hvis nu et billede er 1250 x 1000 og du sætter en width på 400, forstrækker den jo billedet noget så forfærdeligt.
ssv > Hvis du kun sætter enten width eller height forvrider man ingen proportioner. - Prøv evt. selv med et billede. (jeg vil nok sætte width i css istedet style="width:400px;"
... Men forskellen på max-width vs. width er dog at max-width ikke udvider et billede på f.eks. 100px width, mens det gør width ... så en løsning på IE 6, dog med uvidelse af billedets størrelse deri kan være
<p id="p1">This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text.</p>
<input type="button" onclick="setMaxWidth()" value="Set max width" />
</body> </html>
Dette er det eksempel som de viser med javascript. Det eneste problem er dog at brugeren selv skal ind og trykke på input knappen i bunden. Er der nogen måde hvorpå at det kan gøres sådan at det hele siden er "setMaxWidth()"??
Det nærmeste omkransende element er i dit tilfælde ikke et div element, men det center element, du har wrappet omkring img elementet - og du skal derfor rette div til center i css delen.
- Det svarer så til at sætte css'en fra 07/08-2008 16:07:40 via. javascript. Hvis man på nogen måde har mulighed for at lave det direkte via. css istedet så er 23:21:58 ligesom at gå over åen efter vand. (Det eneste tilfælde hvor man "kan" have problemer med at sætte det direkte som css er så vidt jeg kan komme på ved dynamisk oprettede elementer)
mclemens>> Det hjælper ikke hvis jeg flytter <div> ind før <center>.
Men du har ikke end ide til hvordan jeg får det ovenstående javascript til at virke? Det ser ud til at virke fint, men hvordan gøre jeg sådan at brugeren ikke skal ind og trykke på knappen før billedet har den rigtige størrelse...
Ved ikke hvad der skete men nu virker det med CSS. Mange tak for hjælpen mclemens. Du har dog ikke svaret på noget endnu så ingen points til dig... (endnu) ;)
Ja, du kan udskifte function setMaxWidth() med window.onload=function()
- og så sætte id'et på billedet, men øhm ved stadig ikke hvorfor at du ikke kan få 07/08-2008 16:07:40 til at virke - hvis scriptet vil virke så virker css'en nu også, det er begge dele css uanset om det sætte ind med css eller om det sættes med javascript.
Det nok eneste tilfælde 07/08-2008 16:07 ikke vil virke er IE<7, der kan du så bruge 07/08-2008 16:56:47 med ulempen det giver (udvidelse af mindre billeder i IE<7) eller prøve w13's script i 07/08-2008 16:11:41 ... 07/08-2008 23:21:58 er ikke bedre i IE<7 end 07/08-2008 16:07:40 (det er det samme bortset fra at javascriptet til at sætte css'en virker øhm, "ikke så smart".
07/08-2008 23:45:58 a) Husker du at sætte classen på billedet rigtigt ? b) Er billedet indsat med det rigtige omkransende element ligesom i 07/08-2008 23:39:58 og den dertil hørende css del ? c) Hvilken browser er det du benytter, hvis ovenstående to ting er iorden ?
Ok, så er der lige et svar, men jeg vil helst dele med ssv - da min tilføjelse kun er en meget lille udvidelse af ssv's (som er god eller dårlig afhængig af billede størrelsen ...)
Alternativt til alt det her - hvis du kan måle på det oploadede billedet's width kan du undlade at outputte en class, hvis det er under 400px i width
og hvis det er over 400px i width kan du du outputte class="w400" på img'et og så css:
.w400{width:400px;}
(width vil så kun, grundet den begrænsede output af class'en, fungere som en minimering og ikke en udvidelse af billedet)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.