Web前端基礎(4):CSS(一)

1. CSS介紹

如今的互聯網前端分三層:css

HTML:超文本標記語言。從語義的角度描述頁面結構。html

CSS:層疊樣式表。從審美的角度負責頁面樣式。前端

JS:JavaScript 。從交互的角度描述頁面行爲瀏覽器

CSS:Cascading Style Sheet,層疊樣式表。CSS的做用就是給HTML頁面標籤添加各類樣式,定義網頁的顯示效果。簡單一句話:CSS將網頁內容和顯示樣式進行分離,提升了顯示功能。網絡

接下來咱們要講一下爲何要使用CSS。前端工程師

1.1 HTML的缺陷

不可以適應多種設備佈局

要求瀏覽器必須智能化足夠龐大字體

數據和顯示沒有分開網站

功能不夠強大url

1.2 CSS優勢

使數據和顯示分開

下降網絡流量

使整個網站視覺效果一致

使開發效率提升了(耦合性下降,一我的負責寫html,一我的負責寫css)

好比說,有一個樣式須要在一百個頁面上顯示,若是是html來實現,那要寫一百遍,如今有了css,只要寫一遍。如今,html只提供數據和一些控件,徹底交給css提供各類各樣的樣式。

2. CSS的引入方式

2.1 行內樣式

<div>
    <p style="color: green">我是一個段落</p>
</div>

2.2 內接樣式

<style type="text/css">
    /*寫咱們的css代碼*/
        
    span{
    color: yellow;
    }

</style>

2.3 外接樣式-連接式

<link rel="stylesheet" href="./index.css">

2.4 外接樣式-導入式

<style type="text/css">
        @import url('./index.css');
</style> 

3. CSS選擇器

3.1 基本選擇器

標籤選擇器

類選擇器

id選擇器

3.1.1 標籤選擇器(標籤名)

標籤選擇器能夠選中全部的標籤元素,好比div,ul,li ,p等等,無論標籤藏的多深,都能選中,選中的是全部的,而不是某一個,因此說 "共性" 而不是 」特性「。

body{
    color:gray;
    font-size: 12px;
}
/*標籤選擇器*/
p{
    color: red;
font-size: 20px;
}
span{
    color: yellow;
}

3.1.2 類選擇器(.)

所謂類:就是class . class與id很是類似,任何的標籤均可以加類,可是類是能夠重複,屬於歸類的概念。同一個標籤中能夠攜帶多個類,用空格隔開。

類的使用,可以決定前端工程師的css水平到底有多牛逼?在這裏必定要有」公共類「的概念。

.lv{
     color: green;
 
 }
 .big{
     font-size: 40px;
 }
 .line{
    text-decoration: underline;

  }

html:

<!-- 公共類    共有的屬性 -->
     <div>
         <p class="lv big">段落1</p>
         <p class="lv line">段落2</p>
         <p class="line big">段落3</p>
</div>

3.1.3 id選擇器(#)

同一個頁面中id不能重複。

任何的標籤均可以設置id ,id命名規範 要以字母 能夠有數字 下劃線 - 大小寫嚴格區分 aa和AA是兩個不同的屬性值。

#box{
    background:green;
}
            
#s1{
    color: red;
}

#s2{
    font-size: 30px;
}

html:

<body>
    <div id="box">娃哈哈</div>
    <div id="s1">爽歪歪</div>
    <div id="s2">QQ星</div>
</body>

3.2 高級選擇器

後代選擇器

子代選擇器

並集選擇器(組合選擇器)

交集選擇器

3.2.1 後代選擇器

使用 空格 表示後代選擇器。顧名思義,父元素的後代(包括兒子,孫子,重孫子)。

.container p{
    color: red;        
}
.container .item p{
    color: yellow;
}

3.2.2 子代選擇器

使用 > 表示子代選擇器。好比div>p,僅僅表示的是當前div元素選中的子代(不包含孫子....)元素p。

.container>p{
     color: yellowgreen;
}

3.2.3 並集選擇器

