CSS面试题
CSS面试题•
合模型•
盒模型
- W3C标准盒模型:width,height包含content,不包含border和padding
- IE盒模型:width,height包含border和padding(content+border+padding)
- box-sizing:设置是什么模型
- content-box(默认):W3C标准盒模型(content就是content),border,padding会另外加上,导致width和height无法对盒模型的大小进行设置
- border-box:IE盒模型,width和height都是border+padding+content,这样width和height就可以对盒模型的大小进行设置
margin重叠•
相邻的两个盒子或者多个盒子的margin重叠,导致设置margin不符合预期
解决办法
- 底部的元素设置为浮动
float: left - 底部的元素设置脱离文档流
position: absolute/fixed - 统一设置
margin-top/margin-bottom
- 底部的元素设置为浮动
文档流•
标准文档流:元素默认自动从左到右,从上到下的排序方式
块级元素:div,li,h1~h4,p
行内元素:span,a,input,select,textarea,img
定位
- static(默认)
- relative(相对定位,没有脱离文档流,父级元素使用)
- absolute(绝对定位,脱离文档流,子级元素使用)
- fixed(固定到可视视图中的位置,脱离文档流)
- sticky(粘性定位,滚动到特定位置后固定在可视视图的位置,脱离文档流)
优先级•
!important> 内联样式style="color: red;"> id#id> 类.foo/伪类:first-child/属性选择器div[class="foo"]> 标签div, h1> 通配符*
浮动•
为什么要清除浮动•
防止父元素高度坍塌,因为浮动元素脱离文档流,不再占据父元素的高度。如果父元素只包含浮动元素,父元素的高度会是0,从而影响后续的布局
避免后续元素受浮动元素影响
清除浮动•
使用
clear属性
1 | <style> |
使用伪元素清除浮动
1 | <style> |
使用
overfow属性
1 | <style> |
单位•
px:像素,浏览器最小是12px,还想要设置更小的话可以使用
transform:scale(0.8),但是位置可能会不符合预期,可以使用transform-origin: 0 0设置位置的对齐rem:相对单位,相对于html根节点的
font-size的值
元素居中•
水平居中使用
margin: 0 auto(块级元素)、text-align: center(行内元素)flex布局
1 | .container { |
grid布局
1 | .container { |
绝对定位
1 | .container { |
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 许可协议。转载请注明来自 kaze-log!
评论





