1. 程式人生 > >前端之CSS(一)

前端之CSS(一)

一、什麼是CSS

CSS是Cascading Style Sheets,層疊樣式表,高大上的說法是用來控制網頁資料的表現,可以使網頁的表現與資料內容分離。通俗來講,就是用各種盒子的堆疊實現我們想要的HTML頁面,武sir說招聘的時候都不說招前端,而是招div+css,我覺得很貼切。

二、CSS的引入

1.行內式

<!--#行內式引用:-->
<p style="background-color: chartreuse">yinrufangshi1</p>
行內式是在單個標籤的style屬性中設定,並不能體現CSS的優勢:減少程式碼量,so不推薦使用

2.嵌入式

嵌入式是將CSS樣式集中寫在網頁的<head></head>標籤對的<style></style>標籤對中。格式如下:

<head>
     <style type="text/css">
            ...此處寫CSS樣式
     </style>
</head>
eg:
<!--#嵌入式引用:在head中定義style-->
 <style type="text/css">
        p{color: blue;background
-color: azure;} </style> <!--然後在body中呼叫--> <p>yinrufangshi2</p>

3.匯入式

將一個獨立的.css檔案引入HTML檔案中,匯入式使用CSS規則引入外部CSS檔案,<style>標記也是寫在<head>標記中,使用的語法如下:
          <style type="text/css">
                    @import"mystyle.css"; 此處要注意.css檔案的路徑
         </style>

 4.連結式

也是將一個.css檔案引入到HTML檔案中    <link href="mystyle.css" rel="stylesheet" type="text/css"/>
注意:
匯入式會在整個網頁裝載完後再裝載CSS檔案,因此這就導致了一個問題,如果網頁比較大則會兒出現先顯示無樣式的頁面,閃爍一下之後,再出現網頁的樣式。這是匯入式固有的一個缺陷。使用連結式時與匯入式不同的是它會以網頁檔案主體裝載前裝載CSS檔案,因此顯示出來的網頁從一開始就是帶樣式的效果的,它不會象匯入式那樣先顯示無樣式的網頁,然後再顯示有樣式的網頁,這是連結式的優點。

優先順序:標籤(行內式)>頁面鑲入(嵌入式)>外部(匯入式、連結式),這個僅限同樣的樣式衝突是才有用.

 三、CSS選擇器

1、什麼是選擇器?

