玩轉CSS的前生今生與基礎語法,選擇器的使用

1.爲什麼需要CSS?   

        HTML 標籤原本被設計爲用於定義文檔內容。通過使用 <h1>、<p>、<table> 這樣的標籤,HTML 的初衷是表達“這是標題”、“這是段落”、“這是表格”之類的信息。同時文檔佈局(比如字體啥顏色,是否縮進等樣式)由瀏覽器來完成,而不使用任何的格式化標籤。由於兩種主要的瀏覽器(Netscape 和 Internet Explorer)不斷地將新的 HTML 標籤和樣式(如字體標籤和顏色屬性)添加到 HTML 規範中,創建文檔內容清晰地獨立於文檔表現層的站點變得越來越困難。

       爲了解決這個問題,萬維網聯盟(W3C),這個非營利的標準化聯盟,肩負起了 HTML 標準化的使命,並在 HTML 4.0 之外創造出樣式(Style)。目前所有的主流瀏覽器均支持層疊樣式表。爲了讓網頁元素的樣式更加豐富,也爲了讓網頁的內容和樣式能拆分開,CSS由此思想而誕生,CSS是 Cascading Style Sheets 的首字母縮寫,意思是層疊樣式表。有了CSS,html中大部分表現樣式的標籤就廢棄不用了,html只負責文檔的結構和內容,表現形式完全交給CSS,html文檔變得更加簡潔,也將文檔的顯示樣式和結構內容實現瞭解耦,開發起來更加靈活。

       樣式表定義如何顯示 HTML 元素,就像 HTML 3.2 的字體標籤和顏色屬性所起的作用那樣。樣式通常保存在外部的 .css 文件中。通過僅僅編輯一個簡單的 CSS 文檔,外部樣式表使你有能力同時改變站點中所有頁面的佈局和外觀。由於允許同時控制多重頁面的樣式和佈局,CSS 可以稱得上 WEB 設計領域的一個突破。作爲網站開發者,你能夠爲每個 HTML 元素定義樣式,並將之應用於你希望的任意多的頁面中。如需進行全局的更新,只需簡單地改變樣式,然後網站中的所有元素均會自動地更新。

2.什麼是CSS 

  • CSS 指層疊樣式表 (Cascading Style Sheets)
  • 樣式定義如何顯示 HTML 元素,比如字體顏色,大小,是否加粗,縮進等樣式。
  • 樣式通常存儲在樣式表中,這樣文檔的樣式實現了與內容解耦開發。
  • 把樣式添加到 HTML 4.0 中,是爲了解決內容與表現分離的問題
  • 外部樣式表可以極大提高工作效率
  • 外部樣式表通常存儲在 CSS 文件
  • 多個樣式定義可層疊爲一混合使用,一個樣式表也可以渲染多個文檔內容模塊

3.CSS的使用

3.1 css基本語法

   選擇器是將樣式和頁面元素關聯起來的名稱(如標籤名),屬性是希望設置的樣式屬性每個屬性有一個或多個值

選擇器 { 屬性:值; 屬性:值; 屬性:值;}

 3.2CSS頁面引入的方法

1、外聯式:通過link標籤,鏈接到外部樣式表到頁面中

<link rel="stylesheet" type="text/css" href="css/main.css">

一般HTML文檔內容和渲染其的樣式表分開文件存儲,如下,在當前文件夾CSS下,新建一個main.css文件,在裏面寫上對div模塊文檔樣式的渲染語法如下:

div{
	font-size:20px;
	color:red;
}

 

2、嵌入式:通過style標籤,在網頁上創建嵌入的樣式表

     這種用法一般可以在網站的首頁中使用,將樣式表直接嵌入到HTML,有利於性能的優化,這樣用戶在訪問網頁首頁的時候可以快速進行加載,比如淘寶網首頁就是如此使用。

<style type="text/css">
    div{ width:100px; height:100px; color:red }
    ......
</style>

3、內聯式:通過標籤的style屬性,在標籤上直接寫樣式

這種方式不需要選擇器,直接通過屬性的方式實現樣式內嵌。

<div style="width:100px; height:100px; color:red ">......</div>

      下面演示3種CSS頁面引入方法的使用,這樣CSS的使用,將文檔的內容與樣式解耦了,HTML只負責了文檔的結構和內容,CSS負責文檔內容的樣式渲染。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	 <!-- 第一種插入樣式的方式 外鏈式  -->
	<link rel="stylesheet" type="text/css" href="css/main.css">

	 <!-- 第二種插入樣式的方式 內嵌式  -->
	<style type="text/css">		
		h1{ <!--這裏選擇器h1表示對所有h1標籤進行渲染。-->
			font-size:20px;
			color:gold;
		}

	</style>

