CSS 基礎

CSS基礎


本文包括

  1. CSS基礎知識
  2. 選擇器(重要?。。。?/li>
  3. 繼承、特殊性、層疊、重要性
  4. CSS格式化排版
  5. 單位和值
  6. 盒模型
  7. 浮動
  8. 相對定位與絕對定位
  9. 布局初探

CSS基礎知識

認識CSS樣式

  1. CSS全稱為“層疊樣式表 (Cascading Style Sheets)”,它主要是用于定義HTML內(nèi)容在瀏覽器內(nèi)的顯示樣式,如文字大小、顏色、字體加粗等。
    如下列代碼:
    <head>
    <style type="text/css">
    p{
    font-size:20px;/設置文字字號/
    color:red;/設置文字顏色/
    font-weight:bold;/設置字體加粗/
    }
    </style>
    ...
    </head>
  2. 使用CSS樣式的一個好處是通過定義某個樣式,可以讓不同網(wǎng)頁位置的文字有著統(tǒng)一的字體、字號或者顏色等。
  3. 如果你這個css樣式是定義在某個html網(wǎng)頁中的話,那其他網(wǎng)頁是無法使用的,但可以把
    把css代碼寫一個單獨的外部文件中,這個css樣式文件以“.css”為擴展名,在<head>內(nèi)(不是在<style>標簽內(nèi))使用<link>標簽將css樣式文件鏈接到HTML文件內(nèi)。在head標簽下添加如下代碼
    <head>
    <link href="base.css" rel="stylesheet" type="text/css" />
    ...
    </head>

CSS代碼語法

  1. css 樣式由選擇符和聲明組成,而聲明又由屬性和值組成,如下圖所示:


  2. 選擇符:又稱選擇器,指明網(wǎng)頁中要應用樣式規(guī)則的元素,如本例中是網(wǎng)頁中所有的段(p)的文字將變成藍色,而其他的元素(如ol)不會受到影響。
  3. 聲明:在英文大括號“{}”中的的就是聲明,屬性和值之間用英文冒號“:”分隔。當有多條聲明時,中間可以英文分號“;”分隔,如下所示:
    p{font-size:12px;color:red;}
    注意:
    1、最后一條聲明可以沒有分號,但是為了以后修改方便,一般也加上分號。
    2、為了使用樣式更加容易閱讀,可以將每條代碼寫在一個新行內(nèi),如下所示:
    p{
    font-size:12px;
    color:red;
    }

CSS注釋代碼

  1. Html中使用``。
  2. 就像在Html的注釋一樣,在CSS中也有注釋語句:用/*注釋語句*/來標明。
  3. 快捷鍵:Ctrl+/
  4. 例子:
    <style type="text/css">
    p{
    font-size:12px;/設置文字字號為12px/
    color:red;/設置文字顏色為紅色/
    }
    </style>

三種樣式

  1. 內(nèi)聯(lián)式適用情況:局部特殊化

  2. 嵌入式適用情況:統(tǒng)一標簽樣式格式

  3. 外聯(lián)式適用情況:方便代碼重用和管理

  4. 優(yōu)先級:就近原則(離被設置元素越近優(yōu)先級別越高)。
    但注意上面所總結(jié)的優(yōu)先級是有一個前提:內(nèi)聯(lián)式、嵌入式、外部式樣式表中css樣式是在的相同權(quán)值的情況下,

內(nèi)聯(lián)式css樣式,直接寫在現(xiàn)有的HTML標簽中

  1. 內(nèi)聯(lián)式css樣式表就是把css代碼直接寫在現(xiàn)有的HTML標簽中,如下面代碼:
    <p style="color:red">這里文字是紅色。</p>
  2. 注意要寫在元素的開始標簽里,下面這種寫法是錯誤的:
    <p>這里文字是紅色。</p style="color:red">
  3. 并且css樣式代碼要寫在style=""雙引號中,如果有多條css樣式代碼設置可以寫在一起,中間用分號隔開。如下代碼:
    <p style="color:red;font-size:12px">這里文字是紅色。</p>

嵌入式css樣式,寫在當前的文件中

  1. 現(xiàn)在有一任務,把右側(cè)編輯器中的“超酷的互聯(lián)網(wǎng)”、“服務及時貼心”、“有趣易學”這三個短詞文字字號修改為18px。如果用上節(jié)課我們學習的內(nèi)聯(lián)式css樣式的方法進行設置將是一件很頭疼的事情(為每一個<span>標簽加入sytle="font-size:18px"語句),本小節(jié)講解一種新的方法嵌入式css樣式來實現(xiàn)這個任務。
  2. 嵌入式css樣式,就是可以把css樣式代碼寫在<style type="text/css"></style>標簽之間。如下面代碼實現(xiàn)把三個<span>標簽中的文字設置為紅色:
    <style type="text/css">
    span{
    color:red;
    }
    </style>
  3. 嵌入式css樣式必須寫在<style></style>之間,并且一般情況下嵌入式css樣式寫在<head></head>之間。

外部式css樣式,寫在單獨的一個文件中

  1. 外部式css樣式(也可稱為外聯(lián)式)就是把css代碼寫一個單獨的外部文件中,這個css樣式文件以“.css”為擴展名,在<head>內(nèi)(不是在<style>標簽內(nèi))使用<link>標簽將css樣式文件鏈接到HTML文件內(nèi),如下面代碼:
    <link href="base.css" rel="stylesheet" type="text/css" />
  2. 注意:
    1、css樣式文件名稱以有意義的英文字母命名,如 main.css。
    2、rel="stylesheet" type="text/css" 是固定寫法不可修改。
    3、<link>標簽位置一般寫在<head>標簽之內(nèi)。

選擇器

  1. 每一條css樣式聲明(定義)由兩部分組成,形式如下:
    選擇器{
    樣式;
    }
  2. 在{}之前的部分就是“選擇器”,“選擇器”指明了{}中的“樣式”的作用對象,也就是“樣式”作用于網(wǎng)頁中的哪些元素。

選擇器種類

  • 標簽選擇器,標簽名{},作用于所有此標簽。

  • 類選擇器, .class{},在標簽內(nèi)定義class="",屬圖形結(jié)構(gòu)。

  • ID選擇器,#ID{}, 在標簽內(nèi)定義id="",有嚴格的一一對應關(guān)系。

  • 子選擇器, .span>li{},作用于父元素span類下一層的li標簽。

  • 包含選擇器,.span li{},作用于父元素span下所有l(wèi)i標簽。

  • 通用選擇器,*{},匹配所有html的標簽元素。

  • 偽類選擇符:它允許給html不存在的標簽(標簽的某種狀態(tài))設置樣式,比如說我們給html中的一個標簽元素的鼠標滑過的狀態(tài)來設置字體顏色。

  • 包含選擇器作用于該標簽下的子元素,不包含本身,標簽選擇器作用包含自己本身

標簽選擇器

  1. 標簽選擇器其實就是html代碼中的標簽。如右側(cè)代碼編輯器中的<html>、<body>、<h1>、<p>、<img>。例如下面代碼:
    <style type="text/css">
    p{
    font-size:12px;
    line-height:1.6em;
    }
    ...
    </style>
    上面的css樣式代碼的作用:為p標簽設置12px字號,行間距設置1.6em的樣式。

  2. px像素(Pixel)。相對長度單位。像素px是相對于顯示器屏幕分辨率而言的。(引自CSS2.0手冊)
    em是相對長度單位。相對于當前對象內(nèi)文本的字體尺寸。如當前對行內(nèi)文本的字體尺寸未被人為設置,則相對于瀏覽器的默認字體尺寸。(引自CSS2.0手冊)

類選擇器

  1. 類選擇器在css樣式編碼中是最常用到的,如右側(cè)代碼編輯器中的代碼:可以實現(xiàn)為“膽小如鼠”、“勇氣”字體設置為紅色。

  2. 語法:
    .類選器名稱{css樣式代碼;}

  3. 注意:
    1、英文圓點開頭
    2、其中類選器名稱可以任意起名(但不要起中文噢)

  4. 使用方法:
    第一步:使用合適的標簽把要修飾的內(nèi)容標記起來,如下:
    <span>膽小如鼠</span>
    第二步:使用class="類選擇器名稱"為標簽設置一個類,如下:
    <span class="stress">膽小如鼠</span>
    第三步:設置類選器css樣式,如下:
    .stress{color:red;}/類前面要加入一個英文圓點/

ID選擇器

在很多方面,ID選擇器都類似于類選擇符,但也有一些重要的區(qū)別:

  1. 為標簽設置id="ID名稱",而不是class="類名稱"。

  2. ID選擇符的前面是井號(#)號,而不是英文圓點(.)。

  3. 例子:
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>認識html標簽</title>
    <style type="text/css">
    #stress{
    color:red;
    }
    #setGreen{
    color:green;
    }
    </style>
    </head>
    <body>
    <h1>勇氣</h1>
    <p>三年級時,我還是一個<span id="stress">膽小如鼠</span>的小女孩,上課從來不敢回答老師提出的問題,生怕回答錯了老師會批評我。就一直沒有這個勇氣來回答老師提出的問題。學校舉辦的活動我也沒勇氣參加。</p>
    <p>到了三年級下學期時,我們班上了一節(jié)<span id="setGreen">公開課</span>,老師提出了一個很簡單的問題,班里很多同學都舉手了,甚至成績比我差很多的,也舉手了,還說著:"我來,我來。"我環(huán)顧了四周,就我沒有舉手。</p>

         </body>
     </html>
    
  4. 在同一個頁面內(nèi),不允許有相同名字的id對象出現(xiàn),但是允許相同名字的class。這樣,一般網(wǎng)站分為頭,體,腳部分,因為考慮到它們在同一個頁面只會出現(xiàn)一次,所以用id,其他的,比如說你定義了一個顏色為red的class,在同一個頁面也許要多次用到,就用class定義。另外,當頁面中用到js或者要動態(tài)調(diào)用對象的時候,要用到id,所以要根據(jù)自己的情況運用。自己的語言。
    但document的方法中有g(shù)etElementById()這個方法倒是只能用id的.

類和ID選擇器的區(qū)別

  1. 相同點:可以應用于任何元素
  2. 不同點:
    1. ID選擇器只能在文檔中使用一次。與類選擇器不同,在一個HTML文檔中,ID選擇器只能使用一次,而且僅一次。而類選擇器可以使用多次。如果單純的在CSS里使用相同ID多次是可以的!但如果頁面涉及到js,就不好了。因為js里獲取DOM是通過getElementById,而如果頁面出現(xiàn)同一個id幾次,這樣就獲取不到了。所以id要有唯一性。成熟網(wǎng)站里,你很少看到css里用id選擇器的,都是用class,id選擇器留給寫js的人用,這樣避免沖突。
      下面代碼是正確的:
      <span class="stress">膽小如鼠</span>
      <span class="stress">勇氣</span>
      而下面代碼是錯誤的:
      <span id="stress">膽小如鼠</span>
      <span id="stress">勇氣</span>
    2. 可以使用類選擇器詞列表方法為一個元素同時設置多個樣式。我們可以為一個元素同時設多個樣式,但只可以用類選擇器的方法實現(xiàn),ID選擇器是不可以的(不能使用 ID 詞列表)。
      • 下面的代碼是正確的(完整代碼見右側(cè)代碼編輯器)
        .stress{
        color:red;
        }
        .bigsize{
        font-size:25px;
        }
        <p>到了<span class="stress bigsize">三年級</span>下學期時,我們班上了一節(jié)公開課...</p>
        代碼的作用是為“三年級”三個文字設置文本顏色為紅色并且字號為25px。

      • 下面的代碼是不正確的(完整代碼見右側(cè)代碼編輯器)
        #stressid{
        color:red;
        }
        #bigsizeid{
        font-size:25px;
        }
        <p>到了<span id="stressid bigsizeid">三年級</span>下學期時,我們班上了一節(jié)公開課...</p>
        代碼不可以實現(xiàn)為“三年級”三個文字設置文本顏色為紅色并且字號為25px的作用。

交集選擇器

  • 一個標簽選擇器后邊跟一個類選擇器或者一個 ID 選擇器,中間不能有空格。它要求必
    須是屬于某一個標簽的,并且聲明了類選擇器或者 ID 選擇器。
  • 例如:
    div.mycolor{…} 類為 mycolor 的div標簽才會被選中,應用該樣式。
    div#mydiv{…} id 為 mydiv 的div標簽才會被選中,應用該樣式。

并集選擇器

  • 就是多個選擇器以逗號相連,只要滿足其中之一它都會被選中!
  • 我們上面學的選擇器都可以被寫入并集選擇器
    div,p,h1,div.mycolor,div#mydiv {…}

子選擇器

  1. 還有一個比較有用的選擇器子選擇器,即大于符號(>),用于選擇指定標簽元素的第一代子元素。代碼:
    .food>li{border:1px solid red;}
    這行代碼會使class名為food下的子元素li(水果、蔬菜)加入紅色實線邊框。

  2. 代碼
    <ul class="food">
    <li>水果
    <ul>
    <li>香蕉</li>
    <li>蘋果</li>
    <li>梨</li>
    </ul>
    </li>
    <li>蔬菜
    <ul>
    <li>白菜</li>
    <li>油菜</li>
    <li>卷心菜</li>
    </ul>
    </li>
    </ul>

  3. 樣式:
    border:1px solid red;
    相當于
    border-width:1px; //邊框?qū)挾?br> border-style:solid; //邊框風格
    border-color:red; //邊框顏色

包含(后代)選擇器

  1. 包含選擇器,即加入空格,用于選擇指定標簽元素下的后輩元素。如右側(cè)代碼編輯器中的代碼:
    .first span{color:red;}
    這行代碼會使第一段文字內(nèi)容中的“膽小如鼠”字體顏色變?yōu)榧t色。

  2. 請注意這個選擇器與子選擇器的區(qū)別,子選擇器(child selector)僅是指它的直接后代,或者你可以理解為作用于子元素的第一代后代。而后代選擇器是作用于<span style="color:red">所有子后代元素</span>。后代選擇器通過空格來進行選擇,而子選擇器是通過“>”進行選擇。

  3. 總結(jié):>作用于元素的第一代后代,空格作用于元素的所有后代。

通用選擇器

  • 通用選擇器是功能最強大的選擇器,它使用一個(*)號指定,它的作用是匹配html中所有標簽元素,如下使用下面代碼使用html中任意標簽元素字體顏色全部設置為紅色:
    * {color:red;}

偽類選擇符

  1. 更有趣的是偽類選擇符,為什么叫做偽類選擇符,它允許給html不存在的標簽(標簽的某種狀態(tài))設置樣式,比如說我們給html中一個標簽元素的鼠標滑過的狀態(tài)來設置字體顏色:
    a:hover{color:red;}

  2. 上面一行代碼就是為 a 標簽鼠標滑過的狀態(tài)設置字體顏色變紅。這樣就會使第一段文字內(nèi)容中的“膽小如鼠”文字加入鼠標滑過字體顏色變?yōu)榧t色特效。

  3. 關(guān)于偽選擇符:
    關(guān)于偽類選擇符,到目前為止,可以兼容所有瀏鑒器的“偽類選擇符”就是 a 標簽上使用 :hover 了(其實偽類選擇符還有很多,尤其是 css3 中,但是因為不能兼容所有瀏覽器,本教程只是講了這一種最常用的)。其實 :hover 可以放在任意的標簽上,比如說 p:hover,但是它們的兼容性也是很不好的,所以現(xiàn)在比較常用的還是 a:hover 的組合。

  4. 什么時候使用偽類選擇符
    當用戶和網(wǎng)站交互的時候一般使用偽類選擇器,,如“:hover”,":active"和":focus"。常用的偽類有:
    .demo a:link {color:gray;}/鏈接沒有被訪問時前景色為紅色/
    .demo a:visited{color:yellow;}/鏈接被訪問過后前景色為黃色/
    .demo a:hover{color:green;}/鼠標懸浮在鏈接上時前景色為綠色/
    .demo a:active{color:blue;}/鼠標點中激活鏈接那一下前景色為藍色/

