【建议收藏】css 常见问题解答

153 阅读2分钟

「这是我参与11月更文挑战的第23天,活动详情查看:2021最后一次更文挑战

css水平、垂直居中的写法

考查的是css的基础知识是否全面,所以平时一定要注意多积累

水平居中

  • 行内元素: text-align: center
  • 块级元素: margin: 0 auto
  • position:absolute +left:50%+ transform:translateX(-50%)
  • display:flex + justify-content: center

垂直居中

  • 设置line-height 等于height
  • position:absolute +top:50%+ transform:translateY(-50%)
  • display:flex + align-items: center
  • display:table+display:table-cell + vertical-align: middle;

画一条0.5px的直线

考查的是css3的transform

height: 1px;
transform: scale(0.5);

calc, support, media各自的含义及用法

@support主要是用于检测浏览器是否支持CSS的某个属性,其实就是条件判断,如果支持某个属性,你可以写一套样式,如果不支持某个属性,你也可以提供另外一套样式作为替补。

calc() 函数用于动态计算长度值。 calc()函数支持 +, -, *, / 运算;

@media 查询,你可以针对不同的媒体类型定义不同的样式。

1rem、1em、1vh、1px各自代表的含义

rem

em

rem 是全部的长度都相对于根元素<html>元素。通常做法是给html元素设置一个字体大小,然后其他元素的长度单位就为rem 。

em

  • 子元素字体大小的em是相对于父元素字体大小
  • 元素的width/height/padding/margin 用em的话是相对于该元素的font-size

vw/vh

全称是 Viewport Width 和 Viewport Height,视窗的宽度和高度,相当于 屏幕宽度和高度的 1%,不过,处理宽度的时候%单位更合适,处理高度的 话 vh 单位更好。

px

px 像素(Pixel)。相对长度单位。像素px是相对于显示器屏幕分辨率而言的。一般电脑的分辨率有{1920*1024}等不同的分辨率。

CSS 多列等高如何实现

  • 利用padding-bottom|margin-bottom正负值相抵,不会影响页面布局的特点。设置父容器设置超出隐藏(overflow: hidden),这样父容器的高度就还是它里面的列没有设定padding-bottom时的高度,当它里面的任一列高度增加了,则父容器的高度被撑到里面最高那列的高度,其他比这列矮的列会用它们的padding-bottom补偿这部分高度差。

  • 利用table-cell所有单元格高度都相等的特性,来实现多列等高。

  • 利用flex布局中项目align-items属性默认为stretch,如果项目未设置高度或设为auto,将占满整个容器的高度 的特性,来实现多列等高。

总结

这是css常见的几道面试题,实际面试中,可能css并不是重要侧重点,但却是实际工作中不可避免的一些技巧,后续会持续更新~~