CSS面试题总结

HTML语义化

  • 让人更容易读懂(增加代码可读性)
  • 让搜索引擎更容易读懂(SEO)

块状元素&内联元素

  • display:block/table;有div,h1,h2,p,table等;(独占一行)
  • display:inline/inline-block;有span,img,input。(不独占一行,排成一行,直到换行为止)

盒模型宽度计算

  • offsetWidth =(内容宽度+内边距+边框),无外边距
  • box-sizing:border-box;width=offsetWidth,width生效于border-box

margin纵向重叠问题

  • 相邻元素的margin-top和margin-bottom会发生重叠,重叠后以margin-bottom为主
  • 空白内容的<p></p>也会重叠

margin负值问题

  • margin-top和margin-left负值,元素向上、向左移动;
  • margin-right负值,右侧元素左移,自身不受影响;
  • margin-bottom负值,下方元素上移,自身不受影响。

BFC理解与应用

  • Block format context,块级格式化上下文
  • 一块独立渲染的区域,内部元素的渲染不会影响边界以外的元素

形成BFC的常见条件:

  • float不是none
  • position是absolute或fixed;
  • overflow不是visible;
  • display是flex,inline-block等。

常见应用:清除浮动

float布局

  • 如何实现圣杯布局和双飞翼布局
  • 手写clearfix

圣杯布局和双飞翼布局的目的:

  • 三栏布局,中间一栏最先加载和渲染(内容最重要);
  • 两侧内容固定,中间内容随着宽度自适应;
  • 一般用于PC网页。

圣杯布局和双飞翼布局的技术总结:

  • 使用float布局;
  • 两侧使用margin负值,以便和中间内容横向重叠;
  • 防止中间内容被两侧覆盖,一个用padding一个用margin。

手写clearfix

/**手写clearfix**/ .clearfix:after{ content:''; display:table; clear:both; }

flex实现一个三点的色子

常用语法回顾:

  • flex-direction //页面方向
  • justify-content //横向对齐
  • align-items //纵向对齐
  • flex-wrap //是否换行
  • align-self //子元素纵向对齐

/*flex画三个点的色子*/ .box{ display:flex; /*flex布局*/ justify-content:space-btween; /*两端对齐*/ } .item{ /*背景色、大小、边框等*/ } .item:nth-child(2){ algin-self:center; /*第二项居中对齐*/ } .item:nth-child(3){ algin-self:flex-end; /*第三项尾对齐*/ } <div class="box"> <span class="item"></span> </div>

css-定位

  • absolute和relative分别依据什么定位

relative依据自身定位 absolute依据最近一层的定位元素定位 定位元素:absolute,relative,fixed,body

  • 居中对齐有哪些实现方式

水平居中: inline元素:text-align:center; block元素:margin:auto; absolute元素:left:50% + margin-left负值 垂直居中: inline元素:line-height的值等于height值; absolute元素:top:50% + margin-top负值; absolute元素:transform(-50%,-50%); absolute元素:top,left,bottom,right=0 + margin:auto;

css-图文样式

line-height如何继承

  • 写具体数值,如20px,则继承该值;(比较好理解)
  • 写比列,如2/1.5,则继承该比例;(比较好理解)--直接继承父元素的line-height,标签本身的font-size*line-height
  • 写百分比,如200%,则继承计算出来的值。(考点)

/*如下代码,p标签的行高将会是多少?*/ <style> body{ font-size:20px; line-height:200%; } p{ font-size:16px; } </style> <body> <p>AAA</p> </body> 答:行高是40px,它会用body的font-size*line-height,然后继承

css-响应式

rem是什么?

rem是一个长度单位

  • px,绝对长度单位,最常用
  • em,相对长度单位,相对于父元素,不常用
  • rem,相对长度单位,相对于根元素,常用于响应式布局

<style> html{ font-size:100px; } div{ font-size:0.16rem; } </style> 答:100px=1rem,div的font-size为0.16rem*100=16px。

响应式布局的常见方案

  • media-query(查询不同屏幕的宽度),根据不同屏幕的宽度设置根元素font-size;
  • rem,基于根源的长度单位

rem的弊端

  • 阶梯性,必须分段设置

网页视口尺寸

  • window.screen.height // 屏幕高度
  • window.innerHeight // 网页视口高度
  • document.body.clientHeight // body高度

vw/vh

  • vh网页视口高度的1/100
  • vw网页视口宽度的1/100
  • vmax取两者最大值;vmin取两者最小值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值