面试题-css篇

878 阅读2分钟

1. 盒子模型都有什么,解释下box-sizing属性(一定要会,问到好几次)

Css中将每个元素都设置成了一个矩形的盒子,页面的布局也就成了不同的盒子摆放到相应的位置,每个盒子都有内容区(content)、内边距(padding)、边框(border)、外边距(margin)组成,而IE的盒子模型区别于W3C盒子模型,它的content包含了padding和border。此外box-sizing可以设置盒子尺寸的计算方式,可选值有content-box--宽度高度用来设置内容区的大小,border-box--宽度高度用来设置整个盒子可见框的大小。

2. 选择器的权重(必须要会)

内联样式 > id选择器 > 类和伪类选择器 > 元素选择器 > 通配选择器

3. 清除浮动(适当背一些)

  • 额外标签法--就给父元素的末尾添加一个空标签,写上clear: both;
  • 父级添加overflow属性方法触发BFC--overflowhidden | auto | scroll 都可以实现。能清除浮动,但也是溢出隐藏。
  • after伪元素清除浮动--先写好下面的类,然后给需要清除浮动影响的父元素添加类就可以了,原理是:找到有clearfix这个类的元素,在他内容的最后面添加一个空的块级元素,然后为这个块级元素添加清除浮动的属性。
  • 父元素末尾设置<br clear="all" />
  • 给父元素设置display:table

 

4. 盒子水平垂直居中(适当背一些)

  • Position:absolute 需要知道子盒子具体宽高

    • 大盒子relative;小盒子absolute,topleft 50%,margintopleft-小盒宽度一半
  • Margin:auto 宽高得有

    • 同上,top、right、left、bottom:0,margin:auto;
  • Transform

    • 同上,topleft:50%,tansform:translate(-50%,-50%)
  • Display:flex

    • Display:flex; justify-content:center; align-items:center;
  • Display:table-cell

    • 控制文本display:inline-block
  • Js实现

    • Box.style.position=‘absolute’
    • Box.style.left/right=’(winW-boxH/W)/2+’PX’ ’

 

5. Css3新特性(这个要背一些)

  • Box-shadow
  • Box-radius
  • css3选择器 last-child、nth-child
  • 渐变
  • 弹性盒flex
  • 过渡、动画、变形

6. flex布局(这个要会)

  • Flex是css中一种布局手段,主要用来代替浮动,flex可以使元素具有弹性,让元素可以跟随页面的大小的改变而改变;
  • 弹性容器和弹性元素
  • 容器属性有flex-direction,flex-wrap换行,justify-content分配空白
  • 元素属性有flex-grow伸展系数、flex-shrimk收缩系数、flex-basis基础长度、order排列顺序