答:html5增長的新特性具體爲:css
答:z-index是用於設置標籤的層級關係,使用z-index的時候須要同時設置標籤的position屬性(如relative或者absolute或者fixed均可),標籤的默認z-index爲0,能夠設置負數,值越大,越在頂部html
答:position是css的定位屬性,其主要包括如下幾個不一樣的屬性值,具體以下:前端
生成絕對定位的元素,相對於 static 定位之外的第一個父元素進行定位。
元素的位置經過 「left」, 「top」, 「right」 以及 「bottom」 屬性進行規定。 vue
生成絕對定位的元素,相對於瀏覽器窗口進行定位。
元素的位置經過 「left」, 「top」, 「right」 以及 「bottom」 屬性進行規定。 html5
生成相對定位的元素,相對於其正常位置進行定位。
所以,」left:20」 會向元素的 left 位置添加 20 像素。 react
默認值。沒有定位,元素出如今正常的流中(忽略 top, bottom, left, right 或者 z-index 聲明)。 css3
規定應該從父元素繼承 position 屬性的值。es6
答:屬性定義元素在哪一個方向浮動。以往這個屬性總應用於圖像,使文本圍繞在圖像周圍,不過在 CSS 中,任何元素均可以浮動。浮動元素會生成一個塊級框,而不論它自己是何種元素。具體以下:canvas
答:float會形成文檔流的破壞,所以,須要消除float所形成的影響通常有以下幾種方案解決:數組
答:製做一個三角形能夠直接使用border的屬性,具體爲能夠設置盒子的高寬度爲0px,而後設置對應寬度的不一樣border的顏色屬性,三角形對應的底邊設置爲具體的三角形顏色,其對應變不設置或者設置爲寬度爲0 另外兩個斜邊設置爲transparent
旋轉動畫會涉及到css的兩個屬性,分別爲:
1)transition:動畫屬性,能夠寫四個值 分別爲對應動畫的屬性名稱或者直接設置all、動畫完成的時間(單位爲s或者ms)、動畫的變化曲線、動畫開始的時間
2)transform:旋轉屬性 主要有rotate(弧度旋轉分別還有rotate3d,rotateX,rotateY,rotateZ),translate(同理有四個),scale(同理有四個)
答:盒子模型主要是計算標籤的寬度或高度不一致,標準的盒子模型的包括:margin,border,padding以及內容的寬度,即:盒子的實際寬度=內容的左右margin+左右border+左右padding+內容的實際寬度;而在css3中引入了box-sizing屬性,能夠改變標準盒子模型的計算方式,具體爲:設置box-sizing:border-box的時候,盒子的實際寬度=內容的左右margin+內容的實際寬度,固然能夠直接設置box-sizing:content-box的時候便可恢復正常的標準盒子模型
答:1.設置盒子的display屬性爲flex,或者line-flex,其對應還有六個css屬性,分別爲:
1)flex-direction:設置子元素的排列方式(row,column,row-reverse,column-reverse)
2)flex-warp:設置子元素的是否換行(nowarp,warp,warp-reverse)
3)flex-flow:flex-direction和flex-warp的縮寫,默認爲row nowarp
4)justify-content:設置子元素的水平排列方式(flex-start,flex-end,center,span-around,span-between)
5)align-items:設置子元素的垂直方式(flex-start,flex-end,center,stretch,baseline)
6)align-content:設置多個軸線的排列方式(flex-start,flex-end,center,spand-around,spand-between,stretch)
2. 對應的子元素項目也擁有自身的六個css屬性,分別爲:
1)order:設置元素的排列權重 值越大越在後
2)flex-grow:設置元素的放大比例
3)flex-shrink:設置元素的縮小比例
4)flex-basis:設置多餘空間項目主軸所佔比例空間
5)flex:flex-grow和flex-shrink和flex-basis的縮寫方式 默認爲0 1 auto
6)align-self:設置子元素本身的垂直排列方式,默認爲盒子的align-items的值
⚠️:設置flex佈局後,子元素的float,clear,vertical-align都無效
答:1. 設置盒子的網格佈局須要設置display爲grid或者line-grid,其對應包括如下屬性:
1)grid-template-columns:定義每一列的寬度
2)grid-template-rows:定義每一行的高度
3)grid-row-gap:定義行之間的間隙
4)grid-column-gap:定義列之間的間隙
5)grid-gap:定義行和列之間的間隙縮寫
6)grid-teamplate-areas:定義一個區域由多個單元格組成
7)grid-auto-flow:定義容器排列順序
8)justify-items:定義子元素的內容水平排列順序
9)align-items:定義子元素的內容垂直排列順序
10)place-items:定義子元素的內容水平和垂直順序的縮寫方式
11)justify-content:定義容器(網格)的水平排列順序
12)align-content:定義容器(網格)的垂直排列順序
13)place-content:定義容器的水平和垂直排列順序的縮寫方式
2. 子元素的屬性包括:
1)grid-column-start:列開始的位置
2)grid-column-end:列結束的位置
3)grid-row-start:行開始的位置
4)grid-row-end:行結束的位置
5)grid-column:列開始和結束位置
6)grid-row:行開始和結束的位置
7)grid-area:定義元素放置在哪一個區域
8)justify-self:定義元素本身的水平排列方式
9)align-self:定義元素本身的垂直排列方式
10)place-self:定義元素本身的水平和垂直排列方式
⚠️:當設置爲網格佈局後,子元素的float,inline-block,table-cell,column-*屬性所有失效
答:1. 行內元素水平居中:直接使用text-align:center
2. 行內元素垂直居中:vertical-align:middle並設置父級元素的行高爲父級元素的高度
3. 固定寬度的元素 水平居中使用:magin:0 auto
4. flex彈性佈局:設置justify-content:center水平居中,align-items:垂直居中
5. 經過padding屬性進行垂直居中
6. 設置父級元素爲:display:table-cell,vertical-align:middle
7. 經過僞元素設置垂直居中:設置父級元素一個僞元素 並設置其爲inline-block,同時設置vertical-align:middle
8. 高度肯定的時候:絕對定位+margin來垂直居中
9. 高度不肯定的時候:絕對定位+transform,具體爲:設置須要垂直居中的元素爲:position:absolute,top:50%,transform:translateY(-50%)
10. 經過flex-duration:column來垂直居中:display:flex,flex-duration:column,justify-content:center
水平垂直居中方法:
1. 父級元素高度已知,子元素高寬固定(高度可不固定):text-align:center,line-height:父級高度
2.絕對定位+margin實現垂直水平居中,須要知道子元素高寬度
3. 絕對定位+transform實現垂直水平居中,能夠不知道子元素高寬度:position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)
4. 使用display爲table,子元素爲display:table-cell;vertical-align:center;text-align:center子子元素設置爲vertical-align:center
5. 使用父元素的僞元素進行垂直居中(父元素須要知道高度),設置僞元素的高度爲100%,並設置vertical-align:middle,display:inline-block;子元素設置vertical-align:center;display:inline-block(子元素水平居中能夠採用text-align:center或者margin:0 auto)
6. 子元素設置爲margin:auto;position:absolute;top:0;left:0;right:0;bottom:0;
::before和::after下特有的content,用於在css渲染中向元素邏輯上的頭部或尾部添加內容。
這些添加不會出如今DOM中,不會改變文檔內容,不可複製,僅僅是在css渲染層加入。
因此不要用:before或:after展現有實際意義的內容,儘可能使用它們顯示修飾性內容,例如圖標
答:通配符選擇器,標籤選擇器,類選擇器,id選擇器,屬性選擇器,空格選擇器 大於選擇器 加號選擇器
答:不論是標準模式仍是box-sizing模式下,padding都爲元素的總寬度是部分,因此此時div的表現爲對應div的顏色
答:margin在使用的時候由於會出現相鄰兩個標籤之間的margin進行合併,即設置上下兩個標籤的margin-top和margin-bottom的時候,會進行自動的合併,以最大的那個屬性值爲二者之間的實際間隔
答:常見的有:border-radius:設置標籤的圓角;box-shadow:設置陰影,box-sizing:改變盒子模型等
Less環境較Sass簡單
Sass的安裝須要安裝Ruby環境,Less基於Javascript,是須要引入Less.js來處理代碼輸出css到瀏覽器,也能夠在開發環節使用Less,而後編譯成css文件,直接放在項目中。
Less使用較Sass簡單
Less並無裁剪CSS原有的特性,而是在現有CSS語法的基礎上,爲CSS加入程序式語言的特性。
Sass功能較Less強大
一、sass有變量和做用域
二、sass有函數的概念
三、進程控制:條件、循環遍歷、繼承、引用
四、數據結構:數組、map
Less和Sass處理機制不同
前者是經過客戶端處理的,後者是經過服務端處理,相比較之下前者解析會比後者慢一點。
關於變量在Less和Sass中的惟一區別就是Less用@,Sass用$
Less和Sass在語法上有些共性,好比下面這些:
一、混入(Mixins)——class中的class;
二、參數混入——能夠傳遞參數的class,就像函數同樣;
三、嵌套規則——Class中嵌套class,從而減小重複的代碼;
四、運算——CSS中用上數學;
五、顏色功能——能夠編輯顏色;
六、名字空間(namespace)——分組樣式,從而能夠被調用;
七、做用域——局部修改樣式;
八、JavaScript 賦值——在CSS中使用JavaScript表達式賦值。
固然,在涉及到css的時候還會詢問有關css預處理語言,如less,scss等,可自行查看相應的資料,在此不作過多的講解