整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          「CSS」 Position 用法進階01:匹配父級容器空間

          在前端界面設計中,會有那么一些布局,需要占滿整個父級容器,比如:

          模態框(Modal)的背景

          加載器(Spinner)的背景

          以上兩種組件中,都是將背景完全填充到父級容器,區別在于模態框通常是背景填滿屏幕,通常使用 position: fixed; 用于定位,而加載器更多用于將其背景布滿父級容器,通常使用 position: absolute; 定位。

          通過 CSS position 屬性實現填滿父級容器

          為了實現填充父級的需求,從正常的盒子模型的設計邏輯來講,我們的思路大體上很簡單:將子容器的高度、寬度設置為和父級一致

          圍繞這個核心思路,我們可以嘗試設置 CSS 屬性: width: 100%; height: 100%;, 但在 CSS 中,% 這個單位僅用于用于參考父級已設置的寬度或高度,換句話說,如果父級容器并沒有設置寬度或高度,子容器設置的 100% 并不能產生相應的作用,而在實際的 UI 布局中,固定父級容器高度的情況是很少出現的,大部分都是由內容將父級容器給撐高,而這種情況下子級容器并不能通過設置 height: 100%; 來將高度設置為和父級一致。

          如果使用 position: fixed 定位,width: 100%; height: 100%; 是可以設置高度和寬度布滿屏幕的,不過需要通過 left:0;top:0; 調整位置剛好和屏幕大小一致。

          既然大部分情況下我們不能使用 height: 100% 來將子容器的高度設置為和父級一致,那我們應該怎樣來填充父級空間呢?

          答案是通過 left, top, right, bottom 這四個屬性。

          關于這四個屬性,我們都知道是配合 position 使用的,并且會隨著 position 設置的值不同,有著不同的特性:

          • position: static:無效
          • position: fixed:參考整個屏幕進行定位
          • position: relative:參考自己進行定位
          • position: absolute: 參考設置了 positionstatic 的最近一個父級進行定位

          通常我們都通過使用其中兩個非對立的屬性來進行定位,比如 left:0; top: 0;position: fixed 中表示該容器對齊屏幕的左上角。我們可以通過類似的寫法對齊右上角,右下角,或者是左下角。

          那如果我們設置一組對立的定位呢,比如在 position: fixed 的情況下設置 left: 0; right: 0;,在對該容器設置了指定 widthheight 的情況下,我們會發現,該容器對齊在屏幕的左側,right: 0 似乎并沒有任何作用,在設置上下對立的定位 top: 0; bottom: 0; 時,該容器會對齊在屏幕的上方,仿佛 bottom 也沒有生效。

          細心的同學肯定注意到了,這里有個前提條件:對該容器設置了指定 widthheight,如果我們去掉容器的高度和寬度并設置 left: 0; right: 0; top: 0; bottom: 0;,那么神奇的事情發生了,該容器鋪滿了整個容器!那如果使用 position: absolute 呢,效果是顯而易見的,鋪滿了整個父級元素(前提是父級元素設置了 position: relativeposition: fixedposition: absolute)。

          總結一下,如果要鋪滿父級容器,我們可以將父級容器設置為 position: relative,并且為子級容器設置以下 CSS 屬性

          .sub{
              position: absolute;
              width: auto; height: auto;
              top: 0; right: 0; bottom: 0; left: 0;
          }

          關于 position 中設置對立屬性的思考

          既然我們可以通過設置對立屬性為 0,讓沒有指定高度或寬度子級容器鋪滿父級容器,那么我們是不是也可以通過設置對立屬性為其它值從而拉扯子級容器的高度或寬度呢?

          答案是肯定的,只要子級容器沒有指定高度或寬度,我們都可以設置對立屬性為任意值從而拉扯其容器高度或寬度

          例子:

          1. 設置子容器高度為父級容器高度減去 100px ,寬度和父級一致并且垂直居中顯示
           .sub{
               position: absolute;
               width: auto; height: auto;
               top: 50px; right: 0; bottom: 50px; left: 0;
           }
          1. 設置子容器寬度比父容器寬 120px,左側超出 20px 右側超出 100px,高度與父容器一致

          習CSS是構建好看網頁的一種方式。但是,在學習過程中,我們傾向于(大部分時間)限制自己,一遍又一遍地使用相同的屬性。畢竟,我們是一種習慣性的動物,我們會使用自己習慣且熟悉的東西。

          因此,在這篇文章中,向你介紹7個 比較少見且好用的 CSS 屬性,希望對你有所幫助。

          1. vertical-align

          CSS 的屬性 vertical-align 用來指定行內元素(inline)或表格單元格(table-cell)元素的垂直對齊方式。

          就像定義說的,這個屬性允許你垂直對齊文本。它對于順序指示器(st, nd等)、需要的輸入星號(*)或沒有正確居中的圖標特別有用。vertical-align取其中一個值:super | top | middle | bottom | baseline (default) | sub | text-top | text-bottom,或從基線開始的長度(px,%, em, rem等等)。

          baseline: 使元素的基線與父元素的基線對齊。HTML規范沒有詳細說明部分可替換元素的基線,如<textarea> ,這意味著這些元素使用此值的表現因瀏覽器而異。

          sub:使元素的基線與父元素的下標基線對齊。

          super:使元素的基線與父元素的上標基線對齊。

          text-top:使元素的基線與父元素的上標基線對齊。

          text-bottom:使元素的底部與父元素的字體底部對齊。

          middle:使元素的中部與父元素的基線加上父元素x-height(譯注:x高度)的一半對齊。

          注意 vertical-align 只對行內元素、表格單元格元素生效:不能用它垂直對齊塊級元素。

          資源:MDN(https://developer.mozilla.org/en-US/docs/Web/CSS/vertical-align)。

          2. writing-mode

          writing-mode 屬性定義了文本水平或垂直排布以及在塊級元素中文本的行進方向。為整個文檔設置書時,應在根元素上設置它(對于 HTML 文檔應該在 html 元素上設置)。它采用以下值之一horizontal-tb (default) | vertical-rl | vertical-lr。

          horizontal-tb:對于左對齊(ltr)腳本,內容從左到右水平流動。對于右對齊(rtr)腳本,內容從右到左水平流動。下一水平行位于上一行下方。

          vertical-rl:對于左對齊(ltr)腳本,內容從上到下垂直流動,下一垂直行位于上一行左側。對于右對齊(rtr)腳本,內容從下到上垂直流動,下一垂直行位于上一行右側。

          vertical-lr:對于左對齊(ltr)腳本,內容從上到下垂直流動,下一垂直行位于上一行右側。對于右對齊(rtr)腳本,內容從下到上垂直流動,下一垂直行位于上一行左側。

          資源:MDN(https://developer.mozilla.org/en-US/docs/Web/CSS/writing-mode)。

          3. font-variant-numeric

          font-variant-numeric CSS屬性控制數字,分數和序號標記的替代字形的使用。

          它采用以下這些值之一:normal | ordinal | slashed-zero | lining-nums | oldstyle-nums | proportional-nums | tabular-nums | diagonal-fractions | stacked-fractions。

          此屬性對于設置數字樣式很有用。根據情況,你可能希望顯示老式的數字或帶有斜杠的零,對于這些情況,font-feature-settings很有用。

          請注意,font-variant-numeric是font-feature-settings組屬性的一部分。諸如font-variant-caps或font-variant-ligatures之類的屬性也屬于該組。還要注意,像所有font-feature-settings屬性一樣,你的字體需要實現上述功能才能正常工作。我使用的字體是Fira Sans。

          資源:MDN(https://developer.mozilla.org/en-US/docs/Web/CSS/font-variant-numeric)。

          4. user-select

          每當我們有不想讓用戶選擇的文本,或者相反,如果發生了雙擊或上下文單擊,希望選擇所有文本時,user-select屬性將非常有用。

          此屬性采用以下值之一:none | auto | text | all。

          none:元素及其子元素的文本不可選中。請注意這個Selection 對象可以包含這些元素。從Firefox 21開始, none 表現的像 -moz-none,因此可以使用 -moz-user-select: text 在子元素上重新啟用選擇。

          autoauto 的具體取值取決于一系列條件,具體如下:

          • 在 ::before 和 ::after 偽元素上,采用的屬性值是 none
          • 如果元素是可編輯元素,則采用的屬性值是 contain
          • 否則,如果此元素的父元素的 user-select 采用的屬性值為 all,則該元素采用的屬性值也為 all
          • 否則,如果此元素的父元素的 user-select 采用的屬性值為none,則該元素采用的屬性值也為 none
          • 否則,采用的屬性值為text

          text:用戶可以選擇文本。all:在一個HTML編輯器中,當雙擊子元素或者上下文時,那么包含該子元素的最頂層元素也會被選中。

          資源:MDN(https://developer.mozilla.org/en-US/docs/Web/CSS/user-select)。

          5. clip-path

          clip-path CSS 屬性可以創建一個只有元素的部分區域可以顯示的剪切區域。區域內的部分顯示,區域外的隱藏。剪切區域是被引用內嵌的URL定義的路徑或者外部svg的路徑,或者作為一個形狀例如circle()。clip-path屬性代替了現在已經棄用的剪切 clip屬性。

          此屬性采用以下值之一:circle() | ellipse() | polygon() | path() | url()。

          由于這是對該屬性的介紹,因此,這里不會深入研究每個值。

          我使用最多的兩個值是circle和polygon。circle(radius at pair)值有兩個參數,第一個參數是圓的半徑,第二個參數是表示圓心的點。polygon(pair, pair, pair ...)值取3個或更多的點,表示一個三角形、一個矩形等等。

          6. shape-outside

          shape-outside的CSS 屬性定義了一個可以是非矩形的形狀,相鄰的內聯內容應圍繞該形狀進行包裝。默認情況下,內聯內容包圍其邊距框; shape-outside提供了一種自定義此包裝的方法,可以將文本包裝在復雜對象周圍而不是簡單的框中。它采用與clip-path相同的值。

          clip-path定義用戶如何查看元素,shape-outside定義其他HTML元素如何查看元素。

          資源:MDN(https://developer.mozilla.org/en-US/docs/Web/CSS/shape-outside)。

          7. background-clip

          最后,backgroundclip CSS屬性設置元素的背景是否擴展到其border、padding 或content 框之下。

          此屬性采用以下值之一:border-box (default) | padding-box | content-box | text

          資源:MDN(https://developer.mozilla.org/en-US/docs/Web/CSS/background-clip)。

          總結

          下圖是結合上面 7 個屬性實現的布局,讓大家加深一下印象。

          如果你還知道一些新奇的屬性,歡迎留言。


          作者:Mustapha Aouas 譯者:前端小智 來源:dev

          原文:https://dev.to/mustapha/7-amazing-css-properties-you-may-not-know-yet-eej

          TML(網頁)

          Web領域的一些基本概念。

          WEB

          Web(World Wide Web)叫全球廣域網,俗稱萬維網(www)。

          W3C

          W3C(World Wide Web Consortium)叫萬維網聯盟,是國際最著名的標準化組織,制定了web標準。

          WEB標準

          一個網頁包含了html元素 Css JavaScript,Html元素決定了網頁結構,Css進行了修飾美化,JavaScript控制了交互行為和動態效果。

          web標準包含了下面三個方面:

          • 結構標準(HTML):用于對網頁元素進行整理和分類。
          • 表現標準(CSS):用于設置網頁元素的版式、顏色、大小等外觀樣式。
          • 行為標準(JavaScript):用于定義網頁的交互和行為。

          HTML定義

          Html不是一種編程語言,而是描述性的標記語言,主要作用是定義內容的結構。

          2014年10月萬維網聯盟(W3C)完成了HTML5標準制定,是目前最新的HTM版本。

          HTML5的出世,標志著web進入一個富客戶端(具有很強的交互性和體驗的客戶端程序)時代,像APP網頁,小程序都是HTML5的應用場景。

          Html5新特性:

          • 用于繪畫的 canvas 元素。
          • 用于媒介回放的 video 和 audio 元素。
          • 對本地離線存儲的更好的支持。
          • 新的特殊內容元素,比如 article、footer、header、nav、section。
          • 新的表單控件,比如 calendar、date、time、email、url、search。

          頁面基本結構

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8"> <!--字符集-->
              <meta name="viewport" content="width=device-width, initial-scale=1.0">
              <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
              <meta name="Author" content="">
              <meta name="Keywords" content="關鍵詞" />
              <meta name="Description" content="頁面描述" />
              <title>頁面標題</title>
          </head>
          <body>
          
          </body>
          </html>

          關于viewport

          viewport用戶網頁的可視區域,一個針對移動網頁優化的頁面 viewport meta 標簽如下:

          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          • width:控制 viewport 的大小,可以指定的一個值,如 600,或者特殊的值,如 device-width 為設備的寬度(單位為縮放為 100% 時的 CSS 的像素)。
          • height:和 width 相對應,指定高度。
          • initial-scale:初始縮放比例,也即是當頁面第一次 load 的時候縮放比例。
          • maximum-scale:允許用戶縮放到的最大比例。
          • minimum-scale:允許用戶縮放到的最小比例。
          • user-scalable:用戶是否可以手動縮放。

          常見元素

          head區域元素:

          meta title style link script base。

          body區域元素:

          • div、section、article、aside、header、footer
          • p
          • span、em、strong
          • table、thead、tbody、tr、td
          • ul、ol、dl、dt、dd
          • a
          • form、input、select、textarea、button

          元素分類

          塊級元素:每個元素都是獨占一行

          • address – 地址
          • blockquote – 塊引用
          • center – 舉中對齊塊
          • dir – 目錄列表
          • div – 常用塊級容易,也是css layout的主要標簽
          • dl – 定義列表
          • fieldset – form控制組
          • form – 交互表單
          • h1-h6 – 標題
          • hr – 水平分隔線
          • isindex – input prompt
          • menu – 菜單列表
          • noframes – frames可選內容,(對于不支持frame的瀏覽器顯示此區塊內容)
          • noscript – )可選腳本內容(對于不支持script的瀏覽器顯示此內容)
          • ol – 排序表單
          • p – 段落
          • pre – 格式化文本
          • table – 表格
          • ul – 非排序列表

          行內元素:元素在同一行水平排列

          • a – 錨點
          • abbr – 縮寫
          • acronym – 首字
          • b – 粗體
          • big – 大字體
          • br – 換行
          • em – 強調
          • font – 字體設定(不推薦)
          • i – 斜體
          • img – 圖片
          • input – 輸入框
          • label – 表格標簽
          • s – 中劃線(不推薦)
          • select – 項目選擇
          • small – 小字體文本
          • span – 常用內聯容器,定義文本內區塊
          • strike – 中劃線
          • strong – 粗體強調
          • sub – 下標
          • sup – 上標
          • textarea – 多行文本輸入框
          • tt – 電傳文本
          • u – 下劃線
          • var – 定義變量

          inline-block:元素可以排列在同一行顯示,并且可以設置一些塊元素屬性

          通過Css:display:inline-block 改變元素。

          元素默認樣式

          很多元素都自帶了默認樣式,不同瀏覽器下默認樣式表現不一致,為了統一或者滿足一些需求我們需求將所有默認樣式清空,這種處理方式又稱為 Css Reset,比如:

          *{
              margin: 0;
              padding: 0;
          }

          另外一種方案使用normalize.css,它將不同瀏覽器下的默認樣式進行了統一,

          https://github.com/necolas/normalize.css

          CSS(層疊樣式表)

          Css的單位

          html中的單位是像素px

          絕對單位

          • in:英寸,1in = 2.54cm = 96px
          • pc:皮卡,1皮卡 = 1/16英寸
          • pt:點,1點 = 1/72英寸
          • px:像素,1點 = 1/96英寸

          相對單位

          • em:font-size中相對于父元素的字體大小,在元素屬性中使用是相對于自身字體大小
          • rem:根元素的字體大小,在元素屬性中使用是相對于根元素字體大小
          • 1h:元素的line-height
          • vw:視窗寬度的1%
          • vh:視窗高度的1%
          • vmin:視窗較小尺寸的1%
          • vmax:視圖大尺寸的1%

          字體屬性

          屬性:字體、行高、顏色、大小、背景、邊框、滾動、換行、修飾屬性(粗體、斜體、下劃線)

          p{
              font-size: 20px;        /*字體大小*/
              line-height: 30px;      /*行高*/
              font-family: PingFang SC;   /*字體類型:顯示PingFang SC,沒有就顯示默認*/
              font-style: italic ;        /*italic表示斜體,normal表示不傾斜*/
              font-weight: bold;  /*粗體或寫(400|500|600)*/
              font-variant: small-caps;  /*小寫變大寫*/
          }

          行高(line-height)

          一般約定行高、字號都是偶數,這樣保證它們的差一定偶數除2得到整數,如下圖所示:

          line-height

          文本垂直居中

          對于單行文本可以設置行高 = 盒子高度

          對于多行元素的垂直對齊,我們可以使用vertical-align: middle屬性,不過vertical-align 僅適用inline、inline-block 和 table-cell 元素。

          vertical-align

          vertical-align: baseline;
          vertical-align: sub;
          vertical-align: super;
          vertical-align: text-top;
          vertical-align: text-bottom;
          vertical-align: middle;
          vertical-align: top;
          vertical-align: bottom;
          /* 指定長度值 */
          vertical-align: 10em;
          vertical-align: 4px;
          /* 使用百分比 */
          vertical-align: 20%;
          /* 全局值 */
          vertical-align: inherit;
          vertical-align: initial;
          vertical-align: revert;
          vertical-align: unset;

          文本屬性

          • letter-spacing: 0.5em ; 單個字母之間的間距。
          • word-spacing: 1em; 單詞之間的間距。
          • text-decoration: none; none 去掉下劃線、underline 下劃線、line-through 中劃線、overline 上劃線。
          • color:red; 字體顏色。
          • text-align: center; 文字對齊方式,屬性值可以是:left、right、center、justify。
          • text-transform: lowercase; uppercase(大寫)、lowercase(小寫)capitalize(首字母大寫)。
          • text-indent:10px; 文本首行縮進。
          • text-shadow:2px 2px #ff0000; 文字陰影效果。
          • white-space: normal; 設置元素空白處理,normal,nowrap,break-spaces。

          Overflow屬性

          內容溢出處理

          • visible:默認值,多余的內容會全部顯示出來。
          • hidden:超過元素的內容隱藏。
          • auto:內容超出顯示滾動條。
          • scroll:Windows總是顯示滾動條。Mac和auto 屬性相同。

          濾鏡

          filter:gray()

          背景屬性

          • background-color:#fff; 設置背景顏色。
          • background-image:url(img.png); 設置圖像為背景。
          • background-repeat: no-repeat; no-repeat不要平鋪,repeat-x橫向平鋪;repeat-y縱向平鋪。
          • background-position:center top; 設置背景圖片在容器的位置,top,bottom,left,right,center。
          • background-attachment:scroll; 設置背景圖片隨滾動條移動,scroll(跟隨滾動),fixed(固定)。
          • background-origin:border-box; css3,border-box(背景相對于邊框框定位),padding-box(背景相對于填充框定位),content-box(背景相對于內容框定位)。
          • background-clip:border-box; css3,背景裁切。
          • background-size:cover; css3,調整尺寸,contain(在不裁剪或拉伸圖像的情況下,在其容器內盡可能大地縮放圖像),cover(盡可能大地縮放圖像以填充容器,必要時拉伸圖像。),auto(在相應的方向上縮放背景圖像,以保持其固有比例。)。

          優先級

          理解優先級很重要,有助于我們排查一些問題。瀏覽器將優先級分為兩部分:HTML的行內樣式和選擇器的樣式。

          行內樣式

          行內樣式是直接作用在元素,它的優先級高于選擇器樣式,使用!important可以提高樣式表的優先級。

          <div style="font-size:16px">
          </div>

          選擇器樣式

          <style type="text/css">
              p{
                font-size: 16px;
              }
          </style>
          <link rel="stylesheet" href="style/app.css">

          優先級規則如下:

          • 如果選擇器的ID數量最多的勝出。
          • 如果ID數量一致,那么擁有最多類的選擇器勝出。
          • 如果以上兩次比較都一致,那么擁有最多標簽名的選擇器勝出。

          優先級

          我們通過下圖這種標記方式,就可以判斷出選擇器的優先級。

          優先級

          兩條經驗法則

          1. 盡量不要使用ID選擇器,因為它會大幅提升優先級。當需要覆蓋這個選擇器時,通常找不到另一個有意義的ID,于是就需要復制原來的選擇器加上另一個類來讓它區別于想要覆蓋的選擇器。
          2. 不要使用!important。它比ID更難覆蓋,一旦用了它,想要覆蓋原先的聲明,就需要再加上一個!important,而且依然要處理優先級的問題。

          基礎選擇器

          • 類型或標簽選擇器,匹配目標元素的標簽名,如 :p,input[type=text],優先級(0,0,1)。
          • 類選擇器,匹配class屬性中有指定類名的元素,如:.box,優先級(0,1,0)。
          • ID選擇器,匹配擁有指定ID屬性的元素,如:#id, 優先級(1,0,0)。
          • 通用選擇器(*),匹配所有元素 ,優先級(0,0,0)。

          組合選擇器

          由多個基礎選擇器組合成的復雜選擇器。

          • 后代組合器(單個空格()表示),比如 .nav li,表示li是一個擁有nav類的元素的后代。
          • 子組合器(>),匹配的元素是直接后代,.parent > .child。
          • 相鄰兄弟組合器(+),匹配的元素緊跟在后面其它元素后面,div + p。
          • 通用兄弟組合器(~),匹配所有跟隨在指定元素之后的兄弟元素,它不會選中目標元素之前的兄弟元素,li.active ~ li。

          復合選擇器

          多個基礎選擇器連起來(中間沒有空格)組成一個復合選擇器(如:ul.nav)。復合選擇器選中的元素將匹配其全部基礎選擇器,.box.nav 可以選中 class="box nav" ,但是不能選中 class="box"。

          偽類選擇器

          用于選中某種特定狀態的元素,優先級(0,1,0)。

          • :first-child——匹配的元素是其父元素的第一個子元素。
          • :last-child——匹配的元素是其父元素的最后一個子元素。
          • :only-child——匹配的元素是其父元素的唯一一個子元素(沒有兄弟元素)。
          • :nth-child(an+b)——匹配的元素在兄弟元素中間有特定的位置。公式an+b里面的a和b是整數,該公式指定要選中哪個元素。要了解一個公式的工作原理,請從0開始代入n的所有整數值。公式的計算結果指定了目標元素的位置。下表給出了一些例子。

          :nth-child(an+b)

          • :nth-last-child(an+b)——類似于:nth-child(),但不是從第一個元素往后數,而是從最后一個元素往前數。括號內的公式與:nth-child()里的公式的規則相同。
          • :first-of-type——類似于:first-child,但不是根據在全部子元素中的位置查找元素,而是根據擁有相同標簽名的子元素中的數字順序查找第一個元素。
          • :last-of-type——匹配每種類型的最后一個子元素。
          • :only-of-type——該選擇器匹配的元素是滿足該類型的唯一一個子元素。
          • :nth-of-type(an+b)——根據目標元素在特定類型下的數字順序以及特定公式選擇元素,類似于:nth-child。
          • :nth-last-of-type(an+b)——根據元素類型以及特定公式選擇元素,從其中最后一個元素往前算,類似于:nth-last-child。
          • :not(<selector>)——匹配的元素不匹配括號內的選擇器。括號內的選擇器必須是基礎選擇器,它只能指定元素本身,無法用于排除祖先元素,同時不允許包含另一個排除選擇器。
          • :focus——匹配通過鼠標點擊、觸摸屏幕或者按Tab鍵導航而獲得焦點的元素。
          • :hover——匹配鼠標指針正懸停在其上方的元素。
          • :root——匹配文檔根元素。對HTML來說,這是html元素,但是CSS還可以應用到XML或者類似于XML的文檔上,比如SVG。在這些情況下,該選擇器的選擇范圍更廣。還有一些表單域相關的偽類選擇器。
          • :disabled——匹配已禁用的元素,包括input、select以及button元素。
          • :enabled——匹配已啟用的元素,即那些能夠被激活或者接受焦點的元素。
          • :checked——匹配已經針對選定的復選框、單選按鈕或選擇框選項。
          • :invalid——根據輸入類型中的定義,匹配有非法輸入值的元素。例如,當<inputtype="email">的值不是一個合法的郵箱地址時,該元素會被匹配。

          更多參考:https://developer.mozilla.org/zh-CN/docs/Web/CSS

          偽元素選擇器

          偽元素選擇器可以向HTML標記中未定義的地方插入內容,優先級(0,0,1)。

          • ::before——創建一個偽元素,使其成為匹配元素的第一個子元素。該元素默認是行內元素,可用于插入文字、圖片或其他形狀。必須指定content屬性才能讓元素出現,如:.nav::before。
          • ::after——創建一個偽元素,使其成為匹配元素的最后一個子元素。該元素默認是行內元素,可用于插入文字、圖片或其他形狀。必須指定content屬性才能讓元素出現,如:.nav::after。
          • ::first-letter——用于指定匹配元素的第一個文本字符的樣式,如:h1::first-letter。
          • ::first-line——用于指定匹配元素的第一行文本的樣式。
          • ::selection——用于指定用戶使用鼠標高亮選擇的任意文本的樣式。通常用于改變選中文本的background-color。只有少數屬性可以使用,包括color、background-color、cursor、text-decoration。

          屬性選擇器

          屬性選擇器用于根據HTML屬性進行匹配元素,優先級(0,1,0)。

          • [attr]——匹配的元素擁有指定屬性attr,無論屬性值是什么,如:input[disabled]。
          • [attr="value"]——匹配的元素擁有指定屬性attr,且屬性值等于指定的字符串值,如:input[type="radio"]。
          • [attr^="value"] ——“開頭”屬性選擇器。該選擇器匹配的元素擁有指定屬性attr,且屬性值的開頭是指定的字符串值,例如:a[href^="https"]。
          • [attr*="value"]——“包含”屬性選擇器。該選擇器匹配的元素擁有指定屬性attr,且屬性值包含指定的字符串值,如:[class*="sprite-"]。
          • [attr~="value"]——“空格分隔的列表”屬性選擇器。該選擇器匹配的元素擁有指定屬性attr,且屬性值是一個空格分隔的值列表,列表中的某個值等于指定的字符串值,如:a[rel="author"]。
          • [attr|="value"]——匹配的元素擁有指定屬性attr,且屬性值要么等于指定的字符串值,要么以該字符串開頭且緊跟著一個連字符(-)。

          小結

          本文要點回顧,歡迎留言交流。

          • Web中的一些基本概念介紹。
          • Html頁面結構,元素分類。
          • Css優先級。
          • Css選擇器,(基礎選擇器,組合選擇器,復合選擇器,偽類選擇器,偽元素選擇器,屬性選擇器)。

          主站蜘蛛池模板: 日韩人妻无码一区二区三区久久99 | 亚洲国产情侣一区二区三区| 一区在线免费观看| 成人精品一区二区三区不卡免费看 | 日韩精品一区二区三区不卡 | 精品一区二区三区在线视频| 精品国产一区二区三区av片| 人妻无码视频一区二区三区 | 中文字幕一区二区免费| 亚洲高清一区二区三区| 精品国产一区二区三区AV性色| 亚洲综合激情五月色一区| 亚洲一区二区三区影院| 精品人妻无码一区二区三区蜜桃一| 国产一区二区三区高清视频| 无码精品人妻一区二区三区免费| 欧亚精品一区三区免费| 制服丝袜一区在线| 久久青草精品一区二区三区| 久久精品国产一区二区| 波多野结衣精品一区二区三区| 无码中文字幕人妻在线一区二区三区| 国精无码欧精品亚洲一区| 一区二区在线视频观看| 婷婷国产成人精品一区二| 国产一区二区三区免费在线观看| 亚洲综合av一区二区三区| 精品国产福利一区二区| tom影院亚洲国产一区二区| 日韩人妻无码一区二区三区久久 | 亚洲欧美一区二区三区日产| 亚洲一区二区三区免费视频| 亚洲狠狠久久综合一区77777| 国产日韩一区二区三免费高清| 一区二区三区在线观看视频| 一区二区三区免费视频观看| 一本岛一区在线观看不卡| 国产成人综合精品一区| 国模大尺度视频一区二区| 亚洲夜夜欢A∨一区二区三区| 国产一区三区三区|