“選擇器”指明瞭{}中我們定義的“樣式”的作用物件,也就是“樣式”作用於網頁中的哪些元素。

 2、選擇器的分類?

  • 基礎選擇器
    • ‘*’:通用元素選擇器,匹配任何元素。eg: * { margin:0; padding:0; }
    • E:標籤選擇器,匹配所有使用E標籤的元素。eg:p { color:green; }
    • .info和E.info:class類選擇器,匹配所有class屬性中包含info的元素,info是自定義的名字。eg: .info { background:#ff0; }    p.info { background:blue; }
    • #info和E#info:id選擇器,匹配所有id屬性等於info的元素。eg:#info { background:#ff0; }   p#info { background:#ff0; }
  • 組合選擇器
    • 多元素選擇器:同時匹配多個元素,元素之間用逗號分隔。eg:div,p{color:#ddd;}
    • 後代元素選擇器:匹配所有屬於A元素後代的C元素,A和C之間用空格分隔。eg:
      #aaa li { display:inline; }    li a { font-weight:bold; }
    • 子元素選擇器:匹配A元素的所有子元素B,A和B之間用大於號分隔。eg:
      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
          <style>
      
              .div1>p{
                  background-color: aqua;
                  color: deeppink;
              }
      
              .main2>div{
                  background-color: blueviolet;
                  color: chartreuse;
              }
          </style>
      </head>
      <body>
      
            <div class="div1">hello1
                <div class="div2">hello2
                    <div>hello4</div>
                    <p>hello5</p>
                </div>
                <p>hello3</p>
            </div>
            <p>hello6</p>
      
      <hr>
      
           <div class="main2">1
             <div>tina
                 <div>
                 </div>
             </div>
             <div>
                 </div>
           </div>
      </body>
      </html>
    • 毗鄰元素選擇器:匹配所有同級元素又或兄弟元素。用加號連線。eg: p + p { color:#f00; }
      .b+p {兄弟選擇器,將同級的標籤選擇出來
             background-color: blue;
             font-size: 40px;
         }
  • 屬性選擇器
    • E[att]:匹配所有具有att屬性的E元素,不考慮它的值。(E在此處可以省略,eg:p[title] { color:#f00; }或[title] { color:#f00; })
    • E[att=val]:匹配所有att屬性等於“val”的元素。eg:div[class=”error”] { color:#f00; }
    • E[att~=val]:匹配所有att屬性具有多個空格分隔的值、其中一個值等於“val”的元素。eg:td[class~=”name”] { color:#f00; }
    • E[att|=val]:匹配所有att屬性具有多個連字元(-hyphen-separated)分隔的值,其中一個值以val開頭的E元素,主要用於lang屬性,因為lang=en-us或en-gb等。eg:p[lang|=en] { color:#f00; }
    • E[att^=val]:匹配屬性值以指定值開頭的每個元素。eg:div[class^="test"]{background:#ffff00;}
    • E[att$=val]:匹配屬性值以指定值結尾的每個元素。eg:div[class$="test"]{background:#ffff00;}
    • E[att*=val]:匹配屬性值中包含指定值的每個元素。eg:div[class*="test"]{background:#ffff00;}
    • p:before--->在每個<p>元素的內容之前插入內容。 eg:p:before{content:"hello";color:red}
    • p:after--->在每個<p>元素的內容之後插入內容。eg:p:after{content:"hello";color:red}
      [class] {屬性選擇器,將clas的屬性都選擇出來
             background-color: blue;
         }
         [class='b'] {將class = 'b'的選擇出來
             background-color: blue;
         }
         [class |='b'] {匹配具有連字元 - 的以b開頭的class屬性
             background-color: blue;
         }
         [class ^='b'] {匹配以b開頭的class屬性
             background-color: blue;
         }
         [class ~= 'c'] {匹配具有多個空格分隔的值、其中一個值等於'c'的class屬性
             background-color: blue;
         }
         p:before {
             content:'666' ;
             color: blue;
         }
  • 偽類選擇器(專用於控制連結的顯示效果)
    • a:link(從未訪問過的連結的嶄新狀態),用於定義了連結的常規狀態。
    • a:hover(滑鼠移動到連結上時未點選的懸浮狀態),用於產生視覺效果。
    • a:visited(已訪問過的連結的狀態)用於閱讀文章,能清楚的判斷已經訪問過的連結。
    • a:active(在連結上按下滑鼠時的狀態),用於表現滑鼠按下時的連結啟用狀態。
      <style type="text/css">
          a:link{
              color: red;
          }
          a:visited {
              color: blue;
          }
          a:hover {
              color: green;
          }
          a:active {
              color: yellow;
          }<!--注意順序這4個偽類的順序 lvha-->
      </style>
      </head>
      <body>
          <a href="">hello-world</a>
      </body>
      </html>

四、CSS的常用屬性

1、顏色屬性

<div style="color:blueviolet">ppppp</div>

   <div style="color:#ffee33">ppppp</div>

  <div style="color:rgb(255,0,0)">ppppp</div> 

  <div style="color:rgba(255,0,0,0.5)">ppppp</div>

2、字型屬性

font-size: 20px/50%/larger

font-family:'Lucida Bright'

font-weight: lighter/bold/border/

<h1 style="font-style: oblique">hello tina</h1>

 3、背景屬性

background-color: cornflowerblue

background-image: url('1.jpg');

background-repeat: no-repeat;(repeat:平鋪滿)

background-position: right top(20px 20px);(橫向:left center right)(縱向:top center bottom)

      簡寫:<body style="background: 20px 20px no-repeat #ff4 url('1.jpg')">

              <div style="width: 300px;height: 300px;background: 20px 20px no-repeat #ff4 url('1.jpg')">

注意:如果講背景屬性加在body上,要記得給body加上一個height,否則結果異常,這是因為body為空,無法撐起背景圖片,另外,如果此時要設定一個width=100px,你也看不出效果,除非你設定出html。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        html{
            background-color: antiquewhite;
            
        }
        body{
            width: 100px;
            height: 600px;
            background-color: deeppink;
            background-image: url(1.jpg);
            background-repeat: no-repeat;
            background-position: center center;
        }
    </style>
</head>
<body>

</body>
</html>

4、文字屬性

font-size: 10px;

text-align: center;橫向排列

line-height: 200px;文字行高 通俗的講,文字高度加上文字上下的空白區域的高度 50%:基於字型大小的百分比

p

{ width: 200px;

height: 200px;

text-align: center;

background-color: aquamarine;

line-height: 200px; }

text-indent: 150px; 首行縮排,50%:基於父元素(weight)的百分比

letter-spacing: 10px;字母間距

word-spacing: 20px;單詞間距

direction: rtl;從右向左,預設是從左向右

text-transform: capitalize;首字母大寫

5、邊框屬性

border-style: solid;dashed;dotted

border-color: chartreuse;

border-width: 20px;

簡寫:border: 30px rebeccapurple solid;

 6、列表屬性

ul,ol{

      list-style: decimal-leading-zero; 0開頭的數字標記。(01, 02, 03, 等。)
        list-style: none;<!--!!!重點,做輪播圖時常用到,將列表前面的圈去掉-->       
      list-style: circle;         標記是空心圓
        list-style: upper-alpha;      大寫字母
        list-style: disc;        預設。標記是實心圓

 7、display屬性

display的用法:
<!--display 為none將隱藏標籤-->
    <div style="display: none;">tina</div>
<!--display 為inline會將塊級別標籤調為內聯標籤--> <div style="display:inline">tina</div>
<!--display 為block會將內聯標籤調為塊級別標籤--> <a style="display:block">tina</a>

 五、後序

小插曲: 當我們在pycharm執行css程式碼時,建議找到檔案所在位置,右鍵,選擇瀏覽器執行,避免IDE錯誤

@注:下篇將會詳細補充盒子模型、float、position的用法及inline&block的因緣糾葛,敬請期待~(*^__^*) ~……

相關推薦

前端CSS

一、什麼是CSS CSS是Cascading Style Sheets,層疊樣式表,高大上的說法是用來控制網頁資料的表現,可以使網頁的表現與資料內容分離。通俗來講,就是用各種盒子的堆疊實現我們想要的HTML頁面,武sir說招聘的時候都不說招前端,而是招div+css,我覺得很貼切。 二、CSS的引入 1

前端HTML

BE 二維 格式 雙標簽 color pen 腳本 AC tip 一、初識HTML 1.1、web服務本質 import socket sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM) sock.bind

從零開始學 Web CSS選擇器

大家好,這裡是「 Daotin的夢囈 」從零開始學 Web 系列教程。此文首發於「 Daotin的夢囈 」公眾號,歡迎大家訂閱關注。在這裡我會從 Web 前端零基礎開始,一步步學習 Web 相關的知識點,期間也會分享一些好玩的專案。現在就讓我們一起進入 W

前端CSS

一、盒子模型   說到盒子模型,我們不得不提一下,W3C標準和IE瀏覽器是有區別的,我昨天就在寫抽屜作業的時候踩過坑,建議用谷歌瀏覽器,並推薦一篇博文:http://www.osmn00.com/translation/213.html 在W3C盒模型中,一個塊級元素的總寬度(總高度同理)按照如下的方程

學習前端

為了讓自己能夠記下一些常用的知識,特此寫下來mark,以便渣渣的自己隨時查閱。 今天開始做第一個專案,聽說很簡單,那就假裝很簡單吧。Build a Tribute Page. 需要使用到Bootstrap框架。 1、container Bootstrap 固定佈局 如果

從後端到前端Vue寫個表格試試水

  目錄:   1、指令碼式開發. 2、工程化開發 3、工程化和指令碼的區別 4、來個table試試水 4,1、目標 4.2、思路 4.3、設計與編碼 4.4、效果 5、業務分離 6、功能拓展——個性化設定    

我的IT夢——web前端開發HTML,CSS

jpg 標記語言 方便 add body 前端 input cti 列表 HTML HTML全稱HyperText Markup Language(超文本標記語言) 標簽成對出現 <!DOCTYPE html> 文檔類型定義 < > 標

css重構

rdquo lan set 變化 部分 網站 一個 寬度 lang css重構之旅 >前言: 今年我大一,馬上就要大二了。從高三畢業暑假到大學的這一年馬上過去,馬上迎來大二生活.學習前端也有將近一年了。一昧去追求那些視覺的效果和相對高端和新穎的技術,反而忽略了最基礎

前端 —— node.js摸爬打滾

turn lan name resp function oba ack val 括號 安裝: window下的安裝,node.js直接上官網下載:https://nodejs.org/en/ 選擇LTS,也就是版本號比較低的穩定版,下載下來後運行下載的文件進行安裝; 通

python--前端CSScss頁面引入方法、選擇器基本選擇器、組合選擇器

gin 如果 優點 選擇器 alt 前端 設置字體 行高 常用 CSS產生背景: 為了讓網頁元素的樣式更加豐富,也為了讓網頁的內容和樣式能拆分開,CSS由此思想而誕生,CSS是 Cascading Style Sheets 的首字母縮寫,意思是層疊樣式表。 有了CSS,ht

前端案例分享CSS+JS實現流星雨動畫

目錄 引言 1、效果圖 2、原始碼 3、案例解析 4、小問題 5、結語 引言        平常會做一些有意思的小案例練手,通常都會發到codepen上,但是codepen不能寫分析。  &nb

前端系列教程CSS引入

CSS 引入 當讀到一個樣式表時,瀏覽器會根據它來格式化 HTML 文件。 插入樣式表的方法有三種: 外部樣式表 內部樣式表 內聯樣式 一、外部樣式表 當樣式需要應用於很多頁面時,外部樣式表將是理想的選擇。在使用外部樣式表的情況下,你可以通過改變一個

前端成長setState需要注意的幾點

一直沒有對setState有什麼很深入的瞭解,最近閱讀了一些文章,深感setState的運用並不簡單 setState的使用不當,很有可能會導致一些莫名其妙的bug 首先:setState並不保證同步執行 呼叫setState後,並不會直接改變state的值,而

web前端進化——小程式開發

最近學習前端感覺很多知識學起來容易,但是很多知識點很容易忘記,想做一個工具來方便自己來學習,正好結合小程式,分享給大家。照顧初學者,可能講的比較細,理解哈。 準備工具 小程式一個 已申請(名稱是:we

前端-CSS

CSS  概念:層疊樣式表(Cascading Style Sheets) 一、語法概述 選擇器{屬性:值;屬性:值; } CSS註釋:            /*這是註釋*/ 例如 p{ colo

從零開始學 Web HTML認識前端

大家好,這裡是 Daotin 從零開始學 Web 系列教程。此文首發於「 Daotin的夢囈 」,歡迎大家訂閱關注。在這裡我會從 Web 前端零基礎開始,一步步學習 Web 相關的知識點,期間也會分享一些好玩的專案。現在就讓我們一起進入 Web 前端學習的冒險之旅吧! 1、什麼是前端 前端對於網站來說,

前端學習-基礎部分-css

技術分享 bbc utf-8 one doctype nbsp itl 拆分 基本應用 開始今日份整理 1.CSS的導入方式 CSS的導入方式主要是有內聯模式,行內模式,外部樣式表 1.1 內聯模式 內聯模式:直接在<head>中直接寫css,例如

前端css寬高設置小技巧

:after 頁面 使用 left 適應 偽元素 inline 失效 ie6 一、css寬高自適應: 1.寬度自適應: 元素寬度設為100%(塊狀元素的默認寬度為100%) 註:應用在通欄效果中 2.高度自適應: height:aut

從後端到前端Vue小結以及顆真實的大樹

  上一篇寫了一下tab,下面整理一下用過的知識點,本想按照官網的文件,整理一下可以更清晰,結果也許是我的方法不對吧,總之更模糊了。 按照官網文件的順序整理到了表單輸入繫結之前,因為之前大致也就只涉及到這一些,另外一個原因就是整理的有點頭暈暈。 先展示一下成果吧。Emmm,好吧,很懷疑自己的歸納總結的能力

Docker+Cmd+Cli+Git前端工程化紀要整體目標

之前一版的工程化核心產物就是一個IDE,即利用python+node將webpack等技術將FE的開發、編譯、部署上線等環境整合在sublime中,產出了一個核心工具。但隨著長期的使用與技術棧的優化升級等,原工程化工具的侷限性、便利性、跨平臺的相容性等方面的問題正在逐漸暴露,加之最近的疫情因素,更讓我們有理由