天天看點

bootstrap5源碼解讀

########################

bootstrap5源碼解讀

001:規定字元集和自定義全局屬性

bootstrap5源碼解讀
  • (1)@charset  "UTF-8":聲明該css檔案的編碼為UTF-8:
  • (2):root {}:在根元素html中聲明自定義屬性,這樣其他任何元素都可使用這些自定義屬性:

002:全局配置元素高度和寬度的計算标準

bootstrap5源碼解讀
  • (1)box-sizing: content-box|border-box|initial|inherit。當box-sizing為border-box時,表示對元素指定寬度和高度包括了 padding 和 border,這樣更友善;當box-sizing為content-box時,表示對元素指定寬度和高度不包括 padding 和 border,這是預設值;
  • (2)* 表示了頁面所有元素,但不包含*::before和*::after所表示的,是以這裡還加上了*::before和*::after插入的内容,這樣就覆寫完了

003:給根元素html開啟平滑過渡

bootstrap5源碼解讀
  • (1)scroll-behavior: smooth; 該屬性指定當使用者單擊可卷軸欄中的連結時,可平滑地設定滾動位置動畫,效果更好;而不是預設值為auto所表示的直線跳躍,顯得直棒棒地,過于簡陋了,是以設定為smooth最佳,而不是預設值auto
  • (2)@media媒體查詢中的prefers-reduced-motion: no-preference,表示使用者的系統沒有開啟動畫減弱功能的情況下;當prefers-reduced-motion為​

    ​reduce時,​

    ​表示使用者修改了系統設定,将動畫效果最小化,極少有人這麼去幹,是以大部分情況下就是全局開啟平滑過渡。
bootstrap5源碼解讀

004:配置body元素的外邊距、字型、背景顔色、文本顔色

bootstrap5源碼解讀
  • (1)外邊距為0,那就是沒得外邊距;
  • (2)行高為1.5rem,即為頁面字型的1.5倍的行間距;
  • (3)字型設定:字型的名稱(較多)和大小(1rem),文本的粗細、顔色rgb(33, 37, 41)、對齊方式(左對齊);
  • (4)背景顔色,就是純白色rgb(255, 255, 255);

注意:但是這裡定義文本對齊方式卻是不必要,因為這個--bs-body-text-align自定義屬性沒有給定具體值,那就是預設值了,即左對齊方式。對齊方式有左中右兩邊:text-align: left|right|center|justify|initial|inherit;  官方issue在這裡:​​https://github.com/twbs/bootstrap/issues/35338​​

005:

bootstrap5源碼解讀

 006:水準線元素:

bootstrap5源碼解讀
/*選中非段落元素*/
:not(p)
{
}      
/*選中div裡面非首個、非最後一個的中間p元素*/
div p:not(:first-child):not(:last-child){
}      
table tbody tr:not(:first-child):not(:last-child) td
{
     text-align: right;
}

/* 以上代碼可以選擇table表格中tbody部分非首個、非最後一個的tr,并設定其子元素td文本樣式居右 */