使用CSS3改變文本選中的默認顏色——張鑫旭


關於瀏覽器文字選中顏色

以我的系統舉例(xp 默認主題),瀏覽器上頁面文字選中后默認的背景色是一種藍色, 不同瀏覽器的顏色有些許差異,但大致相同,文字顏色也近乎白色,如下圖所示,截自Firefox3.6瀏覽器:
文字選中默認顏色 張鑫旭-鑫空間-鑫生活

在CSS3的爸爸媽媽還沒有相親認識的時候,要改變頁面上文字選中后的背景色以及文字顏色,就跟讓太監生孩子一樣困難。但是,隨着CSS3呱呱落地,獲得越來越多的瀏覽器認可,一切又顯得那么自然而然。雖然有些頑固的糟老頭(如IE瀏覽器)還不認可這個新生的CSS3,但是,絲毫不影響其在其他瀏覽器上對UI的又一次改進。

目前Firefox、Safari、Chrome以及Opera瀏覽器都支持文本選擇屬性,如果瀏覽器不支持該屬性,會直接忽略它,所以不會產生任何不良的影響。

下面就簡單展示下這個改進UI體驗的小技巧。

二、改變默認選中顏色

首先,簡單點的例子,我們可以設置整個頁面文本選中的基本樣式,如下:

::selection {
    background:#d3d3d3; 
    color:#555;
}

::-moz-selection {
    background:#d3d3d3; 
    color:#555;
}

::-webkit-selection {
    background:#d3d3d3; 
    color:#555;
}

於是,文本選中的默認藍色背景就此變成了淡灰色,如下圖所示,截自Chrome瀏覽器:
改變頁面文字旋轉的基本樣式 張鑫旭-鑫空間-鑫生活

當然,我們可以使用CSS選擇器指定特定標簽內容文字選中后的樣式狀態,例如下面所展示的栗色選中狀態:

.maroon::selection {
    background:maroon; 
    color:#fff;
}

.maroon::-moz-selection {
    background:maroon; 
    color:#fff;
}

.maroon::-webkit-selection {
    background:maroon; 
    color:#fff;
}
<p class="maroon">...文字內容。</p>

會得到類似下圖的效果:
栗色選中狀態 張鑫旭-鑫空間-鑫生活

同樣的,你可以根據自己的需要,指定CSS選擇器以及對應內容文字/圖片等的選中樣式,這里就不一一舉例了。

兼容性(補充於2016-01-04)
IE9+瀏覽器都支持::selection, 考慮到現在IE8及其以下瀏覽器的份額越來越小,此屬性應該被更多人熟知和使用。

三、實例頁面

您可以狠狠地點擊這里:CSS3改變文本選中默認樣式demo

四、結語

老實講,在實際的商業項目中,我是絕不會使用:selection來改變文本選中的樣式的,要是個人網站或是設計類網站倒是很有可能使用此屬性來讓網站蓬蓽生輝。當然,每個人在頁面重構的過程中所注重的地方時不一樣的,所以,對:selection的態度僅代表個人觀點。

本文其實沒有什么內容,小技巧展示而已。如果文中有什么表述不准確的地方歡迎指正,也歡迎通過評論進行交流。

原創文章,轉載請注明來自張鑫旭-鑫空間-鑫生活[http://www.zhangxinxu.com]
本文地址:http://www.zhangxinxu.com/wordpress/?p=1147


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM