CSS前端面试题(持续更新)

目录

怎么清除浮动

什么是BFC

实现水平垂直居中

简述flex弹性布局

 简述动画

 float和position:absolute的区别

CSS选择器有哪些

rgba和opacity的区别

 如何清除inline-block产生的间隙

两种盒模型

 哪些属性可以继承,哪些不可以

 position和float谁的优先级更高

 元素的高设置百分比是相对于谁的

画小于1px的线/在chorme浏览器中使用小于12px的字体

 两栏布局高度/宽度自适应

 rem和em的区别

 link和@import的区别


 css3有哪些新特性

  • 选择器 / 动画 / transform / transition / flex布局 / 阴影圆角 / rgba /  媒体查询

HTML5有哪些新特性

  •  媒体元素video / audio
  • 更好的语义化标签header / footer / article / nav等
  • 更多表单控件data / email / search等
  • 本地存储localStorage / sessionStorage
  • 绘画canvas

什么是语义化

  • H5语义化让页面结构更加清晰,即使没有CSS样式依然以文档的格式显示,易于阅读
  • 爬虫依赖标签来确定上下文,所以语义化标签更利于SEO 

HTML / XHTML的区别

  • XHTML可以兼容各大浏览器,手机平板等
  • XHTML区分大小写,必须有根元素

怎么清除浮动

  • 父元素添加属性overflow:hidden(触发了BFC)
  • 在最后一个浮动元素后边添加一个元素,给该元素设置clear:both
  • 使用伪元素after,给after设置clear:both 

什么是BFC

  • BFC:块级格式化上下文,属于普通流,规定了元素的布局方式。元素按照先后顺序自上而下布局,行内元素水平排列,块级元素单独成行

  • 什么情况会触发BFC
    • body根元素
    • float不是none
    • overflow不是visible
    • position:absolute/ fixed
    • display:inline-block/ table-cells/ flex

  • BFC的作用
    • 解决外边距折叠
    • 清除浮动,解决浮动导致的高度塌陷
    • 设置两栏布局一边固定宽度另一边自适应
    • 避免文字环绕

实现水平垂直居中

  • 水平居中
    • 块级元素:margin:0 auto
    • 内联块:text-align:center
    • 内联元素:text-align:center

  • 垂直居中
    • 内联块:父元素line-height,子元素vertical-align
    • 内联元素:父元素line-height

  • 同时实现水平垂直剧居中
    • 子元素设置position:absolute,设置上下左右
      • 设置上下左右均为0,之后再设置margin: 0 auto也可以实现水平居中
    • 使用flex布局

简述flex弹性布局

  • 容器相关属性
    • 主轴排列方向           flex-direction
    • 是否折行                  flex-wrap
    • 以上两个的简写       flex-flow
    • 主轴对齐方式           justify-content
    • 交叉轴对齐方式       align-items

  • 项目相关属性
    • 放大比例                  flex-grow
    • 缩小比例                  flex-shrink
    • 原本的比例               flex-basis
    • 以上三个的简写        flex
    • 单独对齐方式           align-self/justify-self

 简述动画

  • animation: 动画名,时长,速度,延迟,次数
    • 不需要动作触发
    • 需要搭配keyframe,keyframe可以使用百分比和from/to两种形式

  • transition: 过渡属性,时长,速度,延迟
    • 需要动作触发
    • transition只有开始和结束两种状态,多次执行需要多次触发

  • step(分割段数,开始帧)逐帧动画
    • 参数end表示动画开始先执行第一帧,start表示动画开始第一帧已执行完毕

 float和position:absolute的区别

  • float浮动是脱离文档流,相对于原来的位置浮动,还在父容器内
  • position:absolute脱离文档流后,相对于最近的一个设置了position的父元素定位,有可能根本不在原来的父容器内了

CSS选择器有哪些

  • 通用选择器( * ):所有标签都起作用
  • 类型选择器( 标签 ):一类标签起作用,如只对p标签起作用
  • 类选择器( class ):class设置为该值的标签起作用
  • ID选择器( ID ):只对ID设置为该值的标签起作用,且一个页面中只有有一个id为该值的标签
  • 子元素选择器( > ):如对a标签的父元素均为p标签的a标签起作用
  • 后代选择器( 空格 ) :如对p标签下所有的所有a标签起作用
  • 相邻兄弟选择器( + ):如对p标签后同级的第一个a标签起作用
  • 普通兄弟选择器( ~ ):如对p标签后同级的所有a标签起作用

rgba和opacity的区别

  • opacity设置透明度会影响他的子元素和其他地方,rgba不会

 如何清除inline-block产生的间隙

  • 标签之间不换行
  • 去除标签的结束部分
  • 给父元素设置font-size为0
  • 使用letter-spacing或者word-spacing
  • 设置margin为负值

两种盒模型

  • 标准盒模型:内容宽度就是width的值
  • IE低版本盒模型:内容宽度是width+padding+border

 哪些属性可以继承,哪些不可以

  • 可继承:font-size,color,font-family
  • 不可继承:border,padding,margin,width,height等

 position和float谁的优先级更高

  • position
  • 只有块级元素才能设置position和float

 元素的高设置百分比是相对于谁的

  • 相对于容器的宽度

画小于1px的线/在chorme浏览器中使用小于12px的字体

  • 使用transform

 两栏布局高度/宽度自适应

  • 父元素设置position:relative
  • 需要自适应的元素设置position:absolute,之后设置相关的上下左右值

 rem和em的区别

  • rem根据根元素的fong-size变化,em根据父元素的font-size变化

 link和@import的区别

  • @import只能加载CSS,link还可以加载别的格式
  • link会同步加载,@import会等页面加载完毕再加载
  • link可以通过js动态引入,@import不行

  ::是伪元素,:是伪类

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值