css面試題積累
1、標準盒子模型
1、標準的盒子模型是:content + padding + border 一般 width和height 指的是 content區域的寬高
2、flex伸縮盒子模型
2、盒子水平垂直居中
1、必須知道元素的寬高,而且要知道具體的寬高 body{ position: relative } .box{ position: assolute; top: 50%; left: 50%; margin-top: -25px; margin-left: -25px } 2、必須知道元素的寬高 .box { position: absolute; top:0; left: 0; right: 0; bottom: 0; margin: auto } 3、 body { display: flex; justify-content: center; align-items: center; }
3、display取值
none、block、inline、inline-block、table、flex、inherit(表示從父級那繼承這個屬性)
4、對 html5 的理解
1、語義化標籤類
2、音視訊處理 audio、vudio
3、history API
4、畫布 canvas 等等
5、什麼是語義化標籤
標籤有自己的含義,通過標籤就能知道標籤裡面的內容
h5常用的語義化標籤:section、article、header、footer、main、canvas、video、audio
6、display:none vs visibility:hidden
這兩者的區別:
visibility 只是把元素隱藏起來了,元素所佔的位置還是在的
display 是把元素從渲染中直接移除掉
7、讓一個元素隱藏的方式
- opacity:設定透明度
- visibility:hidden
- display:none
- x-index:-1
8、塊級、行內、行內塊元素
- 塊級元素(block):div、p、h1、ui、li、table、hr
- 獨佔一行,不能和其他任何元素並列
- 能設定寬高。不設定的話預設變成父級的寬高
- margin和padding上下左右都是有效的
- 行內元素(inline):span、img、a、input、button、select、textarea
- 與其他行內元素並排
- 不能設定寬高,預設的寬度就是元素的寬度
- margin 左右無效上下有效,padding上下左右都有效
- 行內塊元素(inline-block)
- 與相鄰的行內塊元素才能在同一行
- 寬高、margin、padding都是有效的
- 預設寬度就是它本身內容的寬度
- 可以使用 display 屬性可以在這三種類型中任意切換
9、可以繼承的樣式屬性
不可繼承的屬性太多了,可以繼承的屬性很少,只有顏色,文字,字型間距行高對齊方式,和列表的樣式可以繼承。
https://www.cnblogs.com/jinyu59/p/10714543.html
10、css的書寫方式
內聯樣式
<p style="color: sienna; margin-left: 20px">
This is a paragraph
</p>
內部樣式
<head> <style type="text/css"> hr {color: sienna;} p {margin-left: 20px;} body {background-image: url("images/back40.gif");} </style> </head>
外部樣式
<head> <link rel="stylesheet" type="text/css" href="mystyle.css" /> </head>
優先順序: 外部樣式 < 內部樣式表 < 內聯樣式表;
11、css link 和 import 的區別 https://www.cnblogs.com/my--sunshine/p/6872224.html
載入順序區別
載入頁面時,link標籤引入的 CSS 被同時載入;@import引入的 CSS 將在頁面載入完畢後被載入。
相容性區別
@import
是 CSS2.1 才有的語法,故只可在 IE5+ 才能識別;link
標籤作為 HTML 元素,不存在相容性問題。
權重區別(該項有爭議)
link
引入的樣式權重大於@import
引入的樣式。