分組選擇符

  • 當你想為html中多個標簽元素設置同一個樣式時,可以使用分組選擇符(,),如下代碼為右側(cè)代碼編輯器中的h1、span標簽同時設置字體顏色為紅色:
    h1,span{color:red;}
    它相當于下面兩行代碼:
    h1{color:red;}
    span{color:red;}

CSS繼承、特殊性、層疊、重要性

CSS繼承

  1. CSS的某些樣式是具有繼承性的,那么什么是繼承呢?繼承是一種規(guī)則,它允許樣式不僅應用于某個特定html標簽元素,而且應用于其后代。比如下面代碼:如某種顏色應用于p標簽,這個顏色設置不僅應用p標簽,還應用于p標簽中的所有子元素文本,這里子元素為span標簽。
    p{color:red;}
    <p>三年級時,我還是一個<span>膽小如鼠</span>的小女孩。</p>

  2. 可見右側(cè)結(jié)果窗口中p中的文本與span中的文本都設置為了紅色。但注意有一些css樣式是不具有繼承性的。如border:1px solid red;
    p{border:1px solid red;}
    <p>三年級時,我還是一個<span>膽小如鼠</span>的小女孩。</p>
    在上面例子中它代碼的作用只是給p標簽設置了邊框為1像素、紅色、實心邊框線,而對于子元素span是沒用起到作用的。

  3. 那么,哪些屬性是可以繼承的呢?css樣式表屬性可以繼承的有如下:
    *azimuth, border-collapse, border-spacing,
    caption-side, color, cursor, direction, elevation,
    empty-cells, font-family, font-size, font-style,
    font-variant, font-weight, font, letter-spacing,
    line-height, list-style-image, list-style-position,
    list-style-type, list-style, orphans, pitch-range,
    pitch, quotes, richness, speak-header, speaknumeral,
    speak-punctuation, speak, speechrate,
    stress, text-align, text-indent, texttransform,
    visibility, voice-family, volume, whitespace,
    widows, word-spacing *

  4. CSS樣式表繼承詳解

