1. 程式人生 > >多型圖示(3)-HTML使用CSS切換

多型圖示(3)-HTML使用CSS切換

前言

   本節實現的目標是使用HTML的CSS實現圖示的狀態的切換,效果圖如下


HTML標籤 <a> 四態

    本demo使用html中的<a>標籤來演示,<a>也是有四態,如下:

   a:link /*未訪問時的狀態*/

   a:visited /*已訪問過的狀態*/

   a:hover /*滑鼠移動到連結上時的狀態*/

   a:active /*滑鼠按下去時的狀態*/

   本節只實現了其中的三態轉換,分別為:link、hover、active,圖示如下

   

   該圖示為90x30尺寸

HTML程式碼

   

   上圖為demo的資料夾內容,其中img資料夾裡存放的是上圖所示的三態圖示,其中test.html內容如下

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			
			.test a{background: url(img/testweb.png) no-repeat scroll 0 0 transparent; 	
			width: 30px;
			display: block;
		    height: 30px;
		    line-height: 12em;
		    overflow: hidden;
    }
    		.test a:hover{
    			background-position: -30px 0px;
    		}
    		
    		.test a:active{
    			background-position: -60px 0px;
    		}
		</style>
	</head>
	<body>
		<div class="test">
			<a >關閉</a>
		</div>
	</body>
</html>

   該工程點此下載

   你可以看到程式碼其實不多,因為我也是小白,好記性不如爛筆頭,接下來我將上面用到的知識整理一下  

相關推薦

圖示(3)-HTML使用CSS切換

前言    本節實現的目標是使用HTML的CSS實現圖示的狀態的切換,效果圖如下 HTML標籤 <a> 四態     本demo使用html中的<a>標籤來演示,<a>也是有四態,如下:    a:link /*未訪問時的狀態*/  

C語言面向物件程式設計:虛擬函式與3

 在《 C++ 程式設計思想》一書中對虛擬函式的實現機制有詳細的描述,一般的編譯器通過虛擬函式表,在編譯時插入一段隱藏的程式碼,儲存型別資訊和虛擬函式地址,而在呼叫時,這段隱藏的程式碼可以找到和實際物件一致的虛擬函式實現。     我們在這裡提供

3.Java面向物件程式設計OOA/OOP/OOD/OOAD()/UML類圖、函數語言程式設計Scala(JVM)---類與物件、封裝繼承、構造方法、覆寫/重寫/override

一、緒論 1.面向物件程式設計正規化(C++、Java、Go)------能進行現實生活的抽象。             每個物件都是一個類。類中包含屬性與方法。 OOA:面向物件分析 OOP:面向物件程式設計

3、【C++】繼承/

    面向物件的三個基本特徵是:封裝、繼承、多型。其中,封裝可以隱藏實現細節,使得程式碼模組化;繼承可以擴充套件已存在的程式碼模組(類);它們的目的都是為了——程式碼重用。而多型則是為了實現另一個目的——介面重用!     封裝:將一類事物所共有的屬性和行為方法進行總結,封裝在一個類中

Java 知識點整理-3.面向物件(、抽象類、介面)

