再戰CSS樣式

前言

  • 最近面試,發現CSS層疊樣式表很多細節已經忘得差不多了。
  • 寫樣式,畫界面是一個前端工程師最基礎的素養。

一、基礎選擇器

標簽: 標簽名 { css屬性名:屬性值; }

類: .類名 { css屬性名:屬性值; }

id: #id屬性值 { css屬性名:屬性值; }

通配符: *{ css屬性名:屬性值; }

二、選擇器進階

復合選擇器(后代、子代)、并集選擇器、交集選擇器、hover偽類選擇器


結構偽類選擇器:

三、字體和樣式a

字體樣式:大?。?code>font-size 粗細:font-weight 樣式:font-style:italic 類型:font-family 類型:font屬性連寫

文本樣式:

  • 縮進:text-indent:2px
  • 水平對齊方式(文本、span、a、input、img的父元素):text-align
  • 修飾:text-decoration:underline下劃線/none清除裝飾

行高:line-height:父元素高度 line-height : 1可以取消上下間距

四、背景bgc

背景色background-color、背景圖background-image、背景平鋪background-repeat:no-repeat、背景位置background-position 背景圖大小background-size:cover/contain

連寫:background:color image repeat position

展示圖片的兩種方法:

  • 直接寫上img標簽即可:img標簽是一個標簽,不設置寬高默認會以原尺寸顯示
  • div標簽 + 背景圖片:需要設置div的寬高,因為背景圖片只是裝飾的CSS樣式,不能撐開div標簽

五、元素顯示模式display

塊級元素:

  • 獨占一行、內容決定高度、繼承父寬、可設置寬高
  • div、p、h系列、ul、li、dl、dt、dd、form、header、nav、footer……

行內元素:

  • 一行顯示多個、內容決定寬高、不可以設置寬高
  • a、span 、b、u、i、s、strong、ins、em、del……

行內塊元素:

  • 一行可以顯示多個、可設置寬高
  • input、textarea、img、button、select……

元素顯示模式轉換

拓展1:HTML嵌套規范注意點
拓展2:居中方法總結

六、CSS 特性

繼承性

繼承性的特性是什么?

  • 子元素有默認繼承父元素樣式的特點

有哪些常見屬性可以繼承?

  1. color
  2. font-style、font-weight、font-size、font-family
  3. text-indent、text-align
  4. line-height

常見應用場景:

  • 可以直接給ul設置 list-style:none 屬性,從而去除列表默認的小圓點樣式
  • 直接給body標簽設置統一的font-size,從而統一不同瀏覽器默認文字大小
層疊性
  • 給同一個標簽設置不同的樣式 → 此時樣式會層疊疊加 → 會共同作用在標簽上
  • 給同一個標簽設置相同的樣式 → 此時樣式會層疊覆蓋 → 最終寫在最后的樣式會生效
優先級

特性:不同選擇器具有不同的優先級,優先級高的選擇器樣式會覆蓋優先級低選擇器樣式

  • 繼承 < 通配符選擇器 < 標簽選擇器 < 類選擇器 < id選擇器 < 行內樣式 < !important

注意:!important不能提升繼承的優先級

權重疊加計算:

七、盒子模型

  • CSS 中規定每個盒子分別由:內容區域(content)、內邊距區域(padding)、邊框區域(border)、外邊距區域(margin)構成,這就是 盒子模型

    • 標準(W3C)盒子模型:內容content+填充padding+邊框border+邊界margin
    • 低版本IE盒子模型:內容(content+padding+border)+ 邊界margin
  • box-sizing中比較常用的兩個屬性值為 content-boxborder-box,它可以改變盒子模型的解析計算模式。

    • 當設置box-sizing:content-box時,采用標準模式進行計算,默認就是這種模式width=content;

    • 當設置box-sizing:border-box時,采用怪異模式進行計算width=content+padding+border;

給margin和padding加屬性順序是上右下左

八、偽元素

元素:HTML 設置的標簽

偽元素:由 CSS 模擬出的標簽效果

注意點:

  • 必須設置content屬性才能生效
  • 偽元素默認顯示模式是行內元素

九、浮動

標準流:又稱文檔流,是瀏覽器在渲染顯示網頁內容時默認采用的一套排版規則,規定了應該以何種方式排列元素常見標準流排版規則:

  • 塊級元素:從上往下,垂直布局,獨占一行

  • 行內元素 或 行內塊元素:從左往右,水平布局,空間不夠自動折行

浮動的作用是什么?

  • 早期作用:圖文環繞
  • 現在作用:用于布局,讓垂直布局的盒子變成水平布局,如:一個在左,一個在右

左浮動的屬性是?右浮動的屬性是?

  • 左浮動:float : left
  • 右浮動:float : right

浮動的特點

  1. 浮動元素會脫離標準流(簡稱:脫標),在標準流中不占位置
  • 相當于從地面飄到了空中
  1. 浮動元素比標準流高半個級別,可以覆蓋標準流中的元素
  2. 浮動找浮動,下一個浮動元素會在上一個浮動元素后面左右浮動
  3. 浮動元素有特殊的顯示效果
  • 一行可以顯示多個
  • 可以設置寬高

注意點:
浮動的元素不能通過text-align:center或者margin:0 auto

浮動元素的特點有哪些?

  • 浮動元素會脫標,在標準流中不占位置
  • 浮動元素比標準流高出半個級別,可以覆蓋標準流中的元素,可以清除浮動
  • 浮動找浮動,下一個浮動元素會在上一個浮動元素后面左右浮動
  • 浮動元素有特殊的顯示效果:① 一行可以顯示多個 ② 可以設置寬高

十、定位

網頁常見布局方式

標準流:塊級元素獨占一行 → 垂直布局、行內元素/行內塊元素一行顯示多個 → 水平布局

浮動:可以讓原本垂直布局的 塊級元素變成水平布局

定位:可以讓元素自由的擺放在網頁的任意位置、 一般用于 盒子之間的層疊情況

  • 靜態定位static、相對定位(不脫標)relative、絕對定位(脫標)absolute、固定定位(脫標)fixed
子絕父相

子絕父相的含義是什么?

  • 子元素:絕對定位
  • 父元素:相對定位

子絕父相的應用場景是什么?

  • 讓子元素相對于父元素進行自由移動

子絕父相的好處是什么?

  • 父元素是相對定位,則對網頁布局影響最小

在使用子絕父相的時候,發現父元素已經有絕對定位了,此時直接子絕即可!

十一、樣式補充

精靈圖

精靈圖的優點:減少服務器發送次數,減輕服務器的壓力,提高頁面加載速度

使用精靈圖的步驟是什么?

  1. 創建一個盒子
  2. 設置盒子大小為小圖片大小
  3. 設置精靈圖為盒子的背景圖片
  4. 將小圖片左上角坐標 取負值,設置給盒子的background-position:x y
文字陰影

屬性text-shadow

參數 作用
h-shadow 必須,水平偏移量。允許負值
v-shadow 必須,垂直偏移量。允許負值
blur 可選,模糊度
color 可選,陰影顏色
盒子陰影

屬性box-shadow

參數 作用
h-shadow 必須,水平偏移量。允許負值
v-shadow 必須,垂直偏移量。允許負值
blur 可選,模糊度
color 可選,陰影顏色
spread 可選,陰影擴大
inset 可選,將陰影改為內部陰影
過渡

面試題

1. 讓一個盒子居中常用方法:

  • margin固定寬高居中
  • 子絕父相,上下左右0,margin:auto
  • 子絕父相,left:50%,top50%,margin-left:-50%盒子寬度,margin-top:-50%盒子高度
  • 子絕父相,transform居中,left: 50%,top: 50%,transform: translate(-50%,-50%);
  • 子絕父相對,left: 25%right: 25%,top: 25%,bottom: 25%,margin:auto;
  • flex布局,justify-content: center,align-items: center;

2.清除浮動的方法(最常用的4種)

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

推薦閱讀更多精彩內容