</head>
<body>

	<h1>頁面標題</h1>
	<div>這是一個div標籤</div>

	<!-- 第三種插入樣式的方式 行內樣式   -->
	<a href="http://www.baidu.com" style="font-size:20px;color:pink">百度一下</a>
</body>
</html>

3.3 常用的應用文本的css樣式

  • color 設置文字的顏色,如: color:red;
    css顏色值主要有三種表示方法:

    1、顏色名錶示,比如:red 紅色,gold 金色

    2、rgb表示,比如:rgb(255,0,0)表示紅色

    3、16進制數值表示,比如:#ff0000 表示紅色,這種可以簡寫成 #f00

  • font-size 設置文字的大小,如:font-size:12px;默認大小是16px.

  • font-family 設置文字的字體,如:font-family:'微軟雅黑';

  • font-style 設置字體是否傾斜,如:font-style:'normal'; 設置不傾斜,font-style:'italic';設置文字傾斜

  • font-weight 設置文字是否加粗,如:font-weight:bold; 設置加粗 font-weight:normal 設置不加粗

  • line-height 設置文字的行高,設置行高相當於在每行文字的上下同時加間距, 如:line-height:24px;

  • font 同時設置文字的幾個屬性,寫的順序有兼容問題,建議按照如下順序寫: font:是否加粗 字號/行高 字體;如: font:normal 12px/36px '微軟雅黑';

  • text-decoration 設置文字的下劃線,如:text-decoration:none; 將文字下劃線去掉

  • text-indent 設置文字首行縮進,如:text-indent:24px; 設置文字首行縮進24pxtext-align 設置文字水平對齊方式,如text-align:center 設置文字水平居中

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>常用文本樣式</title>
	<style type="text/css">
		div{  <!--多所有div標籤進行格式渲染-->
			
			color:green;

			/* font-size:20px;
			font-family:'Microsoft Yahei';	
			line-height:40px; */

			font:normal 20px/40px 'Microsoft Yahei';

			/* text-decoration:underline; */

			text-indent:40px;

		}
		em{   <!--對所有em標籤進行格式渲染-->
			font-style:normal;
			color:gold;
		}
		span{   <!--對所有span標籤進行格式渲染-->
			color:red;
			font-size:30px;
		}
		h1{   <!--對所有h1標籤進行格式渲染-->
			font-weight:normal;
            color:#ffff00;
		}
		a{   <!--對所有a標籤進行格式渲染-->
			text-decoration:none;
			text-align:center;
		}

		p{
			text-align:center;
		}

	</style>
</head>
<body>
	<h1>樣式演示</h1>
    <h1>樣式演示1</h1>
	<div>
		<span>HTML</span>是 <em>HyperText Mark-up Language</em> 的首字母簡寫,意思是超文本標記語言,超文本指的是超鏈接,標記指的是標籤,是一種用來製作網頁的語言,這種語言由一個個的標籤組成,用這種語言製作的文件保存的是一個文本文件,文件的擴展名爲html或者htm,一個html文件就是一個網頁,html文件用編輯器打開顯示的是文本,可以用文本的方式編輯它,如果用瀏覽器打開,瀏覽器會按照標籤描述內容將文件渲染成網頁,顯示的網頁可以從一個網頁鏈接跳轉到另外一個網頁。
	</div>

	<p>這是一個p標籤1</p>
    <p>這是一個p標籤2</p>

	<a href="http://www.baidu.com">百度網的鏈接</a>


</body>
</html>

3.4 css選擇器的使用詳解

       上面使用我們大致知道了,CSS樣式嵌入頁面的3種方式,其中嵌入式使用的就是選擇器進行樣式嵌入。所謂的選擇器就是一個我們指定的的需要渲染模塊的名稱,上面一般使用的選擇器名稱就是HTML標籤名稱,基於HTML的標籤模塊進行格式渲染,但是實際效果來說,範圍還是太大,比如div選擇器,會對所有的div模塊進行統一格式樣式,那就有點過了。

1、標籤選擇器

標籤選擇器,此種選擇器影響範圍大,建議儘量應用在層級選擇器中。
舉例:

*{margin:0;padding:0}
div{color:red}   


<div>....</div>   <!-- 對應以上兩條樣式 -->
<div class="box">....</div>   <!-- 對應以上兩條樣式 -->

2、id選擇器

        通過id名來選擇元素,元素的id名稱不能重複,所以一個樣式設置項只能對應於頁面上一個元素,不能複用,id名一般給程序使用,所以不推薦使用id作爲選擇器。
舉例:

#box{color:red} 

<div id="box">....</div>   <!-- 對應以上一條樣式,其它元素不允許應用此樣式 -->

3、類選擇器

         通過類名來選擇元素,一個類可應用於多個元素,一個元素上也可以使用多個類,應用靈活,可複用,是css中應用最多的一種選擇器。
舉例:

.red{color:red}
.big{font-size:20px}
.mt10{margin-top:10px} 

<div class="red">....</div>
<h1 class="red big mt10">....</h1>
<p class="red mt10">....</p>

下面就籤選擇器,id選擇器和類選擇器的綜合使用案例如下:注意如果同一個內容通過標籤選擇器,id選擇器 ,類選擇器同時修飾,後者會覆蓋前者的樣式。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>css選擇器</title>
	<style type="text/css">
		*{  /* 表示渲染所有的標籤格式*/
			font-size:30px;
		}
		div{
			color:red;
		}
		#div1{ 
			color:blue;
		}
		#div2{   /* #div1表示id選擇器的id是div*/
			color:blue;
		}

		.green{  		/* 注意類選擇器是通過.類名的形式表現的,嵌入是通過標籤class屬性的形式引入的 */
			color:pink;
		}
		.big{
			font-size:40px;
		}
	</style>
</head>
<body>
	<div>這是第1個div</div>
	<div id="div1" >這是第2個div</div>
	<div id="div2" class="green big">這是第3個div</div>
	<div class="green big">這是第4個div</div>
	<div>這是第5個div</div>
	<p class="green">這是一個p標籤</p>
</body>
</html>

 結果顯示如下:

4、層級選擇器

    主要應用在選擇父元素下的子元素,或者子元素下面的子元素,可與標籤元素結合使用,減少命名,同時也可以通過層級,防止命名衝突。
舉例:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
		
		.box{
			font-size:20px;
			line-height:30px;
			text-indent:40px;
		}

		.box span{
			color:red;
			font-weight:bold;
		}

		.box em{
			font-style:normal;
			text-decoration:underline;
			font-weight:bold;
			color:pink;
		}

		.box .span02{
			color:blue;
		}

	</style>
</head>
<body>
	<div class="box">層級選擇器主要應用在選擇父元素下的<span>子元素</span>,或者子元素下面的子元素,可與標籤元素結合使用,減少命名,同時也可以通過層級,<em>防止命名衝突</em>。
	層級選擇器主要應用在選擇父元素下的子元素,或者子元素下面的<span class="span02">子元素</span>,可與標籤元素結合使用,減少命名,同時也可以通過層級,防止命名衝突。
	層級選擇器主要應用在選擇父元素下的子元素,或者子元素下面的子元素,可與標籤元素結合使用,減少命名,同時也可以通過層級,防止命名衝突。
	</div>


	<div class="box2">層級選擇器主要應用在選擇父元素下的<span>子元素</span>,或者子元素下面的子元素,可與標籤元素結合使用,減少命名,同時也可以通過層級,防止命名衝突。
	層級選擇器主要應用在選擇父元素下的子元素,或者子元素下面的子元素,可與標籤元素結合使用,減少命名,同時也可以通過層級,防止命名衝突。
	層級選擇器主要應用在選擇父元素下的子元素,或者子元素下面的子元素,可與標籤元素結合使用,減少命名,同時也可以通過層級,防止命名衝突。
	</div>
</body>
</html>

5、組選擇器

多個選擇器,如果有同樣的樣式設置,可以使用組選擇器。
舉例:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">


		.box01,.box02,.box03{ /*表示這三個類選擇器的的文字大小都是40px*/
			font-size:40px;
			text-indent:40px;
		}

		.box01{		
			color:red;
		}

		.box02{
			color:pink;
		}

		.box03{
			color:gold;
		}

	</style>
</head>
<body>
	<div class="box01">這是第一個div</div>
	<div class="box02">這是第二個div</div>
	<div class="box03">這是第三個div</div>
</body>
</html>

 

6、僞類及僞元素選擇器

常用的僞類選擇器有hover,表示鼠標懸浮在元素上時的狀態,僞元素選擇器有before和after,它們可以通過樣式在元素中插入內容。注意通過before,after插入的內容無法選中。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
		.link{
			font-size:30px;
			text-decoration:none;
			color:green;
		}
		.link:hover{  /*鼠標懸停時字體變成金色*/
			color:gold;
			font-weight:bold;
			font-style:italic;
		}
		.box01,.box02{
			font-size:20px;
		}
		.box01:before{
			content:"· ";
			color:red;
		}
		.box02:after{
			content:" 。";
			color:red;
		}

	</style>
</head>
<body>
	<a href="http://www.baidu.com" class="link">百度一下</a>
	<div class="box01">這是第一個div</div>
	<div class="box02">這是第二個div</div>
</body>
</html>

統一聲明:關於原創博客內容,可能會有部分內容參考自互聯網,如有原創鏈接會聲明引用;如找不到原創鏈接,在此聲明如有侵權請聯繫刪除哈。關於轉載博客,如有原創鏈接會聲明;如找不到原創鏈接,在此聲明如有侵權請聯繫刪除。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章