初學者必讀:CSS是什么?DIV+CSS又是什么?
很多初學的朋友學完HTML后開始學習CSS,在學習中常常遇到 div+css,但是不知道什么意思。網上很多資料說div就是取代〈table〉的,并且搜索引擎喜歡 div,更容易被搜索引擎收錄,反正很多。但到底 div+css(或者div)是什么意思?為什么用它?為什么不用〈table〉呢?這樣,我們先科普一下 css 是什么,然后再一起了解下 div+css 是什么。 css 是 Cascading Style Sheets (層疊樣式表)的簡稱,css 語言是一種標記語言,它不需要編譯,可以直接由瀏覽器執行(屬于瀏覽器解釋型語言)。
在學習 css 之前你應該掌握哪些基礎知識
2.會使用 Dreamweaver 等常用的網頁編輯器。
Dreamweaver 是現今最好的網站編輯工具之一,而 Dreamweaver8 增加的對 css 的支持更是你容易得來使用 css,用它來給制作網頁的 css 樣式表會更簡單、更方便。
CSS 是什么
CSS 就是 Cascading Style Sheets,中文翻譯為“層疊樣式表”,簡稱樣式表,它是一種制作網頁的新技術。網頁設計最初是用HTML標記來定義頁面文檔及格式,例如標題<h1>、段落<p>、表格<table>、鏈接<a>等,但這些標記不能滿足更多的文檔樣式需求,為了解決這個問題,在1997年W3C(The World Wide Web Consortium)頒布 HTML4 標準的同時也公布了有關樣式表的第一個標準 CSS1, 自CSS1的版本之后,又在1998年5月發布了 CSS2 版本,樣式表得到了更多的充實。W3C 把 DHTML(Dynamic HTML)分為三個部分來實現:腳本語言(包括JavaScript、Vbscript等)、支持動態效果的瀏覽器(包括 Internet Explorer、Netscape Navigator等)和CSS樣式表。
怎樣使用CSS
<body>
設置的標簽選擇器所設的字體樣式會自動應用到<body>
下的<p>
中,除非<p>
重寫了相關樣式將其覆蓋。css 語義化的命名是指用易于理解的名稱對 html 標簽附加的 class 或 id 命名,如對于頁面上方的
<div>
,可將其id
設為header
;頁面下方的<div>
設為footer
,可以增強 CSS 的可維護性。基本上層疊的意思就是“繼承”、“權重”、“覆蓋”,通過良好的層級命名更好的實現效果,更少的代碼,更多的功能
比如下面的一個代碼我們這樣寫:
<div class="box">
<div class="h2">這是區塊標題</div>
<div class="bd">這是區塊內容</div>
<div>
使用 CSS 樣式,通常有3種方法:元素中直接添加樣式、從頁面頭部<style>
元素中調用、采用鏈接的形式調用。其中元素中直接添加樣式優先級最高、從頁面頭部調用次之、采用鏈接外部CSS樣式最低。
你可以在你的 HTML 文檔的<HTML>
和<BODY>
標記之間插入一個<STYLE>...</STYLE>塊對象。 示例如下:
<html>
<head>
<title>文檔標題</title>
<style type="text/css">
<!--
body {font: 10pt "Arial"}
h1 {font: 15pt/17pt "Arial"; font-weight: bold; color: maroon;}
h2 {font: 13pt/15pt "Arial"; font-weight: bold; color: blue;}
p {font: 10pt/12pt "Arial"; color: black;}
-->
</style>
</head>
請注意,這里將 style 對象的 type 屬性設置為"text/css",是允許不支持這類型的瀏覽器忽略樣式表單。
css語法基礎
selector {property: value;}
body {color: black;}
body
是指頁面主體部分,color
是控制文字顏色的屬性,black
是顏色的值,此例的效果是使頁面中的文字為黑色。如果屬性的值是多個單詞組成,必須在值上加引號,比如字體的名稱經常是幾個單詞的組合:
p {font-family: "sans serif";}
如果需要對一個選擇符指定多個屬性時,我們使用分號將所有的屬性和值分開:
p {text-align: center; color: red;}
為了使你定義的樣式表方便閱讀,你可以采用分行的書寫格式:
p
{ text-align: center;
color: black;
font-family: arial; }
2. 選擇符組
你可以把相同屬性和值的選擇符組合起來書寫,用逗號將選擇符分開,這樣可以減少樣式重復定義:
h1, h2, h3, h4, h5, h6 { color: green; }
p, table{ font-size: 9px; }
p { font-size: 9pt; }
table { font-size: 9pt; }
用類選擇符你能夠把相同的元素分類定義不同的樣式,定義類選擇符時,在自定類的名稱前面加一個點號。假如你想要兩個不同的段落,一個段落向右對齊,一個段落居中,你可以先定義兩個類:
p.right {text-align: right;}
p.center {text-align: center;}
<p class="right"> 這個段落向右對齊的
</p>
<p class="center">
這個段落是居中排列的
</p>
類選擇符還有一種用法,在選擇符中省略 HTML 標記名,這樣可以把幾個不同的元素定義成相同的樣式:
.center {text-align: center;}
這樣的類可以被應用到任何元素上。下面我們使h1元素(標題1)和p元素(段落)都歸為"center"類,這使兩個元素的樣式都跟隨".center"這個類選擇符:
<h1 class="center">
這個標題是居中排列的
</h1>
<p class="center">
這個段落也是居中排列的
</p>
4. ID選擇符
在HTML頁面中ID參數指定了某個單一元素,ID選擇符是用來對這個單一元素定義單獨的樣式。ID選擇符的應用和類選擇符類似,只要把CLASS換成ID即可。將上例中類用ID替代:
<p id="intro">
這個段落向右對齊
</p>
#
號。和類選擇符相同,定義ID選擇符的屬性也有兩種方法。下面這個例子,ID屬性將匹配所有id="intro"
的元素:#intro
{font-size:110%;
font-weight:bold;
color:#0000ff;
background-color:transparent; }
下面這個例子,ID屬性只匹配
id="intro"
的段落元素:p#intro
{font-size:110%;
font-weight:bold;
color:#0000ff;
background-color:transparent; }
可以單獨對某種元素包含關系定義的樣式表,元素1里包含元素2,這種方式只對在元素1里的元素2定義,對單獨的元素1或元素2無定義,例如:
table a
{font-size: 12px;}
6. 樣式表的層疊性
層疊性就是繼承性,樣式表的繼承規則是外部的元素樣式會保留下來繼承給這個元素所包含的其他元素。事實上,所有在元素中嵌套的元素都會繼承外層元素指定的屬性值,有時會把很多層嵌套的樣式疊加在一起,除非另外更改。例如在DIV標記中嵌套P標記:
div { color: red; font-size:9pt;}
……
<div>
<p>
這個段落的文字為紅色9號字
</p>
</div>
注意:有些情況下內部選擇符不繼承周圍選擇符的值,但理論上這些都是特殊的。例如,上邊界屬性值是不會繼承的,直覺上,一個段落不會同文檔BODY一樣的上邊界值。
另外,當樣式表繼承遇到沖突時,總是以最后定義的樣式為準。如果上例中定義了P的顏色:
div { color: red; font-size:9pt;}
p {color: blue;}
……
<div>
<p>
這個段落的文字為藍色9號字
</p>
</div>
不同的選擇符定義相同的元素時,要考慮到不同的選擇符之間的優先級。ID選擇符,類選擇符和HTML標記選擇符,因為 ID 選擇符是最后加上元素上的,所以優先級最高,其次是類選擇符。如果想超越這三者之間的關系,可以用
!important
提升樣式表的優先權,例如:p { color: #FF0000!important; }
.blue { color: #0000FF;}
#id1 { color: #FFFF00;}
!important
申明的HTML標記選擇符樣式為紅色文字。如果去掉!important
,則依照優先權最高的ID選擇符為黃色文字。7. 注釋
你可以在CSS中插入注釋來說明你代碼的意思,注釋有利于你或別人以后編輯和更改代碼時理解代碼的含義。在瀏覽器中,注釋是不顯示的。CSS注釋以
/*
開頭,以*/
結尾,如下:/* 定義段落樣式表 */
p
{
text-align: center; /* 文本居中排列 */
color: black; /* 文字為黑色 */
font-family: arial; /* 字體為arial */
}
div+css是什么
div是什么
2、在HTML中DIV標簽我們用的最多,具有代表性
3、div配合css類,布局出網頁
div語法
<div class="divcss5">內容</div>
<div id="divcss5">內容</div>
為什么用div+css取代〈table〉
但是在如今 web 前端邏輯越來越復雜,用戶體驗要求越來越高的情況下,對這三者的解耦是必須的。此時再用 table 拿來做布局就不太合適了,因為 table 標簽的語言根本不是用來做布局的,而是用來傳遞數據的。而 div+css 是符合解耦這一思想的,div 用來控制布局,css 用來控制樣式。好處從小了說是整個頁面的代碼組織結構更合理,耦合度更低,從大了說是更利于前端開發的深度分工和復雜合作。
1、div+css 相對于 table 更為靈活,用 table 布局,代碼臃腫。
2、語義性問題。從語義上來說,table 應該只是表格數據的容器,不應該是布局的工具。
3、樣式渲染問題。table 布局要等內容全部加載完畢后才渲染樣式,如果用戶網速不好,這樣用戶體驗會很差。