特殊性(specificity)/權(quán)值/優(yōu)先級

  1. 有的時候我們?yōu)橥粋€元素設置了不同的CSS樣式代碼,那么元素會啟用哪一個CSS樣式呢?我們來看一下面的代碼:
    p{color:red;}
    .first{color:green;}
    <p class="first">三年級時,我還是一個<span>膽小如鼠</span>的小女孩。</p>
    p和.first都匹配到了p這個標簽上,那么會顯示哪種顏色呢?green是正確的顏色,那么為什么呢?是因為瀏覽器是根據(jù)權(quán)值來判斷使用哪種css樣式的,權(quán)值高的就使用哪種css樣式。

  2. 下面是權(quán)值的規(guī)則:
    標簽的權(quán)值為1,類選擇符的權(quán)值為10,ID選擇符的權(quán)值最高為100。例如下面的代碼:
    p{color:red;} /權(quán)值為1/
    p span{color:green;} /權(quán)值為1+1=2/
    .warning{color:white;} /權(quán)值為10/
    p span.warning{color:purple;} /權(quán)值為1+1+10=12/
    #footer .note p{color:yellow;} /權(quán)值為100+10+1=111/
    4個等級的定義如下:

    1. 第一等:代表內(nèi)聯(lián)樣式,如: style=””,權(quán)值為1000。
    2. 第二等:代表ID選擇器,如:#content,權(quán)值為100。
    3. 第三等:代表類,偽類和屬性選擇器,如.content,權(quán)值為10。
    4. 第四等:代表類型選擇器和偽元素選擇器,如div p,權(quán)值為1。
    5. <span style="color:red">注意</span>:通用選擇器(*),子選擇器(>)和相鄰同胞選擇器(+)并不在這四個等級中,所以他們的權(quán)值都為0。
  3. <span style="color:red">注意</span>:還有一個權(quán)值比較特殊--繼承也有權(quán)值但很低,有的文獻提出它只有0.1,所以可以理解為繼承的權(quán)值最低。

  4. 最后一個影響特殊性的聲明:!important

    例:
    h1{ color:red!important;}
    !important被稱為重要聲明,被標記為!important的屬性其特殊性最高,當出現(xiàn)有沖突的重要聲明時,同樣安照出現(xiàn)的先后順序決定最后的顯示。

    例:
    h1{color:red!important;}
    h1{color:blue!important;}
    最后h1文字為藍色

    !important要寫在分號的前面,每次針對一個屬性(即想將樣式中的多個屬性都提高權(quán)限,就要多次添加)。
    p{color:red!important;font-size:14px!important}

    這里注意當網(wǎng)頁制作者不設置css樣式時,瀏覽器會按照自己的一套樣式來顯示網(wǎng)頁。并且用戶也可以在瀏覽器中設置自己習慣的樣式,比如有的用戶習慣把字號設置為大一些,使其查看網(wǎng)頁的文本更加清楚。這時注意樣式優(yōu)先級為:瀏覽器默認的樣式 < 網(wǎng)頁制作者樣式 < 用戶自己設置的樣式,但記住!important優(yōu)先級樣式是個例外,權(quán)值高于用戶自己設置的樣式。

  5. 例子:
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>特殊性</title>
    <style type="text/css">
    p{color:red;}
    .first{color:green;}/因為權(quán)值高顯示為綠色/

         span{color:pink;}/*設置為粉色*/
         p span{color:purple};
    
         </style>
     </head>
     <body>
         <h1>勇氣</h1>
         <p class="first">三年級時,我還是一個<span>膽小如鼠</span>的小女孩,上課從來不敢回答老師提出的問題,生怕回答錯了老師會批評我。就一直沒有這個勇氣來回答老師提出的問題。學校舉辦的活動我也沒勇氣參加。</p>
         <p id="second">到了三年級下學期時,我們班上了一節(jié)公開課,老師提出了一個很簡單的問題,班里很多同學都舉手了,甚至成績比我差很多的,也舉手了,還說著:"我來,我來。"我環(huán)顧了四周,就我沒有舉手。</p>
     </body>
     </html>
    

    結(jié)果:
    <span style="color:green">三年級時,我還是一個<span style="color:purple">膽小如鼠</span>的小女孩,上課從來不敢回答老師提出的問題,生怕回答錯了老師會批評我。就一直沒有這個勇氣來回答老師提出的問題。學校舉辦的活動我也沒勇氣參加。</span>

    解釋:
    第七行 p{color:red;} 對于p來說,這條語句的權(quán)值為 1 ;而對于p中的span膽小如鼠來說,因為繼承性,這條語句對于膽小如鼠來說只有 0.1 的權(quán)值。
    第八行 .first{color:green;} 對于first來說,這條語句的權(quán)值為 10 ;而對于first中的span膽小如鼠來說,因為繼承性,這條語句對于膽小如鼠來說只有 0.1 的權(quán)值。
    第十行 span{color:pink;} 對于span膽小如鼠來說,這條語句的權(quán)值為 1 。
    所以對于整段話來說(除了膽小如鼠外),執(zhí)行第八行語句(即段落顯示綠色),因為第八行具有的權(quán)值最高為10>第七行的權(quán)值1,;而對于膽小如鼠來說,執(zhí)行第十行語句(即顯示粉色),因為第十行語句具有的權(quán)值為1>第七行的權(quán)值0.1(第八行的權(quán)值)。
    第十一行 p span{color:purple;} 對于p和span來說,這條語句的權(quán)值為1+1=2。那么現(xiàn)在對于p來說,就執(zhí)行第十一行語句(即顯示紫色)(第十一行權(quán)值為2>第十行的權(quán)值1)。

  6. 相關(guān)閱讀:
    CSS選擇器的權(quán)重與優(yōu)先規(guī)則
    玩轉(zhuǎn)CSS選擇器(一)之使用方法

層疊

  1. 我們來思考一個問題:如果在html文件中對于同一個元素可以有多個css樣式存在并且這多個css樣式具有相同權(quán)重值怎么辦?好,這一小節(jié)中的層疊幫你解決這個問題。

  2. 層疊就是在html文件中對于同一個元素可以有多個css樣式存在,當有相同權(quán)重的樣式存在時,會根據(jù)這些css樣式的前后順序來決定,處于最后面的css樣式會被應用。

  3. 如下面代碼:
    p{color:red;}
    p{color:green;}
    <p class="first">三年級時,我還是一個<span>膽小如鼠</span>的小女孩。</p>
    最后 p 中的文本會設置為green,這個層疊很好理解,理解為后面的樣式會覆蓋前面的樣式。

CSS格式化排版

字體

  1. 我們可以使用css樣式為網(wǎng)頁中的文字設置字體、字號、顏色等樣式屬性。下面我們來看一個例子,下面代碼實現(xiàn):為網(wǎng)頁中的文字設置字體為宋體。
    body{font-family:"宋體";}

  2. 這里注意不要設置不常用的字體,因為如果用戶本地電腦上如果沒有安裝你設置的字體,就會顯示瀏覽器默認的字體。(因為用戶是否可以看到你設置的字體樣式取決于用戶本地電腦上是否安裝你設置的字體。)

  3. 現(xiàn)在一般網(wǎng)頁喜歡設置“微軟雅黑”,如下代碼:
    body{font-family:"Microsoft Yahei";}

    body{font-family:"微軟雅黑";}

注意:第一種方法比第二種方法兼容性更好一些。
因為這種字體即美觀又可以在客戶端安全的顯示出來(用戶本地一般都是默認安裝的)。

