Autor Zpráva
mylan
Profil
Zdar. Chcel by som sa opýtať, či sa dá nejako zaistiť, aby sa mi veľkosť písma zväčšovala/zmenšovala len v určitom DIVe tak aby sa to dalo rovno meniť na stránkach, napr: boli by tam znamienka + a - a po kliknutí na plus by sa zväčšilo písmo v DIVe obsah a ostatné(menu, patička,...) by zostali nezmenené. Dá sa to nejako urobiť?
Vopred ďakujem za odpovede.
Anonymní
Profil *
Dá. Pro ten div si zavedeš nějaké id. Pomocí javascriptu mu pak při události onclick na ta znaménka + a - budeš měnit font-size.
habendorf
Profil
Sorry, zapomněl jsem se přihlásit.
mylan
Profil
Ak môžem poprosit, nešlo by to aj konkrétnejšie ako to napísat. Javaskript velmi neviem, skusal som aj teraz nieco, ale vysli mi len bludy :-\ Dakujem vopred...
habendorf
Profil
Tak tady to máš.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Untitled</title>
<style>
#nevolte-socany {font-size:1em;}
span {cursor:pointer}
</style>
<script>
size = 1;
function zmena(kam)
{
if (kam == 'nahoru') size=size+0.1; else size=size-0.1;
document.getElementById('nevolte-socany').style.fontSize=size +'em';
}
</script>
</head>
<body>
<div id="nevolte-socany">
Lorem ipsum dolor sit amet, consectetur adipisicing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</div>
<span onclick="zmena('nahoru')">+</span>
<span onclick="zmena('dolu')">-</span>
</body>
</html>


Ve stylu je nastavena výchozí velikost textu na 1em. Pokud si to budeš měnit, musíš ji změnit i v prvním řádku toho skriptu.
Krokování je nastaveno po 0.1em, to si můžeš změnit uvnitř té funkce.
Ještě to chce dopsat jednu podmínku,a to sice: pokud budeš zmenšovat tak dlouho, až by tam vznikla záporná velikost, tak to zařve. To je ještě potřeba ošetřit, zkus to sám, ať se pocvičíš. Kdyby ti to nešlo, ozvi se.
Fred
Profil
Byl jsem pomalejší a dospěl jsem k tomu samému :-) . Kdyby jsi to chtěl jen pro IE, tak se dá taky využít nestandardní css vlastnost zoom a pomocí ní můžeš pak v IE zoomovat jako v Opeře, kdysi jsem si na to udělal bookmarklet http://abrakadabra.nazory.cz/ie-font-size-bookmarklet.php
mylan
Profil
Strašne ti dakujem, velmi pomohol si mi. Išiel som na to celkom dobre :), až na to, že toto: document.getElementById('nevolte-socany').style.fontSize=size +'em'; som si ešte definoval, ale nevedel som už určit tie podmienky a ešte som mal udané písmo v % a to mi nešlo.
Inak popravde to písmo sa nedá zmenšiť do zápornej hodnoty, aspoň som to teraz skušal vo firefoxe aj v IE a obaja sa zastavia na 0.1em.

Fred: dik, ale asi bude lepšie riešenie od habendorfa, funguje predsa len vo všetkých prehliadačoch.
habendorf
Profil
Inak popravde to písmo sa nedá zmenšiť do zápornej hodnoty, aspoň som to teraz skušal vo firefoxe aj v IE a obaja sa zastavia na 0.1em.

To je divný, já jsem to zkoušel (v IE) a vyhodilo mi to chybu skriptu, konkrétně "Chyba: neplatný argument".
Zjistil jsem ještě zajímavou věc, když jsem si nechal alertovat proměnnou size: postupně 1, 1.1, 1.2000001

a ešte som mal udané písmo v % a to mi nešlo
Nezkoušel jsem, ale myslím že by s procenty neměl být problém, mělo by to chodit taky. Muselo by tam být

#nevolte-socany {font-size:100%;}

size = 100;

if (kam == 'nahoru') size=size+10; else size=size-10;
document.getElementById('nevolte-socany').style.fontSize=size +'%';
mylan
Profil
no tie percenta som mal nastavene na 90 a samozrejme aj všetko, čo som mal prepísat, tak som prepísal... Ale to je jedno, v em to ide teraz v pohode.
Neviem prečo mne to nevyhodi chybu. Ako to mám potom ošetrit napr aj proti príliš velkému zväčšeniu písma?
habendorf
Profil
Takže tady to máš i s tím ošetřením min a max. Schválně jsem to zkusil v % a chodí to v pohodě.
<style>

#nevolte-socany {font-size:100%;}
span {cursor:pointer}
</style>

<script>
var size = 100;
var max = 150;
var min = 50;
var string = "Dál to nejde!";
function zmena(kam)
{
if (kam == 'nahoru')
if (size < max) size+=10; else alert(string);
else
if (size > min) size-=10; else alert(string);
document.getElementById('nevolte-socany').style.fontSize=size +'%';
}
</script>
mylan
Profil
Neviem ako ti mám ani podakovat.... Super! Velmi pekne dakujem.
Honza Hučín
Profil
Kromě řešení pomocí JS je možné samozřejmě mít velikost písma danou nějakým parametrem a při generování stránky podle hodnoty parametru velikost zvolit. Ovšem je to těžkopádné - vyžaduje nové sestavení stránky na serveru. V tomto případě je podle mě použití JS vhodnější.
Toto téma je uzamčeno. Odpověď nelze zaslat.