多個選擇器之間使用 逗號 隔開。表示選中的頁面中的多個標籤。一些共性的元素,可使用並集選擇器。

/*並集選擇器*/
h3,a{
    color: #008000;
    text-decoration: none;
                
}

3.2.4 交集選擇器

使用 表示交集選擇器。第一個標籤必須是標籤選擇器,第二個標籤必須是類選擇器 語法:div.active

好比有一個<h4 class='active'></h4>這樣的標籤。那麼它表示二者選中以後元素共有的特性。

h4{
    width: 100px;
    font-size: 14px;
}
.active{
    color: red;
    text-decoration: underline;
}
/* 交集選擇器 */
h4.active{
    background: #00BFFF;
}

3.3 其餘選擇器

僞類選擇器

僞標籤選擇器

屬性選擇器

3.3.1 僞類選擇器

僞類選擇器通常會用在超連接a標籤中,使用a標籤的僞類選擇器。

/*link表示沒有被訪問的a標籤的樣式*/
.box ul li.item1 a:link{
            
    color: #666;
}
/*visited表示訪問事後的a標籤的樣式*/
.box ul li.item2 a:visited{
            
    color: yellow;
}
/*hover表示鼠標懸停時a標籤的樣式*/
.box ul li.item3 a:hover{
            
    color: green;
}
/*active表示鼠標摁住的時候a標籤的樣式*/
.box ul li.item4 a:active{
            
    color: yellowgreen;
}

3.3.2 僞標籤選擇器

/*設置第一個首字母的樣式*/
p:first-letter{
    color: red;
    font-size: 30px;

}
        
/* 在....以前 添加內容   這個屬性使用不是很頻繁 瞭解  使用此僞元素選擇器必定要結合content屬性*/
p:before{
    content:'alex';
}
             
/*在....以後 添加內容,使用很是頻繁 一般與我們後面要講到佈局 有很大的關聯(清除浮動)*/
p:after{
    content:'&';
    color: red;
    font-size: 40px;
}

3.3.3 屬性選擇器

屬性選擇器,字面意思就是根據標籤中的屬性,選中當前的標籤。

/*根據for屬性查找,找到全部又for屬性的,設置字體顏色爲紅色*/
[for]{
    color: red;
}
            
/*找到for屬性的值等於username的元素 字體顏色設爲黃色*/
[for='username']{
    color: yellow;
}
            
/*以....開頭^ */ 
[for^='user']{
    color: #008000;
}
            
/*以....結尾$ */
[for$='vvip']{
    color: red;
}
            
/*包含某元素的標籤*/
[for*="vip"]{
    color: #00BFFF;
}
            
/*指定標籤的for屬性
   其中for屬性的值是以空格隔開的值列表,
   user1是值列表中的一個獨立值*/
label[for~='user1']{
    color: red;
}
            
input[type='text']{
    background: red;
}

3.4 選擇器的權重

有些時候咱們可能會給同一個標籤設置多個樣式,遇到了重疊項的設置又該聽誰的呢?這裏就要用到選擇器的權重。

行內樣式 1000> id選擇器 100 > 類選擇器 10 > 標籤選擇器 1 > 繼承樣式 0

3.4.1 css的兩大特性:基礎性和層疊性

繼承性:給父級設置一些屬性,子級繼承了父級的該屬性,這就是咱們的css中的繼承。

面嚮對象語言都會存在繼承的概念,在面嚮對象語言中,繼承的特色:繼承了父類的屬性和方法。那麼咱們如今主要研究css,css就是在設置屬性的。不會牽扯到方法的層面。

記住:有一些屬性是能夠繼承下來 : color 、 font-*、 text-*、line-* 。主要是文本級的標籤元素。

可是像一些盒子元素屬性,定位的元素(浮動,絕對定位,固定定位)不能繼承。

層疊性:權重大的標籤覆蓋掉了權重小的標籤,誰的權重大,瀏覽器就會顯示誰的屬性。

相關文章
相關標籤/搜索