文字排版

  • font-family:設置字體;多個字體用逗號隔開
    font-family:"Times New Roman",Georgia,Serif;

  • font-size:字體大小;
    可以使用下面代碼設置網(wǎng)頁中文字的字號為12像素,并把字體顏色設置為#666(灰色):
    body{font-size:12px;color:#666}

    注意:這里font-size一定要帶單位px或者em或者%!!!

  • font-weight:bold:設置為粗體樣式;

  • font-style:italic:設置為斜體樣式;
    normal(標準) italic(斜體) oblique(傾斜)

  • text-decoration:underline:文字設置下劃線;

  • text-decoration:line-through:刪除線;
    h1{text-decoration:overline}
    其他值
    underline 定義文本下的一條線。
    overline 定義文本上的一條線。
    line-through 定義穿過文本下的一條線。
    blink 定義閃爍的文本。(經(jīng)本人測試失效???)

  • 設置多種字體屬性
    語法:{font:字體風格 字體粗細字體大小 字體類型;}
    span{font:oblique bold 12px "楷體";}

  • 鼠標形狀
    語法:標簽選擇器{cursor:cursor屬性;}(鼠標形狀 )
    css:
    span{cursor:pointer;}
    html:
    <span>...(內(nèi)容)...</span>
    cursor屬性:
    cursor(鼠標形狀) default(默認) pointer(超鏈接指針) wait(忙) help(幫助)
    text(指示文本) crosshair(十字狀)

段落排版

  • text-indent:2em:縮進;中文文字中的段前習慣空兩個文字的空白。
    注意:2em的意思就是文字的2倍大小。 這里可帶單位,也可不帶單位,當不帶單位時,默認單位為em?。?/p>

    在中文里,文字輸入分為全角和半角,
    (中文輸入法里,按shift+空格 切換全角半角狀態(tài))
    全角,段落中所有字符(包括文字和其它符號:逗號、頓號、句號等),
    都是占用一個字的位置,這樣排版的時候,上下文字能對齊;
    半角,段落中所有除文字外的符號,只占用半個字的位置;
    打字時,默認是半角,按空格最明顯,只有前一個字的一半寬度;
    切換全角后,空格剛好是一個字寬度(段落中最明顯,上下對齊)
    em 就是一個全角占位符;

  • line-height:2em:行間距(行高);
    設置高度與行高一樣,可以實現(xiàn)垂直居中效果!

    注意:必須帶單位px或em或者%?。。?/p>

  • word-spacing:50px:英文單詞間距;(僅包括英文)

  • letter-spacing:20px:字符間距;(包括中文和英文)

    1. 在中英文混排的文章中,要注意的一點是,中文對word-spacing屬性是沒有反應的,而使用letter-spacing調(diào)整中文字間距的時候,會同時拉開英文字母的距離,使得在中文排版頁面中的英文顯得不美觀;
      (經(jīng)本人測試,中文字之間加空格之后,會對word-spacing產(chǎn)生反應?。?/li>
    2. 中英文混排時,可以對不同的語言添加<span>標簽,分開調(diào)整;
  • text-align:屬性規(guī)定元素中的文本的水平對齊方式;
    text-align:center/right/left(默認)/justify(兩端對齊)

    例子:
    <div>[站外圖片上傳中……(3)]</div>
    此時在嵌入式樣式中應這樣寫:
    div{
    text-align:xxx;
    }

    解釋:

    1. 該屬性通過指定行框與哪個點對齊,從而設置塊級元素內(nèi)文本的水平對齊方式。其目的是設置文本或img標簽等一些內(nèi)聯(lián)對象(或與之類似的元素)的居中。
    2. text-align可以對一個塊使用,對這個塊里的所有內(nèi)容都會生效,不管塊里包含的是圖片還是文字。然而如果一個塊內(nèi)包含著子元素的塊,那么對這個子元素所占的空間并不生效,只對塊內(nèi)所有的文字和圖片生效而已。

    擴展閱讀:
    margin:0 auto 與 text-align:center 的區(qū)別

  • vertical-align:文本的垂直對齊方式;
    middle/top/bottom

  • float:浮動方式(元素會緊貼到父元素的左邊/右邊/默認,注意很有可能擠壓在浮動元素之前的元素)
    left/right/none(默認)

  • border
    設置左/右/上/下邊框:
    border-left/right/top/bottom: 1px solid red;
    實線:solid
    虛線:dashed

  • border-radius
    設置邊框的邊角為圓形
    border-radius:XXpx;

  • 元素性質(zhì)相互轉(zhuǎn)化:
    display:block; (變成塊級元素)
    display:inline; (變成內(nèi)聯(lián)元素)
    display:inline-block; (仍以塊級元素展示,但是并不獨占一行)
    display:none;(在頁面不顯示?。?/p>

后代元素長度大于祖輩元素的大小時候的處理方法:

overflow:visible
可能的值:
visible:默認,內(nèi)容不會被修剪,會呈現(xiàn)在元素框之外。
hidden:超出的內(nèi)容會被修剪掉,直接不現(xiàn)實。
scroll:超出內(nèi)容會被修剪,但是瀏覽器會顯示滾動條以便查看其余的內(nèi)容。
auto:如果內(nèi)容被超出,則瀏覽器會顯示滾動條以便查看其余的內(nèi)容。
inherit:規(guī)定應該從父元素繼承 overflow 屬性的值。

背景

  • background-color
    元素的背景顏色默認為 transparent
    background-color 不會被后代繼承。

  • background-image
    使用 background-image 屬性默認值為 none 表示背景上沒有放置任何圖像
    如果需要設置一個背景圖像,必須為這個屬性設置一個 url 值
    background-image: url(bg.gif);
    注意圖片的位置引入方法!

  • background-repeat
    使用background-img時,背景圖片重復的問題
    使用 background-repeat 來解決,可以的值:repeat-x(只在x軸),repeat-y,no-repeat

  • background-position
    前提:背景圖片一定不重復(no-repeat)

    1. 可以使用一些關(guān)鍵字:top、bottom、left、right 和 center 通常,這些關(guān)鍵字會成對出現(xiàn)。注意:第一個值是y軸(垂直方向),第二個值是x軸(水平方向)
      top left
      top center
      top right
      center left
      center center
      center right
      bottom left
      bottom center
      bottom right
    2. 也可以用百分比:background:50% 50%;第一個表示水平方向,第二個表示垂直方向
    3. 當然更可以用數(shù)值,以 px 單位:background:40px 10px;第一個表示水平第二個表示垂直
    4. 也可以混用
  • background-attachment
    背景關(guān)聯(lián):background-attachment:fixed
    用滾動條滾動時,背景圖片不變

  • 總結(jié)寫法
    background: #00FF00 url(bg.gif) no-repeat fixed center left;

單位和值

顏色值

在網(wǎng)頁中的顏色設置是非常重要,有字體顏色(color)、背景顏色(background-color)、邊框顏色(border)等,設置顏色的方法也有很多種:

  1. 英文命令顏色
    前面幾個小節(jié)中經(jīng)常用到的就是這種設置方法:
    p{color:red;}
  2. RGB顏色
    這個與 photoshop 中的 RGB 顏色是一致的,由 R(red)、G(green)、B(blue) 三種顏色的比例來配色。
    p{color:rgb(133,45,200);}
    每一項的值可以是 0~255 之間的整數(shù),也可以是 0%~100% 的百分數(shù)。如:
    p{color:rgb(20%,33%,25%);}

    rgb(20%,33%,25%)=rgb(20%255,33%255,25%*255)
  3. 十六進制顏色
    這種顏色設置方法是現(xiàn)在比較普遍使用的方法,其原理其實也是 RGB 設置,但是其每一項的值由 0-255 變成了十六進制 00-ff。
    p{color:#00ffff;}
  4. 配色表


長度值

長度單位總結(jié)一下,目前比較常用到px(像素)、em、% 百分比,要注意其實這三種單位都是相對單位。

  1. 像素
    像素為什么是相對單位呢?因為像素指的是顯示器上的小點(CSS規(guī)范中假設“90像素=1英寸”)。實際情況是瀏覽器會使用顯示器的實際像素值有關(guān),在目前大多數(shù)的設計者都傾向于使用像素(px)作為單位。

  2. em
    就是本元素給定字體的 font-size 值,如果元素的 font-size 為 14px ,那么 1em = 14px;如果 font-size 為 18px,那么 1em = 18px。如下代碼:
    p{font-size:12px;text-indent:2em;}
    上面代碼就是可以實現(xiàn)段落首行縮進 24px(也就是兩個字體大小的距離)。
    <span style="color:red">下面注意一個特殊情況:</span>
    當給 font-size 設置單位為 em 時,此時計算的標準以父元素p的 font-size 為基礎。如下代碼:
    html:
    <p>以這個<span>例子</span>為例。</p>
    css:
    p{font-size:14px}
    span{font-size:0.8em;}
    結(jié)果 span 中的字體“例子”字體大小就為 11.2px(14 * 0.8 = 11.2px)。

  3. 百分比
    p{font-size:12px;line-height:130%}
    設置行高(行間距)為字體的130%(12 * 1.3 = 15.6px)。

盒模型

  • CSS 盒模型 (Box Model) 規(guī)定了元素框處理元素內(nèi)容、內(nèi)邊距、邊框和
    的方式,頁面中的所有標記都可以看成是一個盒子,盒模型是我們對網(wǎng)頁
    行定位的基礎,而定位是我們對網(wǎng)頁元素進行位置固定的重點知識!

  • 內(nèi)邊距:邊框和內(nèi)容區(qū)之間的距離,通過 padding 屬性設置

  • 內(nèi)邊距設置方法:
    padding-top:10px;
    padding-right:10px;
    padding-bttom:10px;
    padding-left:10px;

    • 簡寫:
      padding:上 右 左 下;
      padding:10px 20px 40px 30px;
  • 外邊距:元素邊框的外圍空白區(qū)域是外邊距,通過 margin 屬性設置

  • 外邊距設置方法:margin:;用法同上!

  • 一般來說,把各個元素的內(nèi)邊距和外邊距

浮動

  • 因為 div 元素是塊級元素,獨占一行的。如何在一行顯示多個 div 元素?顯然默認的標準流已經(jīng)無法滿足需求,這就要用到浮動。
  • 浮動可以理解為讓某個 div元素(或者其他塊級元素)脫離標準流,漂浮在標準流之上。
  • 假設div2設置浮動,那么它將脫離標準流,但 div1、div3、div4 仍然在標
    準流當中,所以 div3 會自動向上移動,占據(jù) div2 的位置,重新組成一個流。
  • 浮動的設置方法:
    float:left;
    float:right;
  • 讓標準流中的元素不受到浮動的影響
    clear:both;
    none:默認值。允許兩邊都可以有浮動對象
    left:不允許左邊有浮動對象
    right:不允許右邊有浮動對象
    both:不允許有浮動對象
  • 如果連續(xù)多個元素設置浮動呢?
    結(jié)論:被設置浮動的元素會組成一個流,并且會橫著緊挨著排隊,直到父元素的
    寬度不夠才會換一行排列。

相對定位與絕對定位

  1. 相對定位

    • 元素相對于原來的位置(也就是不加相對定位時,應該位于的位置)
    • 語法:
      div{
      position:relative;
      left:XXpx;
      right:XXpx;
      top:XXpx;
      bottom:XXpx;
      }
    • 為元素設置相對定位之后,元素依然會占據(jù)原來的空間,依然在標準流中!
    • 設置了left就不要設置right,設置了top就不要設置值bottom,這是矛盾的!
  2. 絕對定位

    • position:absolute;
      left:;
      right:;
      top:;
      bottom:;
    • 為元素設置絕對定位之后,元素不會占據(jù)原來的空間,脫離了原來的隊伍
    • 為元素設置了左右之后,元素就會脫離水平方向的標準流,為元素設置了上下之后,元素就會脫離豎直方向的標準流;脫離之后,會根據(jù)父元素的位置來確定當前元素的位置。
  3. 固定定位

    • position:fixed;
      left:;
      right:;
      top:;
      bottom:;
    • 相對于瀏覽器的窗口進行定位,不會隨著頁面的滾動條而動!
  4. 重疊元素的堆疊順序設置
    使用 z-index:;對設置了相對或絕對或固定定位的元素進行堆疊順序的設置,設置的數(shù)值越
    大即堆疊在越上層,該屬性可以是負值。

布局初探

  • 布局是我們書寫整個網(wǎng)頁的基本,就是把整個頁面的框架先打好,例如我們現(xiàn)實生活中房子
    裝潢的時候就有布局的概念,我們網(wǎng)頁也是的,一個網(wǎng)頁可以看成是由幾個不同,這些組成部分我們可以使用 div 容器去存放他們(這也是 div 叫做容器的原因),布局有多種方式,這節(jié)課我們重點講解下最常用的布局方式,固定浮動布局!

  • 固定浮動布局
    固定浮動布局即是用固定的值將元素的長度設置為固定不變, 然后配合浮動的技術(shù)實現(xiàn)整個頁面的一個布局。
    網(wǎng)頁的主要內(nèi)容一般都是在我們?yōu)g覽器的中間位置展示的, 固定浮動布局會將中間的內(nèi)
    容整體長度使用固定的值定死, 因為是固定死的所以中間主要內(nèi)容占用瀏覽器的長度空間是有講究的,這個需要跟我們的用戶的屏幕分辨率對應起來,不要超過大多數(shù)的人屏幕分辨率的長度。(一般設置為1000px)

  • 塊級元素怎么相對于父元素居中?
    元素需要設置長度,元素左右的外邊距設置為 auto 即可!

  • 元素都可以看成是一個盒子,這些盒子很多都有一個自己默認的內(nèi)邊距或者外
    邊距,并且每個瀏覽器默認的距離還有可能不太一樣,這樣對于我們頁面布局或者具體
    的細節(jié)的定位產(chǎn)生影響,那么我們應該怎么辦?
    上下外邊距為0,左右外邊距自動居中。
    margin:0 auto;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,748評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,165評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,595評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,633評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,435評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,943評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,035評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,175評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,713評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,599評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,788評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,303評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,034評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,412評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,664評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,408評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,747評論 2 370

推薦閱讀更多精彩內(nèi)容

  • 第6章 開始學習CSS,為網(wǎng)頁添加樣式 1、認識CSS樣式CSS全稱為“層疊樣式表 (Cascading Styl...
    夏沫xx閱讀 1,068評論 1 11
  • 一.CSS描述 CSS全稱為“層疊樣式表(Cascading Style Sheets)”,它主要是用于定義HTM...
    snowy_sunny閱讀 1,088評論 0 4
  • CSS格式化排版 1、字體 我們可以使用css樣式為網(wǎng)頁中的文字設置字體、字號、顏色等樣式屬性。下面我們來看一個例...
    張文靖同學閱讀 1,297評論 0 3
  • 關(guān)于英語學習,個人感覺,過級還是有必要的,比如過了六級,單詞量就會大多很,當年過六級表面上很輕松,大二就搞定了,但...
    玩哲閱讀 3,840評論 3 64
  • 最艱難的事情不是攀向下一座高峰,而是走下腳下這座高峰且毫無顧慮,即便是攀上下一座高峰的幾率高達90%,但...
    泊泊君子閱讀 207評論 0 0