html&&css面试题(1)

1,什么是盒模型?计算元素尺寸时从哪部分开始计算?

一个html元素,从里到外分为4个部分,内容盒(content),内间距(padding),边框(border),外间距(margin)。
默认情况下,给元素设置的宽高,是内容盒的宽高,不包含边框与内间距。
通过box-sizing设置计算方式,默认为content-box,计算内容盒,可以设置为border-box,计算到边框盒。

2,块元素,行元素,行内块元素分别有哪些?他们有什么不同?

  • 块元素:独占一行,可以设置宽高。标签:div,p,h1—h6。
    如果不设置宽高,宽度就继承父元素的宽度,高度是0。如果有内容,高度就是内容的高度。
  • 行元素:不能设置宽高,宽高取决于元素本身的内容。
    多个元素占用一行,到最后会自动换行。标签:a,b。
  • 行内块元素:既有行元素的特性,也有块元素的特性。标签:bottom,img,input。可以为元素设置宽高,不独占一行,多个行内块会左右排列。

图片(img)下方会占据一些空白,怎么消除?
父元素font-size设置为0

3,css水平、垂直居中的写法,请至少写出3种?

3.1,水平居中

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

3.2,垂直居中

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

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

  • rem:是全部的长度都相对于根元素元素。通常做法是给html元素设置一个字体大小,然后其他元素的长度单位就为rem。
  • em:子元素字体大小的em是相对于父元素字体大小。元素的width/height/padding/margin用em的话是相对于该元素的font-size。
  • vw/vh:相当于屏幕宽度和高度的1%,
  • px像素(Pixel)。相对长度单位。像素px是相对于显示器屏幕分辨率而言的。

5,说出几种元素定位的方式

  • 5.1,默认定位:position:static,采用流式布局,不能通过top等样式来设置位置。
  • 5.2,相对定位:position:relative,元素还在流式文档中,通过top等属性进行样式的微调。
  • 5.3,绝对定位:position:absolute,元素脱离文档流,不在参与父元素的流式布局,不在撑开父元素。
  • 5,4,固定定位:position:fixed,脱离文档流。当对于根标签进行定位时,页面滚动时不随着页面的滚动而滚动。
  • 5.5,sticky,粘性定位,可实现动态fixed。

6,清除浮动的方法(最少2种)

(1)在最后一个浮动标签后,新加一个标签,给其设置clear:both;
(2)父级添加overflow属性(父元素添加overflow:hidden)
(3)使用after伪元素清除浮动(推荐使用);
(4)使用before和after双伪元素清除浮动。

7,Css选择器有哪些?各个选择器的优先级顺序是什么?

(1)Id选择器( # myid)
(2)类选择器(.myclassname)
(3)标签选择器(div, h1, p)
(4)相邻选择器(h1 + p)
(5)子选择器(ul > li)
(6)后代选择器(li a)
(7)通配符选择器( * )
(8)属性选择器(a[rel = “external”])
(9)伪类选择器(a:hover, li:nth-child)
!important>id>class>属性选择器>标签选择器

问:Less/SCSS比css高级到哪了?
答:增加了变量,函数,混入,嵌套等功能。

8,HTML5新特性

广义上的html5指的是最新一代前端开发技术的总称,包括html5,CSS3,新增的webAPI。
(1)语义化标签:<header>,<footer>,<nav>,
(2)音频标签:<audio>,视屏标签:<video>
(3)Canvas绘图,

Css3中新增了:圆角,阴影,滤镜,vwvh单位,flex布局,媒体查询,过度和动画,伪类。

webAPI
(4)地理定位:使用getCurrentPosition()方法来获取用户的位置。
(5)拖放api,
(6)Web Worker:创建一个独立工作的线程,在主线程之外运行。
(7)WebSocket协议:为web应用程序客户端和服务端之间提供了一种全双工通信机制。
(8)Web Storage:客户端存储数据。它有2个对象:localStorage ,sessionStorage,两者之间的区别?

  • sessionStorage,针对一个 session 的数据存储, 当用户关闭浏览器窗口后,数据会被删除;
  • localStorage:没有时间限制的数据存储。

9,Css新特性

(1)CSS3圆角 border-radius
(2)盒阴影 box-shadow
(3)边框图像 border-image
(4)CSS3渐变
(5)CSS3过渡

10,元素消失的方案

  • (1)Visibility:hidden;元素隐藏但保留位置,
  • (2)display: none;元素隐藏且不保留位置。

11,怎样实现在动画结束之后执行一段代码?

过度动画:监听transitionend事件。
关键帧动画:监听animationend事件。
Js动画:1,手写js动画时,直接在停止动画的代码之后添加要执行的代码,如果使用js动画工具库,则把要执行的代码写在动画结束时的回调函数中。

12,你对响应式页面的理解?

能够根据不同的浏览器尺寸,显示不同的布局方式。依赖媒体查询实现。

13,什么是元素外间距重叠?哪种情况下会产生外间距重叠?

流式布局中块元素的上下外间距会产生重叠。

14,前端开发中实现动画有几种方式?其各自的特点是什么?

1:css过渡,2:css关键帧动画,3:js动画,4:canvas动画。
从动画执行效率上对比:canvas>css过渡>css关键帧动画>js动画。
从动画功能上对比:canvas=js动画>css关键帧动画>css过渡。
Canvas动画最优秀,但是开发成本高。

15,::before 和 :after中双冒号和单冒号有什么区别?解释一下这2个伪元素的作用。

伪元素在css1中已经存在,当时用单冒号;css3时做了修订用双冒号,并且伪元素不允许再支持旧的单冒号的写法。(伪元素由双冒号和伪元素名称组成)。

区别:
单冒号(:)用于CSS3伪类,双冒号(::)用于CSS3伪元素。
但是为了兼容已有的伪元素的写法,在一些浏览器中也可以使用单冒号来表示伪元素。
伪类一般匹配的是元素的一些特殊状态,如hover、link等,而伪元素一般匹配的特殊的位置,比如after、before等。

作用:在元素前面(::before)和后面(::after)加内容

16,常用的浏览器有哪些?他们分别是什么内核?

1,chrome、safari属于webkit内核。
2,老IE(10和10以下) 属于Trident内核。
3,firefox属于Gecko内核。
4,新IE属于Edge内核。
5,360等特殊浏览器:多内核浏览器。

17,什么是HTML语义化?HTML语义化的好处是什么?

html语义化让页面的内容结构化,结构更清晰,便于对浏览器、搜索引擎解析;
即使在没有样式CSS情况下也以一种文档格式显示,并且是容易阅读的;
搜索引擎的爬虫也依赖于HTML标记来确定上下文和各个关键字的权重,利于SEO;
使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酒鼎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值