• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Schriftgröße ändern

Status
Für weitere Antworten geschlossen.

Mike008

Neues Mitglied
Hallo,

ich möchte auf meiner Seite die Schriftgröße verändern können. So das der User drei Buttons ein kleines A, ein mittleres A und ein großes A. Wenn er auf einer der Buttons klickt verändert sich die Schriftgröße entsprechend. Dies habe ich bisher immer mit drei verschiedenem CSS Dateien realisiert und mit JavaScript gesteuert. Nun möchte ich aber auf JavaScript verzichten und dies, wenn möglich mit PHP realisieren, wenn dies geht.

Kann mir mir jemand da eine Lösung nennen oder irgendwie helfen ?

Vielen Dank

Mike
 
Werbung:
also mit php geht dies meines wissens nicht.

ich würde einfach 3 seiten machen und auf jeder die schriftgröße anders machen. dann einfach einen link.

oder einfach mit javascript. wieso lässt du es nicht mit java sript? einfacher gehts gar nich.
 
Nachteile von JavaScript dürften auf der Hand liegen.

Mit PHP würden mir nur 3 Stylesheets + Cookie einfallen, Cookies haben allerdings im Grunde den gleichen Nachteil wie JS.
 
Werbung:
Klar geht das:

PHP:
<style type="text/css">
body{
font-size:
<?php
$white = array("10",
              "15",
              "20");
if(in_array($_GET['groesse'], $white))
    echo $_GET['groesse'];
else
    echo $white[1];
?>
px;

(weitere Style-angaben)
</style>

Und dann die Links:
Code:
<a href="index.php?groesse=1">Klein</a>
<a href="index.php?groesse=2">Mittel</a>
<a href="index.php?groesse=3">Gro&szlig;</a>

Wenn die Größe gespeichert werden soll, dann musst du auch noch cookies benutzen:
PHP:
if(array_key_exists("groesse", $_COOKIE) && !array_key_exists("groesse", $_GET))
    $_GET['groesse'] = $_COOKIE['groesse'];
setcookie("groesse", $_GET['groesse']);

Entsprechend müsstest du dann an alle Links das groesse=x dranhängen, falls ein User keine Cookies akzeptiert.
 
Nutze keine absoluten Schriftgrößenangaben. Verwende nur "em" oder "%" als Einheiten dafür. Dann kanns du per JavaScript die Schriftgröße im body ändern - und alles andere sollte sich anpassen.

Größer machen:
Code:
document.getElementById('bodyID').style.fontSize = "1.2em";
Kleiner machen:
Code:
document.getElementById('bodyID').style.fontSize = "0.8em";
 
Nutze keine absoluten Schriftgrößenangaben. Verwende nur "em" oder "%" als Einheiten dafür. Dann kanns du per JavaScript die Schriftgröße im body ändern - und alles andere sollte sich anpassen.

Größer machen:
Code:
document.getElementById('bodyID').style.fontSize = "1.2em";
Kleiner machen:
Code:
document.getElementById('bodyID').style.fontSize = "0.8em";

Am besten wären eigentlich garkeine festgelegten Schriftgrößen. Der User sollte sich seine Schriftgröße selber aussuchen und nach belieben mit strg + Mausrad vergrößern / verkleinern.
 
Werbung:
Klar geht das:

PHP:
<style type="text/css">
body{
font-size:
<?php
$white = array("10",
              "15",
              "20");
if(in_array($_GET['groesse'], $white))
    echo $_GET['groesse'];
else
    echo $white[1];
?>
px;

(weitere Style-angaben)
</style>

Und dann die Links:
Code:
<a href="index.php?groesse=1">Klein</a>
<a href="index.php?groesse=2">Mittel</a>
<a href="index.php?groesse=3">Gro&szlig;</a>

Wenn die Größe gespeichert werden soll, dann musst du auch noch cookies benutzen:
PHP:
if(array_key_exists("groesse", $_COOKIE) && !array_key_exists("groesse", $_GET))
    $_GET['groesse'] = $_COOKIE['groesse'];
setcookie("groesse", $_GET['groesse']);

Entsprechend müsstest du dann an alle Links das groesse=x dranhängen, falls ein User keine Cookies akzeptiert.
Danke, funktioniert perfekt aber leider muss sich nicht nur die Schriftgröße ändern der komplette CSS Style da dort das ganze Layout definiert wird. Wenn ich dies so mache, also nur die Schrift, wird das komplette Layout und die Navigation zerschossen. Daher komme ich woh nicht ohne JS aus, aber vielen Dank für die Mühe.

Gruß
Mike
 
Hi,

Du könnest aber auch einfach 3 Style Definitionen machen und diese dann je nach Anwendungsfall einbinden !

Beispiel:

Wenn kleine Schrift gewünscht, lade alle CSS Definitionen aus dem Ordner <CVS>/style/small/
Wenn mittlere Schrift gewünscht, lade alle CSS Definitionen aus dem Ordner <CVS>/style/medium/
Wenn großeSchrift gewünscht, lade alle CSS Definitionen aus dem Ordner <CVS>/style/big/

dann müsstest Du jedoch für jeden Anwendungsfall einen eigenen Style machen - das fände ich persönlich viel zu viel ^^

Oder Du baust Deine Seite so CSS konform, das sie nicht zerreissen kann bei einer Schriftgrößen Änderung.

Gruß Sven
 
Hi,

Du könnest aber auch einfach 3 Style Definitionen machen und diese dann je nach Anwendungsfall einbinden !

Beispiel:

Wenn kleine Schrift gewünscht, lade alle CSS Definitionen aus dem Ordner <CVS>/style/small/
Wenn mittlere Schrift gewünscht, lade alle CSS Definitionen aus dem Ordner <CVS>/style/medium/
Wenn großeSchrift gewünscht, lade alle CSS Definitionen aus dem Ordner <CVS>/style/big/

dann müsstest Du jedoch für jeden Anwendungsfall einen eigenen Style machen - das fände ich persönlich viel zu viel ^^

Oder Du baust Deine Seite so CSS konform, das sie nicht zerreissen kann bei einer Schriftgrößen Änderung.

Gruß Sven

Das ist kein Problem drei komplett verschiedene CSS Styles anzulegen, aber diese will ich nicht mit JS sondern mit PHP ansteuern, das ist das eigentliche Problem.

Danke
Mike
 
Werbung:
Das sollte auch nicht das Problem sein mit php
PHP:
session_start();
$default = "style1"; //standart css
$_SESSION["style"] = (isset($_GET["style"])) ? $_GET["style"] : (empty($_SESSION["style"])) ? $default : $_SESSION["style"];
dann brauchst du nur noch im head folgende anweisung schreiben
PHP:
<head>
<link ref="stylesheet" href="<?php echo $_SESSION["style"]; ?>.css" />
</head>

ändern kannst du die stylesheets dann einfach mit
HTML:
<a href="file.php?style=style2">style2.css benutzen</a>
wenn du kein parameter übergibst bleibt der style gleich
 
Leider funzt es nicht.

Code:
<?PHP
session_start();
$default = "INC/css/style_01"; //standart css
$_SESSION["style"] = (isset($_GET["style"])) ? $_GET["style"] : (empty($_SESSION["style"])) ? $default : $_SESSION["style"]; 
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Unbenanntes Dokument</title>
<link ref="stylesheet" href=".css" />
<link href="<?php echo $_SESSION["style"]; ?>.css" rel="stylesheet" type="text/css">
</head>

<body>
<table width="492" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="34" height="284" align="left" valign="top"><a href="index.php?style=INC/css/style_01.css"><img src="INC/img/icon_a1.png" alt="Standard" width="18" height="20" border="0" /></a></td>
    <td width="34" valign="top"><a href="index.php?style=INC/css/style_02.css"><img src="INC/img/icon_a2.png" alt="Gro&szlig;" width="18" height="20" border="0" /></a></td>
    <td width="31" valign="top"><a href="index.php?style=INC/css/style_03.css"><img src="INC/img/icon_a3.png" alt="Gr&ouml;&szlig;er" width="18" height="20" border="0" /></a></td>
    <td width="393" valign="top">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec molestie. Sed aliquam sem ut arcu. Phasellus sollicitudin. Vestibulum condimentum facilisis nulla. In hac habitasse platea dictumst. Nulla nonummy. Cras quis libero. Cras venenatis. Aliquam posuere lobortis pede. Nullam fringilla urna id leo. Praesent aliquet pretium erat. Praesent non odio. Pellentesque a magna a mauris vulputate lacinia. Aenean viverra. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Aliquam lacus. Mauris magna eros, semper a, tempor et, rutrum et, tortor.sdf</td>
  </tr>
</table>
</body>
</html>
 
Schriftgröße geht wohl nicht in PHP

Es scheint wohl doch so zu sein das in PHP die Schriftgrößenveränderung nicht geht, bzw. der Style wechseln.

Gruß
Mike
 
Werbung:
1. Was ist das denn:
Code:
<link ref="stylesheet" href=".css" />
2. Versuchs mal so:
PHP:
$_SESSION["style"] = (isset($_GET["style"])) ? $_GET["style"] : ((empty($_SESSION["style"])) ? $default : $_SESSION["style"]);

@Fredmonster: Wenn man sowas unbedingt haben will, dann ist das die wohl beste Loesung. Besser waere natuerlich, jedem User seine Schrftgroesse zu lassen und die Seite so kompatibel zu machen, dass sie bei jeder Groesse funktioniert.
 
Leider geht es nicht, SCHADE

ich habe jetzt die verschiedenen styles in die index.php im gleichen verzeichnis und hab auch die pfade geändert, trotzdem funzt es nicht.

PHP:
<?PHP
session_start();
$default = "style_01"; //standart css
$_SESSION["style"] = (isset($_GET["style"])) ? $_GET["style"] : ((empty($_SESSION["style"])) ? $default : $_SESSION["style"]);
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Unbenanntes Dokument</title>
<link href="<?php echo $_SESSION["style"]; ?>.css" rel="stylesheet" type="text/css">
</head>

<body>
<table width="492" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="34" height="284" align="left" valign="top"><a href="index.php?style=style_01.css"><img src="INC/img/icon_a1.png" alt="Standard" width="18" height="20" border="0" /></a></td>
    <td width="34" valign="top"><a href="index.php?style=style_02.css"><img src="INC/img/icon_a2.png" alt="Gro&szlig;" width="18" height="20" border="0" /></a></td>
    <td width="31" valign="top"><a href="index.php?style=style_03.css"><img src="INC/img/icon_a3.png" alt="Gr&ouml;&szlig;er" width="18" height="20" border="0" /></a></td>
    <td width="393" valign="top">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec molestie. Sed aliquam sem ut arcu. Phasellus sollicitudin. Vestibulum condimentum facilisis nulla. In hac habitasse platea dictumst. Nulla nonummy. Cras quis libero. Cras venenatis. Aliquam posuere lobortis pede. Nullam fringilla urna id leo. Praesent aliquet pretium erat. Praesent non odio. Pellentesque a magna a mauris vulputate lacinia. Aenean viverra. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Aliquam lacus. Mauris magna eros, semper a, tempor et, rutrum et, tortor.sdf</td>
  </tr>
</table>
</body>
</html>
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben