CSS筆記

CSS學(xué)習(xí)筆記

HTML與CSS布局

1、html布局標(biāo)簽:

推薦使用有具體語義的標(biāo)簽,而不是一味的使用div。

頭部標(biāo)簽:header,適用于一個(gè)區(qū)域頭部的內(nèi)容。

底部標(biāo)簽:footer,適用于一個(gè)區(qū)域底部的內(nèi)容。

主標(biāo)簽:main,控制頁面主要內(nèi)容區(qū)域。

導(dǎo)航標(biāo)簽:nav

內(nèi)容標(biāo)簽:article,適用于獨(dú)立的內(nèi)容區(qū)域。

局部標(biāo)簽:section,適用于內(nèi)容區(qū)域很多相似區(qū)域的組合,與ul,li類似。

掛件標(biāo)簽:aside,適用于掛件區(qū)域,側(cè)邊欄。

2、html文本標(biāo)簽

段落標(biāo)簽:p

換行標(biāo)簽:br

水平線標(biāo)簽:hr

無語義的文件標(biāo)簽:span

申明一段文本采用標(biāo)簽:small

時(shí)間標(biāo)簽:time

進(jìn)度條標(biāo)簽:progress

強(qiáng)調(diào)標(biāo)簽:strong

3、盒子模型

外邊距:margin(上右下左)一個(gè)控制四個(gè)邊,兩個(gè):第一個(gè)控制上下,第二個(gè)控制左右

內(nèi)邊距:padding(同上)

邊線:border(樣式寬度顏色)

盒子居中,margin:0 auto

外邊距可以有負(fù)值

邊距合并:如果有一個(gè)向下的邊距,一個(gè)向上的邊距,實(shí)際的邊距是取這兩個(gè)邊距的我最大值。

控制div大?。翰皇軆?nèi)邊距的影響,box-sizing:border-box。

圓角:border-radius屬性

輪廓線:outline

溢出:overflow:scroll(滾動(dòng)條),overflow:auto(內(nèi)容裝不下顯示滾動(dòng)條,顯示的我下不顯示滾動(dòng)條)

文本溢出顯示點(diǎn)點(diǎn):三個(gè)屬性控制,overflow:hidden,white-space:nowrap,text-overflow:ellipsis。

盒子大小控制:max-width,min-width,max-height,min-height

塊級(jí)元素?fù)螡M父級(jí)元素:height:fill-available

行級(jí)元素?fù)螡M父級(jí)元素:首先講行級(jí)元素變成塊級(jí)元素然后進(jìn)行操作。display:inline-block height:fill-available weight:fill-available

寬度隨內(nèi)容自適應(yīng):width:fit-content

盒子根據(jù)內(nèi)容尺寸自適應(yīng):父級(jí)元素,width:max-content,width:min-content

文本縮進(jìn):text-indent

盒子陰影:box-shadow:

4、選擇器

選擇器是快速找到頁面中的元素,并對(duì)其進(jìn)行操作。

結(jié)構(gòu)選擇器:空格表示后代,包括子代孫代等,>表示子代。

后代選擇器:作用于某一類元素

main article section

子代選擇器:作用于特定的元素

main article>section

兄弟選擇器:作用于同一級(jí)別的元素

main article h1~h2

main article h1+h2(作用于臨近h1的h2)

屬性選擇器:

h1[title]? h1[title="name"]

偽類選擇器:結(jié)構(gòu)

div :first-child(div后代里面的第一個(gè)元素)

div>:first-child(div中的第一個(gè)元素)

div h1:first-of-type(div中類型為h1的第一個(gè)元素)

div :nth-child (1) (元素編號(hào))

div h1:nth-of-type (1) (與上面一樣)

input:checked+label(表示input選中緊挨著的label元素)

input:valid(驗(yàn)證有效)

input:invalid(驗(yàn)證無效)

table tr:nth-child (odd) (奇數(shù)行)

table tr:nth-child (even) (偶數(shù)行)

5、背景與漸變

?? 背景顏色:background-color

?? 背景圖片:background-image

?? 背景裁切:background-clip

?? 背景重復(fù):background-repeat

?? 背景固定:background-attachment

?? 背景定位:background-position

?? 背景尺寸:background-size

?? 線性漸變:background:linear-gradient(90deg,red,yellow,blue)

?? 鏡像漸變:background:radial-gradient(10px10px,red,green,blue)

? ?標(biāo)志位:background:linear-gradient(45deg,red50%,green 50%)

6、Float(浮動(dòng))

行級(jí)元素float之后會(huì)變成塊級(jí)元素。

清除浮動(dòng):clear:

父級(jí)div中含有兩個(gè)子級(jí)div,兩個(gè)子級(jí)div采用浮動(dòng),如果不設(shè)定父級(jí)div的高度,父級(jí)則無法感知子級(jí)div的高度。如何不設(shè)定父級(jí)div的高度解決這個(gè)問題?

(1)兩個(gè)子級(jí)div后再設(shè)定一個(gè)塊級(jí)標(biāo)簽,將其清除浮動(dòng),那么父級(jí)能夠感知其位置,則自然能夠適應(yīng)上面兩個(gè)子級(jí)div的高度。

(2)采用偽類元素方法,在父級(jí)元素之后追加一個(gè)內(nèi)容,將其清除浮動(dòng),并設(shè)置為塊級(jí)元素。main::after{content:"",display:block,clear:both}

(3)觸發(fā)BFC機(jī)制:在父級(jí)元素中設(shè)置:overflow:hidden或者overflow:auto

7、定位

??? 相對(duì)定位:position:relactive,其空間位是保留的。相對(duì)于原來的位置進(jìn)行偏移操作。

絕對(duì)定位:position:absolute,其空間位是丟失的。默認(rèn)情況下是參照頁面進(jìn)行偏移,如果想要其沒有那么靈活,則需要對(duì)其父元素也設(shè)定定位屬性,那么子元素就會(huì)參照父元素的位置進(jìn)行偏移操作。

如果子元素沒有設(shè)定寬度和高度,父元素和子元素都設(shè)定了定位元素,那么可以改變子元素的尺寸。

如果子元素相對(duì)于父元素進(jìn)行定位,如果父元素有滾動(dòng)條的時(shí)候,那么子元素也會(huì)跟著滾動(dòng)條進(jìn)行滾動(dòng)。

定位元素遇到多個(gè)div層疊時(shí)候,需要z-index屬性來控制疊層的優(yōu)先級(jí),一般定位元素的優(yōu)先級(jí)大于非定位元素,多個(gè)定位元素,后加載的定位元素優(yōu)先級(jí)大于先加載。

粘性定位:position:sticky top:0 將其定位到父元素的頂部。

固定定位:position:fixed,參照頁面進(jìn)行偏移,將元素固定在頁面的某個(gè)位置。

8、彈性盒子

? (1)基本元素:盒子和元素,彈性盒子模型解決的就是如何將元素放到盒子里面。

?? (2)普通盒子變成彈性盒子display:flex

? (3)彈性盒子布局的方向

?? 行排列:flex-direction:row/row-reverse

?? 列排列:flex-direction:column/column-reverse

? (4)彈性盒子的元素,默認(rèn)會(huì)隨著彈性盒子的大小進(jìn)行壓縮,如果不讓其壓縮,則可以換行排列,屬性:flex-wrap:wrap

? (5)元素控制方向和折行屬性:flex-flow:row wrap

? (6)主軸對(duì)齊方式:justify-content:flex-start/flex-end/center/space-between/space-around/space-evenly(主軸的開始/主軸的結(jié)尾/中間/兩端對(duì)齊/左右兩邊等邊距/完全平均分配)

? (7)交叉軸對(duì)齊方式:align-items:flex-start/flex-end/center/stretch(交叉軸開始/結(jié)尾/中間/拉稱)

? (8)換行交叉軸對(duì)齊方式:align-content:flex-start/flex-end/center/space-between/space-around(只適用于多行顯示的彈性容器,它的作用是當(dāng)flex容器在交叉軸上有多余的空間時(shí),對(duì)元素的對(duì)齊處理。)

?(9)單個(gè)元素對(duì)齊方式(設(shè)置的是彈性盒子里面的元素):align-self:flex-start/flex-end/center/stretch(拉撐時(shí)高度不能夠設(shè)置固定)

?(10)元素可用空間的分配:元素自動(dòng)占滿剩余的彈性盒子:flex-grow:1(如果存在多個(gè)元素則多個(gè)元素平均分配)每個(gè)元素1等份flex-grow:0默認(rèn)大小。

?(11)元素縮?。篺lex-shrink:0/1/2不縮小,每個(gè)元素都是指定的寬度或者高度。其計(jì)算方式每個(gè)元素的寬度和高度之和減去彈性盒子寬度或者高度剩余下來的除以flex-shrink之和,每個(gè)元素縮小的寬度和高度就可以知道。

?(12)彈性元素組合定義:flex-grow,flex-shrink,flex-basis(主軸基準(zhǔn)尺寸類似于寬度和高度,優(yōu)先級(jí)大于寬度和高度,小于最大寬度高度)flex:1 2 200px

?(13)元素的排列順序:order 默認(rèn)都是0順序越大越靠后。

9、柵格布局

(1)柵格布局就是使用水平線和垂直線劃好的一塊一塊的小格子。首先是容器,然后是柵格,最后是柵格里的元素。

(2)柵格屬性:display:grid。

(3)水平線屬性:grid-template-rows:repeat(5,20%),垂直線屬性:grid-template-columns:repeat(5,20%)。一般推薦重復(fù)形式,也可以直接寫數(shù)值。

(4)繪制柵格的方法:

?? 1)數(shù)值法,grid-template-rows:50px 50px

?? 2)重復(fù)法,grid-template-rows:repeat(2,50%)

?? 3)自動(dòng)填充法:grid-template-rows:repeat(auto-fill,100px)

?? 4)比例法:grid-template-rows:repeat(3,1fr)

?? 5)限定法:控制柵格的水平方向或者垂直方向的范圍:grid-template-rows:repeat(2,minmax(50px,100px))

(5)柵格間距屬性:row-gap:5px, column-gap:5px,gap:5px 5px。

(6)控制元素在柵格中的位置:

?? 1)柵格線編號(hào)法:grid-row-start(行開始)grid-row-end(行結(jié)束)grid-column-start(列開始)grid-column-end(列結(jié)束)

簡(jiǎn)寫方式:grid-row: 1/2 grid-column:1/2

?? 2)柵格命名法:grid-template-row:repeat(3 [r-start] 1fr [r-end]),

grid-template-column:repeat(3 [c-start] 1fr [c-end])

grid-row-start:r-start 1(列同上)

grid-row-end:r-end 1(列同上)

簡(jiǎn)寫方式:

? 3)偏移量法:偏移量法是首先確定元素行的開始位置和列的開始位置,然后進(jìn)行偏移確定所占的空間。

grid-row-start:2 grid-column-start:2

grid-row-end:span 3 grid-column-end:span 3

簡(jiǎn)寫方式:grid-row:1/span 1 grid-column:1/span 3

? 4)區(qū)域定位法:與邊線法類似,都是控制邊線,grid-area:2/2/3/3(行的開始/列的開始/行的結(jié)束/列的結(jié)束)(上左下右)

? 5)區(qū)域命名法:首先畫好柵格,然后對(duì)柵格每一塊區(qū)域進(jìn)行命名。grid-template-area:"header

header" "nav main" "footer footer"(該法是對(duì)每一行的柵格進(jìn)行命名)然后根據(jù)grid-area指定元素所在的區(qū)域,grid-area:header,footer,nav,main,復(fù)雜的布局可以柵格里面在進(jìn)行柵格劃分。

? 6)區(qū)域占位,柵格劃好之后,如果想對(duì)指定區(qū)域不需要進(jìn)行合并,則不需要對(duì)區(qū)域進(jìn)行命名,可以采用.進(jìn)行占位。grid-template-area:“. .”“. .”“footer footer”

(7)柵格的流動(dòng)方向:柵格默認(rèn)的流動(dòng)方向是從左到右,從上到下。行排列。

grid-auto-flow:row

(8)柵格對(duì)齊的方式:如果柵格不占滿整行或者整列,則需要考慮其對(duì)齊方式,對(duì)齊方式與彈性盒子類似,水平對(duì)齊方式:justify-content:start/center/end/space-around/space-between/space-evenly,

垂直對(duì)齊方式:align-content:start/center/end/space-around/space-between/space-evenly簡(jiǎn)寫:place-content:center end(垂直方向 水平方向)

(9)柵格元素的對(duì)齊方式:元素水平對(duì)齊方式:justify-items:start/end/center/stretch(開始/結(jié)束/中間/拉撐)元素垂直對(duì)齊方式:

align-items:start/end/center/stretch(開始/結(jié)束/中間/拉撐)簡(jiǎn)寫:place-items:center end(垂直方向 水平方向)

(10)柵格元素獨(dú)立控制對(duì)齊方式:水平獨(dú)立控制:justify-self:

start/end/center(開始/結(jié)束/中間)垂直獨(dú)立控制:align-self:

start/end/center(開始/結(jié)束/中間)簡(jiǎn)寫:place-self:center end(垂直方向 水平方向)

10、變形與透視

(1)移動(dòng)

屬性:transform:translateX()

/translateY() /translate3d(x,y,z)向X軸或者Y軸或者3D進(jìn)行移動(dòng)。transition:移動(dòng)過程。簡(jiǎn)寫:transform:translate(x軸移動(dòng)量,y軸移動(dòng)量)

控制。

(2)縮放

屬性:transform:scaleX()/scaleY()簡(jiǎn)寫:scale(x,y) ??s放Z軸是將父元素的Z軸的我距離進(jìn)行放大或者縮小,因此作用在父元素上。transform:scaleZ() 。簡(jiǎn)寫:transform:scale3d(x,y,z) 作用在父元素上。

(3)旋轉(zhuǎn)

屬性:transform:rotateX()

/rotateY()/rotate Z() 簡(jiǎn)寫:transform:rotate3d(1,0,0,90deg) 3d中表示的是xyz旋轉(zhuǎn)的向量,向量越大,旋轉(zhuǎn)的力度就越大,后面表示旋轉(zhuǎn)角度。

(4)傾斜

屬性:transform:skewX()

/skewY() 簡(jiǎn)寫:skew(45deg,45deg)

(5)參考基點(diǎn)

2D基點(diǎn)屬性:transform-origin:left top/50%50%

3D基點(diǎn)屬性:transform-origin:left top 100px,由于Z軸無窮大,因此只能用數(shù)值表示。

(6)透視

基本屬性:transform:perspective(100px)

3d樣式:transform-style:preserve-3d

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.選擇父元素的子元素,除去最后一個(gè) 2.文本溢出a.文本溢出顯示省略號(hào) b.讓文本顯示兩行,溢出部分省略號(hào)顯示 ...
    mikixing閱讀 426評(píng)論 0 0
  • web端彈性盒子知識(shí)點(diǎn) 彈性容器屬性 flex-direction 值:row | row-reverse | c...
    hammercui閱讀 347評(píng)論 0 1
  • CSS(Cascading Style Sheets),層疊樣式表。 基本格式 CSS注釋 引入樣式表 行內(nèi)樣式表...
    猛獨(dú)閱讀 379評(píng)論 1 0
  • 尋根溯源話布局 一切都始于這樣一個(gè)問題:怎樣通過 CSS 簡(jiǎn)單而優(yōu)雅的實(shí)現(xiàn)水平、垂直同時(shí)居中。記得剛開始學(xué)習(xí) CS...
    Gaizka閱讀 20,817評(píng)論 9 19
  • 概念 flex container(flex容器) 任何一個(gè)HTML元素都可以指定成flex布局(display:...
    梁同學(xué)de自言自語閱讀 927評(píng)論 0 0

友情鏈接更多精彩內(nèi)容