ugrás a tartalomhoz

Kép méretezés adott maximális mérethez

gklka · 2008. Dec. 28. (V), 23.12
Ave!

Új vagyok még itt, de remélem jó helyre találtam, ahol némi segítséget remélhetek főleg CSS-sel kapcsolatos kérdésekben. Sajnos fogalmam sem volt, hogy lehetne erre a problémára rákeresni, így csak egyszerűen megkérdezem, hátha valaki tud legalább támpontot adni:

Adott egy kép, ami mondjuk egy div-ben foglal helyet. A cél az, hogy amennyiben a kép keskenyebb, mint az adott div, akkor az az eredeti méretében kerüljön ki az oldalra, azonban ha szélesebb, arányosan legyen leméretezve a div szélességéhez.

Megoldható ez CSS-ből? Esetleg kell hozzá JavaScript is? Hogyan?
 
1

Nope

janoszen · 2008. Dec. 29. (H), 09.38
CSS-ből ilyet biztosan nem tudsz, JS-ből már tudhatsz de szerintem, a technológia jelenlegi állapotában nem szeretnél csinálni. Lehet próbálkozni, csak nem biztos, hogy érdemes.
2

Miért ne?

gabesz666 · 2008. Dec. 29. (H), 09.49
A dolog megoldható CSS-ben, a kérdés, hogy mennyire böngésző kompatibilis. A max-width és max-height tulajdonságra gondolok, amit ha megadsz minden képnek, megoldja a problémát!
3

IE-ben nem

janoszen · 2008. Dec. 29. (H), 10.02
IE-ben nem megy. Minden másban ha jól emlékszem, igen.
4

Akkor bonyolítsuk...

gklka · 2008. Dec. 29. (H), 10.22
Akkor pontosítanám a dolgot! Sajnos elfelejtettem egy nagyon fontos részletet leírni: A div, amiben a kép van, sajnos nem fix méretű, hanem az is ugyanúgy kell, hogy viselkedjen, mint a benne lévő kép; vagyis amíg kevés benne a szöveg, ill. keskeny a kép, keskeny maga is, de egy bizonyos maximum méretig növekedhet. Ez persze – div-ről lévén szó – működik is, viszont így nem tudok konkrét számot írni a max-width-hez.

Ja és még valami: Mivel tulajdonképpen témát készítek egy IM klienshez, egyáltalán nem szempont, hogy IE-ben jól jelenjen meg; bőven elég, ha a KHTML motor ledarálja. :)
5

Nehéz ügy

gabesz666 · 2008. Dec. 29. (H), 11.27
Akkor viszont marad a Javascript!
6

De hogy?

gklka · 2008. Dec. 29. (H), 11.52
Valami ötletet legalább tudnál mondani? A JavaScript tudásom nem túl mély.
7

Mégse js

gabesz666 · 2008. Dec. 29. (H), 23.02
Eszembe jutott mégvalami. A képnek beállítasz egy "width: 100%; min-width: [kép mérete] px" aztán akkor mindegy, hogy mekkora a div mindenképp kitölti, kivéve, ha ugye a kép méreténél kissebb lenne!
8

Nem nyerő

gklka · 2008. Dec. 30. (K), 02.16
Ha 100%-ot állítok be szélességnek, akkor a div default, vagyis a lehető legkisebb méretét veszi fel, ami alig pár pixel. A másik gondom ezzel, hogy a kép méretét nem tudom explicite.
9

kép méretezése

Hatusi · 2009. Május. 14. (Cs), 08.20
igaz elég régi a téma azért ide dobok egy kódot. nekem egy oldal szélességéhez %-an igazodó divem van, egy képnek kell méreteződni vele...
function imgResize()
{
var szelesseg = window.screen.width;
var magassag = window.screen.height;
var kepszelesseg = szelesseg-52;
var arany = x;
var kepmagassag = kepszelesseg/arany;
document.write("<img src='images/head.jpg' width='" +kepszelesseg+ "' height='" +kepmagassag+ "' alt='img'/>");
}

egy szelesseg nevű változóban letárolom a képernyő szélességét, egy magassag nevű változóban letárolom a képernyő magasságát, ezzel megvan a felbontás.
Majd a képszélességet adom meg, tudom mennyi margót és paddinget adtam a divnek azt az értéket kivonom a szélességből és máris megvan a képszélesség. kiszámoltam az arányt, ezt x-el jelölöm, ez neked egy számérték lesz pl(8.5) és kiszámolom a magasságot. utánna pedig csak egy kiíratás gyün. ahol be akarod szúrni a képet ott csak meghívod a függvényt és kész is.
<div class="fejlec">
<script language="javascript" type="text/javascript">
                        imgResize();
                    </script>
</div>
10

Képernyő szélesség?

Poetro · 2009. Május. 14. (Cs), 11.13
Hogy jön a képernyő szélessége és magassága az böngészőablakom szélességéhez, valamint a konkrét használható felület szélességéhez, magasságához. Például ha nekem meg van nyitva pár sidebar, a tálca is oldalt helyezkedik el, valamint az ablak se teljes képernyőre van megnyitva akkor jóesélyel sokkal szélesebb lesz a kép, mint a látható felület, ráadásul két képernyőn dolgozok, ezért a szélesség jóval 3000px fölött van.
11

kiindulási pont

domel · 2009. Május. 17. (V), 11.33
Tanulásnak ezt ajánlom


<script language="JavaScript1.2">
function lenyom(){ 
adat =  parseInt(document.getElementById("domel").style.width);
document.getElementById("xakk").width=adat;
}
</script>
<body onclick="lenyom()">

<div id="domel" style="background-color:#FF0000;  width: 200px; height: 180px; z-index: 1; left: 1px; top: 1px">
<img id="xakk" border="0" src="file:///D:/kep.gif" width="16" height="16">
<div>

A fenti példában azt mutattam be, hogy lehet egy div méretét kiolvasni, és egy img méretét megadni. Innentől már úgy variálhatod ahogy akarod