1、多型概述:事物存在的多種形態。 2、多型前提:要有繼承關係;要有方法重寫;要有父類引用指向子類物件(父類名 識別符號 = new 子類名();)。 3、多型中的成員訪問特點:Ⅰ.成員變數:編譯看左邊(父類),執行看左邊(父類)。 4、多型中的成員訪問特點:Ⅱ.成員方法:編譯看左邊(父

Python 3.6:的實現

多型的作用不用多說,C++用如下條件來實現多型: 要有繼承 要有虛擬函式函式重寫 要有父類指標(父類引用)指向子類物件 實際上C++使用VPTR指標來完成這個事情,其是設計模式的基礎,軟體分層的基石。最近看了一下Python,很欣慰python3.6(因為我學的時候已經

Java Challengers#3性和繼承

    根據Venkat Subramaniam的傳說,多型性是面向物件程式設計中最重要的概念。多型性 -或者物件基於其型別執行專門操作的能力 - 是使Java程式碼具有靈活性的原因。命令,觀察者,裝飾者,策略等設計模式以及Gang Of Four建立的許多其他模式都使用

c++面向物件程式設計3 繼承與派生

1.繼承:程式碼重用 派生:程式碼的改造 public繼承: 基類的public和protected成員做子類的public和protected成員,而基類的private成員不可直接訪問;基類public成員,子類可以通過子類內部訪問該成員,也可以通過子類物件(類

面向物件程式設計的 3 個主要特徵:封裝性、繼承性、

封裝性:封裝是一種資訊隱蔽技術,它體現於類的說明,是物件的重要特性。封裝使資料和加工該資料的方法(函式)封裝為一個整體,以實現獨立性很強的模組,使得使用者只能見到物件的外特性(物件能接受哪些訊息,具有哪些處理能力),而物件的內特性(儲存內部狀態的私有資料和實現加工能力的演算法

java面向物件的3大特徵——封裝,繼承,

封裝: 封裝的概念:將類的某些資訊隱藏在類內部,不允許外部程式直接訪問,而是通過該類提供的方法來實現對隱藏資訊的操作和訪問 封裝的兩大原則:     1)把儘可能多的東西藏起來,對外提供便捷的介面     2)把所有的屬性藏起來 封裝的步驟:     1)修改屬性的可見性:

3.java小案例

多型    Pet.java package com.gaoshou.class1.duotai; /* * Pet是父類,定義好所有子類的公共屬性和方法,子類不用再一次進行宣告和建立,可以直接引

讀《More Effective C++35個改善程式設計與設計的有效方法》之條款3:絕對不要以方式處理陣列

有以下程式: <pre name="code" class="cpp">class Base { public: Base(int n = 0) : _b(n) {} int _b; }; class Devide : public Base { publ

3.JAVA中的

方法的重寫規則 引數列表必須完全與被重寫方法的相同; 返回型別必須完全與被重寫方法的返回型別相同; 訪問許可權不能比父類中被重寫的方法的訪問許可權更低。例如:如果父類的一個方法被宣告為public,那麼在子類中重寫該方法就不能宣告為protected。 父類的成員方法

thinkphp3.2.3動態切換資料庫

版本說明: thinkphp3.2.3新增自定義行為類 檔案位置:Application/Common/Behaviors/SwitchDbBehavior.class.php 檔案內容: namespace Common\Behaviors; class SwitchDbBehavior { //私

java學習日記_40:的記憶體圖示以及常見錯誤

記憶體使用圖1: 記憶體使用圖2: ———————————————— /* ClassCastException:型別轉換異常一般在多型的向下轉型中容易出現 */ class Animal {public void eat(){} } class Dog ex

java線程3種方式

run current java se 自己 cut 了解 itl detail pan Java多線程實現方式主要有三種:繼承Thread類、實現Runnable接口、使用ExecutorService、Callable、Future實現有返回結果的多線程。其中前兩種方式

python-線程3-生產者消費者

reading run cnblogs eas cond 多線程 rod con range ‘‘‘生產者和消費者‘‘‘ ‘‘‘ 用python寫一個多線程的生產者和消費者 生產者x x>0,有東西,print(不生產) x=0,沒東西,print(生產) for循

校 2013 3

memset 技術分享 fin style code printf ++i pos long B hash 把字符串看成數字插進去 #include<stdio.h> #include<string.h> using namespace st

【鏈表】2017校訓練3 HDU 6058 Kanade's sum

iostream ++ 多校 open pos cnblogs names mat play acm.hdu.edu.cn/showproblem.php?pid=6058 【題意】 給定一個排列,計算 【思路】 計算排列A中每個數的貢獻,即對於每個ai,計算有

Perl6線程3: Promise start / in / await

await font erl 跟著 art logs pan 什麽 主程序 創建一個Promise 並自動運行: my $p = Promise.start({say ‘Hello, Promise!‘}); 如果把代碼改成如下, 我們會發現什麽也沒打印: my $p