用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']中,然後將瀏覽器重新定向到原來打開的哪個頁面。
當然,這裡還缺少一個組件:智能化得讓網頁自動檢測現在用戶現在選定的文本大小並加載相應的樣式表,為加入這一功能,打開您的網頁文件index.php,並將以下語句加入到文件的開頭(參見列表C):
列表C
// start session
// import variables
session_start();
// set default text size for this page
if (!isset($_SESSION['textsize'])) {
$_SESSION['textsize'] = 'medium';
}
?>
You should also add a stylesheet link between the ... elements, as follows:
type="text/css">
這是列表D,完整的index.php檔案應該是這樣的:
列表D:
// start session
// import variables
session_start();
// set default text size for this page
if (!isset($_SESSION['textsize'])) {
$_SESSION['textsize'] = 'medium';
}
?>
type="text/css">
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.
要理解這種工作方式應該很簡單了,當載入網頁的時候,它恢復目前的會話,並檢查$_SESSION['textsize']變數是否與當先選擇的字號相符,然後透過元素動態載入對應的樣式表,這將導致網頁以正確的大小自動重新渲染。 聯合使用PHP和CSS與傳統的方式略有不同,傳統方式是使用JavaScript來動態改變CSS樣式表,相對於JavaScript方法,PHP方法的優勢在於您不需要依賴客戶端對JavaScript的支持,您也不需要擔心專門創建針對某個瀏覽器的工作,也許下一次您坐下來設計網站的時候會發現這種方法很有效,祝編程愉快!