用PHP和CSS改變網頁文字大小——在設計網站的時候,要牢記一點:並不是所有的訪問者都是神采奕奕的年輕人,而且他們也不一定完全熟悉Web浏覽器的各種使用方法。
在設計網站的時候,要牢記一點:並不是所有的訪問者都是神采奕奕的年輕人,而且他們也不一定完全熟悉Web浏覽器的各種使用方法。聰明的設計者了解這一點,他們常常將各種特殊的可訪問特性融入網站的設計中,這樣,即使是年長者或是殘疾人士都可以方便舒適地使用網站,而不必花費額外的力氣。
文本大小調節器是最有效的可訪問特性中的一個,任何網站都可能需要它,簡而言之,這是一個用於改變網頁文字大小的工具,通常用於將文本變大從而易於閱讀,很多浏覽器已經自帶了這一特色,但是網絡浏覽器的初學者並不知道如何使用這一功能,因此,網站的設計者經常將更易於使用的按鈕放在每個網頁上來實現這一功能。
這篇指南將向您介紹如何使用PHP和CSS在網頁上添加具備這種功能的文本大小調節器,因此,趕快向您的網站添加這一可訪問性,這樣從年紀大於50歲的用戶那裡獲得贊譽的積分,繼續向下讀,您將學會使用它的方法。
注意:這篇指南假定您已經安裝了Apache和PHP
它是如何工作的?
在寫代碼之前,花一些時間來理解文本大小調節器的工作方式是非常有益的。網站中的每個網頁都包含一系列控制按鈕,他們允許用戶選擇頁面的文字大小:小號、中號和大號,每種字號都對應於一種CSS樣式表,這些樣式表保存了用於渲染網頁文本大小的規則。
當用戶做出選擇的時候,PHP將用戶選定的字號存儲在一個會話變量中,然後重新加載網頁,該頁面將從會話變量中讀取選定的字號,並動態調用相應的樣式表以更小的字號或更大的字號來重新渲染網頁。
過程
第一步:創建網頁
從創建HTML文檔開始,首先完成占位符的內容,列表A是一個例子:
列表A:
Text size: small | href="resize.php?s=medium">medium | large
Loremipsum dolor sit amet,
consecteturadipisicingelit, sed do eiusmodtemporincididuntutlabore et dolore
magna aliqua. Utenim
ad minim veniam, quisnostrud exercitation ullamcolaboris nisi utaliquip ex ea
commodoconsequat.
Duisauteirure dolor in reprehenderit in
voluptatevelitessecillumdoloreeufugiatnullapariatur.
Excepteursintoccaecatcupidatat non proident, sunt in culpa qui
officiadeseruntmollitanim id estlaborum.
對頁面頂部的文字超鏈接要特別注意,每個超鏈接都指向了名為resize.php的腳本文件,並通過URL GET方法將選定的字體大小傳遞給它。
在您的Web服務器目錄中以.php的擴展名來保存這個文檔,例如,index.php。
第二步:創建樣式表
接下來,為每種文字大小創建樣式表文件:small.css, medium.css和large.css,這是small.css的文件內容:
body {
font: 10px
}
同樣,可以創建medium.css和large.css,分別使用17px和25px,將這些樣式表文件和上一步創建的網頁保存在同一個目錄中。
第三步:創建文本大小的改變機制
正如上文介紹的,網頁通過查找預先定義的會話變量可以"知道"加載哪個樣式表文件,會話變量是通過腳本文件resize.php來控制的(參見列表B),該文件是在用戶點擊了網頁頂部改變文字大小的按鈕時激活的,這是resize.php的內容:
列表B
// start session
// import selected size into session
session_start();
$_SESSION['textsize'] = $_GET['s'];
header("Location: " . $_SERVER['HTTP_REFERER']);
?>
這很簡單,當用戶選擇了一種新的文本大小,resize.php通過GET方法來獲得字號的值,並將其存儲在會話變量$_SESSION['textsize']中,然後將浏覽器重新定向到原來打開的哪個頁面。 [next]
當然,這裡還缺少一個組件:智能化得讓網頁自動檢測現在用戶現在選定的文本大小並加載相應的樣式表,為加入這一功能,打開您的網頁文件index.php,並將以下語句加入到文件的開頭(參見列表C):
列表C
// start session
// import variables
session_start();
// set default text size for this page
if (!isset($_SESSION['textsi