Seiteninhalt vergrößern
Matthias
- programmiertechnik
Hallo!
Ist es möglich, den Text einer Webseite unter bestimmten Bedingungen über ein Funktion o.ä. automatisch um z.B. 50% zu vergrößern (also: if ... Text 50% größer, else ...)???
Wenn ja, wie könnte das funktionieren bzw. wo erfahre ich sowas?
Vielemn Dank schonmal vorab.
MfG.,
Matthias
..der findet nicht
http://www.javarea.de/index.php3?opencat=Javascript&subcat=Text-Effekte&id=73
http://www.ruebemix.de/secviewa-73.html
http://www.coder-board.info/wbb2/thread,postid-4152,sid-d2d3a933d47fa0ea6d18748f09b4794d.htm#post4152
http://www.xhtmlforum.de/viewtopic505nr505.html
falls dir javascript kein begriff war:
http://www.google.de/search?hl=de&ie=UTF-8&q=schriftgröße+ändern&btnG=Suche&meta=
und wenn doch: http://www.google.de/search?q=javascript+schriftgröße+ändern&hl=de&lr=&ie=UTF-8&start=0&sa=N
mfg,
(tanz das)
Z.N.S.
Hallo.
Ist es möglich, den Text einer Webseite unter bestimmten Bedingungen über ein Funktion o.ä. automatisch um z.B. 50% zu vergrößern (also: if ... Text 50% größer, else ...)???
Wenn ja, wie könnte das funktionieren bzw. wo erfahre ich sowas?
if (...) {
document.getElementsByTagName("body")[0].style.fontSize = "150%";
}
Müsste klappen.
Hättest du aber auch selber finden können (wie Z.N.S. schon sagte).
Ich hoffe ich konnte helfen, H2O
Hi,
Müsste klappen.
unter welchen Bedingungen?
Cheatah
Hallo.
unter welchen Bedingungen?
Wenn du das als JS _richtig_ einbindest und das "if (...)" richtig angibst.
Schönen Tag noch, H2O
Hi,
unter welchen Bedingungen?
Wenn du das als JS _richtig_ einbindest und das "if (...)" richtig angibst.
und die font-size-Eigenschaft des <body>-Elements hinreichend günstig ist. Besteht dort bereits font-size:200%, wird die Schrift durch Deinen Code verkleinert.
Cheatah
Hallo.
und die font-size-Eigenschaft des <body>-Elements hinreichend günstig ist. Besteht dort bereits font-size:200%, wird die Schrift durch Deinen Code verkleinert.
OK. Dann lässt man sich zuerst die aktuelle Schriftgröße ausgeben, checkt ob es eine prozentuale Angabe oder eine Angabe in pt, px oder sonstwas ist.
Dann nimmt man sich die eigentliche Zahl raus (ohne %, pt, px, usw.) und rechnet diese mal 1,5. Dann hängt man die gefundene Angabe dran, also %, px, oder was auch immer und schon hat man die neue Angabe, die 150% der vorigen Schriftgröße entspricht.
Zufrieden? *g*
Schönen Tag noch, H2O
Hi,
OK. Dann lässt man [...]
Zufrieden? *g*
natürlich nicht, Du kennst mich doch! ;-) Das ganze wird wieder nicht funktionieren, wenn die tieferliegenden Schriftgrößen in einer festen Einheit notiert wurden.
Cheatah
Hallo.
natürlich nicht, Du kennst mich doch! ;-) Das ganze wird wieder nicht funktionieren, wenn die tieferliegenden Schriftgrößen in einer festen Einheit notiert wurden.
OK, OK. Ich gebe mich geschlagen. Du hast gewonnen *g*
Schönen Tag noch, H2O
Hallo. Ich brauche nochmal Hilfe:
if (...) {
document.getElementsByTagName("body")[0].style.fontSize = "150%";
}
Vielen Dank für den Tipp. Ich kenn mich in dem Bereich noch nicht so gut aus. Bin eben noch ein Anfänger. Im Moment sieht's so aus:
<script type="text/javascript">
<!--
if(screen.width >= 1024) {
document.getElementsById("body")[0].style.fontSize = "150%";
}
//-->
</script>
Leider funktioniert's aber nicht. Noch zur Info: Ich hab auf meiner Seite verschiedene Schriftgrößen in pt angegeben. Was muss ich noch ändern, damit die Schrift bei einer Bildschirmauflösung von >=1024 um z.B. 50% größer wird?
Danke schonmal vorab.
MfG.,
Matthias
Hi,
Ich kenn mich in dem Bereich noch nicht so gut aus. Bin eben noch ein Anfänger.
Deswegen:
if(screen.width >= 1024) {
Was hat die Bildschirmbreite überhaupt mit der Font-Größe zu tun? Und warum läßt Du den Surfer nicht die Font-Größe (wie üblich und erwünscht) selbst einstellen?
Oder gibt es da einen Sinn, der sich mir, mangels Information, nur noch nicht erschließt?
Gruß, Cybaer
Hallo.
Hallo. Ich brauche nochmal Hilfe:
OK.
Vielen Dank für den Tipp. Ich kenn mich in dem Bereich noch nicht so gut aus. Bin eben noch ein Anfänger. Im Moment sieht's so aus:
Dann helfe ich dir eben noch ein bisschen...
<script type="text/javascript">
<!--
if(screen.width >= 1024) {
document.getElementsById("body")[0].style.fontSize = "150%";
}
//-->
</script>
Das müsste eigentlich funktionieren. Allerdings solltest du erst mal probieren, ob die if Bedingung funktioniert (kleiner Tipp). Setzte einfach an Stelle des document.getEl... eine alert. Also z.B. alert("Es klappt");
Dann kannst du selber mal ein bisschen ausprobieren und wenn es funktioniert wird dir dies auch angezeigt.
Wenn du also eine alert bekommst muss die if-Anweisung stimmen und daraus folgt, dass die andere Zeile nicht stimmt. Dann setzte am Besten an Stelle des 150% mal 40pt ein. Wenn es funktioniert liegt es nur an dem Wert "150%". Funktioniert es aber nicht, liegt es an der Zeile.
Oh, da ist mir der Fehler gerade aufgefallen:
document.getElementsById("body")[0]... <-- falsch
document.getElementsByTagName("body")[0]... <-- richtig
^^^^^^^
Nur das Ende war falsch. Also muss die ganze Zeile so heißen:
document.getElementsByTagName("body")[0].style.fontSize = "150%";
Leider funktioniert's aber nicht. Noch zur Info: Ich hab auf meiner Seite verschiedene Schriftgrößen in pt angegeben. Was muss ich noch ändern, damit die Schrift bei einer Bildschirmauflösung von >=1024 um z.B. 50% größer wird?
Ich glaube du möchtest einfach, dass die Schriftgröße immer gleich bleibt, oder?
Egal welche Auflösung.
Dann kannst du CSS benutzen. Aber du gibst nicht pt an, sondern in z.B. cm oder mm:
http://de.selfhtml.org/css/formate/wertzuweisung.htm#numerische
Diese bleiben eben bei jeder Auflösung gleich.
Ich hoffe ich konnte helfen, H2O
Hallo. Auf die Gefahr, dass ich jetzt langsam nerve:
Vielen Dank für den zweiten Tipp.
... solltest du erst mal probieren, ob die if Bedingung funktioniert (kleiner Tipp). Setzte einfach an Stelle des document.getEl... eine alert. Also z.B. alert("Es klappt");
Das funktioniert. Die if-Bedingung funktioniert also.
Oh, da ist mir der Fehler gerade aufgefallen:
document.getElementsById("body")[0]... <-- falsch
document.getElementsByTagName("body")[0]... <-- richtig
^^^^^^^
Klar! Wie komme ich denn auf ById?
Nur das Ende war falsch. Also muss die ganze Zeile so heißen:
document.getElementsByTagName("body")[0].style.fontSize = "150%";
Jetzt sieht's also so aus:
if(screen.width >= 1024) {
document.getElementsByTagName("body")[0].style.fontSize = "150%";
oder:
if(screen.width >= 1024) {
document.getElementsByTagName("body")[0].style.fontSize = "40pt";
Jetzt erhalte ich aber den Fehler:
'document.getElementsByTagName("body")[0].style' ist Null oder kein Objekt
Was ist denn nun falsch? Ich hab's auch schon über
if(screen.width >= 1024) {
document.getElementsByName("body")[0].style.fontSize = "150%";
und über
if(screen.width >= 1024) {
document.getElementsById("body")[0].style.fontSize = "150%";
probiert. Ich bekomme aber immer noch die gleiche Fehlermeldung.
Vielen Dank gleich wieder im Voraus für die Bemühungen.
MfG.
Matthias
Hi,
'document.getElementsByTagName("body")[0].style' ist Null oder kein Objekt
Was ist denn nun falsch?
An welcher Stelle wird diese Anweisung denn ausgeführt? Wurde der Quelltext wirklich schon bis zum body eingelesen?
Ich hab's auch schon über
document.getElementsByName("body")[0].style.fontSize = "150%";
und über
document.getElementsById("body")[0].style.fontSize = "150%";
probiert.
Du solltest nicht wild drauflos probieren und dabei noch nicht vorhandene Anweisungen verwenden, sondern logisch an die Sache herangehen und verstehen, was Du da schreibst.
freundliche Grüße
Ingo
Hallo.
Hallo. Auf die Gefahr, dass ich jetzt langsam nerve:
Tust du nicht. Jeder fängt so an (fast jeder *g*).
Vielen Dank für den zweiten Tipp.
Kein Problem.
Das funktioniert. Die if-Bedingung funktioniert also.
Gut, damit gibt es da schon mal keinen Fehler.
Klar! Wie komme ich denn auf ById?
Da haben wir wohl beide nicht aufgepasst.
Jetzt erhalte ich aber den Fehler:
'document.getElementsByTagName("body")[0].style' ist Null oder kein Objekt
Gut, suchen wir weiter die Fehlerquelle:
Das bedeutet also, dass der body nicht (bzw. noch nicht) vorhanden ist.
Woran kann das liegen?
Was ist denn nun falsch? Ich hab's auch schon über
if(screen.width >= 1024) {
document.getElementsById("body")[0].style.fontSize = "150%";
Das ist sinnlos, denn den body über eine id anzusprechen ist nicht möglich und dann müsste auch die [0] dahinter weg:
http://de.selfhtml.org/javascript/objekte/document.htm#get_element_by_id
probiert. Ich bekomme aber immer noch die gleiche Fehlermeldung.
Ich nehme an dein Script sieht momentan ungefähr so aus:
<script type="text/javascript">
<!--
if (screen.width >= 1024) {
document.getElementsByTagName("body")[0].style.fontSize = "150%";
}
// -->
</script>
Gut, dann hast du es warscheinlich im head eingebunden, oder?
Das ist nähmlich nicht so gut, weil der body dann noch gar nicht geladen ist, wenn dieses Script aufgerufen wird.
Also versuchen wir es so:
<script type="text/javascript">
<!--
function gros() {
if (screen.width >= 1024) {
document.getElementsByTagName("body")[0].style.fontSize = "150%";
}
}
// -->
</script>
Und dein body-Tag sieht so aus:
<body onload="gros();">
Das ist sicher, denn durch onload stellst du vorher fest, dass das Dokument geladen wurde.
Funktioniert es nun?
Ich hoffe ich konnte helfen, H2O
Hi,
document.getElementsById("body")[0].style.fontSize = "150%";
Das ist sinnlos, denn den body über eine id anzusprechen ist nicht möglich
Warum sollte das nicht möglich sein? (Vorausgesetzt natürlich, daß das body-Element eine id hat)
und dann müsste auch die [0] dahinter weg:
Und auch das s hinter Element - da ids eindeutig sein MÜSSEN, kann die Funktion immer nur ein Element liefern, also heißt sie auch entsprechend.
cu,
Andreas
Hallo.
Warum sollte das nicht möglich sein? (Vorausgesetzt natürlich, daß das body-Element eine id hat)
Ja. Es hätte richtig heißen müssen, hier ist das nicht möglich, weil der body keien id hat. Mein Fehler.
Und auch das s hinter Element - da ids eindeutig sein MÜSSEN, kann die Funktion immer nur ein Element liefern, also heißt sie auch entsprechend.
Oh, ja. Du sagst es. Habe ich wohl übersehen.
Schönen Tag noch, H2O
Hallo.
Hallo. Auf die Gefahr, dass ich jetzt langsam nerve:
Tust du nicht. Jeder fängt so an (fast jeder *g*).
Vielen Dank für das Verständnis.
Ich nehme an dein Script sieht momentan ungefähr so aus:
<script type="text/javascript">
<!--
if (screen.width >= 1024) {
document.getElementsByTagName("body")[0].style.fontSize = "150%";
}
// -->
</script>
Genau erkannt! So sah's aus.
Gut, dann hast du es warscheinlich im head eingebunden, oder?
Richtig!
Das ist nähmlich nicht so gut, weil der body dann noch gar nicht geladen ist, wenn dieses Script aufgerufen wird.
Also machen wirs aus dem head raus:
Jetzt sieht's so aus:
...
</head>
<body>
<script type="text/javascript">
<!--
function gros() {
if (screen.width >= 1024) {
document.getElementsByTagName("body")[0].style.fontSize = "150%";
}
}
// -->
</script>
<body onload="gros();">
Gut, jetzt gibt's keine Fehlermeldung mehr. Allerdings wird die Schrift nicht um die angegebenen 50% größer sondren bleibt genau gleich groß. (Seufz! :-) )
Auch wenn ich das s bei Elements oder die [0] oder beides weglasse, ändert sich nichts.
Kann mir (wieder mal) jemand weiterhelfen?
Viele Grüße,
Matthias
Hallo.
Also machen wirs aus dem head raus:
Nein. Es soll drin bleiben, aber erst später aufgerufen werden.
</head>
<body>
Beginn des Bodys.
<script type="text/javascript">
<!--
function gros() {
if (screen.width >= 1024) {
document.getElementsByTagName("body")[0].style.fontSize = "150%";
}
}
// -->
</script>
<body onload="gros();">
Und noch ein Beginnn des bodys?
Gut, jetzt gibt's keine Fehlermeldung mehr. Allerdings wird die Schrift nicht um die angegebenen 50% größer sondren bleibt genau gleich groß. (Seufz! :-) )
Auch wenn ich das s bei Elements oder die [0] oder beides weglasse, ändert sich nichts.
Nein. Bei Elements irgendwas weglassen wäre sinnlos, aber ich denke mal die Schrift wird einfach nicht größer, weil du zwei bodys angegeben hast.
getElementsByTagName("body")[0] haben wir geschrieben.
Damit suchen wir den 1. body (die [0] steht für den ersten body).
Aber da du zwei hast (, was ziemlich sinnlos ist) dürfte es da Probleme geben.
Kann mir (wieder mal) jemand weiterhelfen?
Jepp, hier ist der Quelltext vom head an:
...
<head>
<script type="text/javascript">
<!--
function gros() {
if (screen.width >= 1024) {
document.getElementsByTagName("body")[0].style.fontSize = "150%";
}
}
// -->
</script>
</head>
<body onload="gros();">
...
Du das onload wird die Funktion gros() erst aufgerufen, wenn der body geladen ist. Also passt das prima.
Klappt es jetzt?
Ich hoffe ich konnte helfen, H2O
Hallo.
Der Quelltext vom head an:
...
<head>
<script type="text/javascript">
<!--
function gros() {
if (screen.width >= 1024) {
document.getElementsByTagName("body")[0].style.fontSize = "150%";
}
}
// -->
</script>
</head>
<body onload="gros();">
...
Klappt es jetzt?
Jetzt wird was größer, allerdings nicht die Schrift, sondern nur der Abstand zwischen den einzelnen Zeilen. Darüber hinaus wirkt sich das Ganze nur auf einen Teilabschnitt meiner Seite aus.
Wenn ich anstatt einer Prozentangabe eine Angabe in pt mache, wird auch nur der Zeilenabstand größer. Es klappt also immer noch nicht ganz.
Ich hoffe ich konnte helfen, H2O
Auch wenn's noch nicht ganz funktioniert find ich's super, dass mir hier per Ferndiagnose geholfen wird und sich jemand meiner Probleme, bei denen ich nicht mehr weiterkomme, annimmt! VIELEN DANK!!!
MfG.,
Matthias
Hallo.
Jetzt wird was größer, allerdings nicht die Schrift, sondern nur der Abstand zwischen den einzelnen Zeilen. Darüber hinaus wirkt sich das Ganze nur auf einen Teilabschnitt meiner Seite aus.
Arrggghhhh. ;)
Wenn ich anstatt einer Prozentangabe eine Angabe in pt mache, wird auch nur der Zeilenabstand größer. Es klappt also immer noch nicht ganz.
Also, jetzt habe ich das selber auch mal getestet, und bei mir klappt es.
Hier der _ganze_ Quelltext:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
<html>
<head>
<title></title>
<script type="text/javascript">
<!--
function gros() {
if (screen.width >= 1024) {
document.getElementsByTagName("body")[0].style.fontSize = "150%";
}
}
// -->
</script>
</head>
<body onload="gros();" style="font-size:12pt;">
Das ist der Text, der sich bei einer Auflösung von 1024 vergrößter ;)
<br><br>klsjdflöksjdf
</body>
</html>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Auch wenn's noch nicht ganz funktioniert find ich's super, dass mir hier per Ferndiagnose geholfen wird und sich jemand meiner Probleme, bei denen ich nicht mehr weiterkomme, annimmt! VIELEN DANK!!!
Und ich finde es gut, dass du dich bedankst.
Viele kommen her, fragen etwas und dann hört man nie mehr was von ihnen, eben die typischen Einmal-Poster, die denken das Forum ist nur für sie da.
Aber wenn sich jemand bedankt oder einfach nett ist, dann macht es mir natürlich auch viel mehr Spaß zu helfen.
So, vielleicht ist der Quelltext ja jetzt richtig.
Und wenn es nicht klappt, dann machst du bitte folgendes:
Solltest du den Quelltext verändert haben und es _dann_ nicht mehr klappt:
Ich hoffe ich konnte helfen, H2O
Hallo Matthias,
Jetzt wird was größer, allerdings nicht die Schrift, sondern nur der Abstand zwischen den einzelnen Zeilen.
Testest du im IE?
Hast du weitere Schriftgrößenangaben etwa in px oder pt?
Egal welche Schriftgröße für body angegeben wird, wenn weitere Schriftgrößen in px oder pt angegeben sind, ändert die Angabe für body im IE nur die Zeilenhöhe, nicht aber die Schriftgröße.
Auf Wiederlesen
Detlef