web前端面试题目--css篇(2019年实战整理)

                                                css篇

一、css3的新特性(不列全部,捡重点回答)

1、CSS3选择器:last-child、nth-child(n)、nth-last-child(n)等。点此查看更多

2、@Font-face(加载字体样式)

3、Transition,Transform和Animation(动画相关)

    这三个特性是CSS3新增的和动画相关的特性。

Transition

    Transition可以在当元素从一种样式变换为另一种样式时为元素添加效果,而不用使用Flash动画或JavaScript。

Transition有如下属性:

    transition-property: 规定应用过渡的CSS属性的名称。

    transition-duration: 规定完成过渡效果需要多长时间。

    transition-delay: 规定过渡效果何时开始,默认是0。

    transition-timing-function: 规定过渡效果的时间曲线,默认是"ease",还有linear、ease-in、ease-out、ease-in-out和cubic-bezier等过渡类型。

    transition: 简写属性,用于在一个属性中设置四个过渡属性。

Transform

    Transform用来向元素应用各种2D和3D转换,该属性允许我们对元素进行旋转、缩放、移动或倾斜等操作。

变换类型

    transform可以有各种变换类型,即属性值:

    none: 定义不进行转换。

    matrix(n,n,n,n,n,n): 定义2D转换,使用六个值的矩阵。

    matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n): 定义3D转换,使用16个值的4x4矩阵。

    translate(x,y): 定义2D位移转换。

    translate3d(x,y,z): 定义3D位移转换。

    translateX(x): 定义位移转换,只是用X轴的值。

    translateY(y): 定义位移转换,只是用Y轴的值。

    translateZ(z): 定义3D位移转换,只是用Z轴的值。

    scale(x,y): 定义2D缩放转换。

    scale3d(x,y,z): 定义3D缩放转换。

    scaleX(x): 通过设置X轴的值来定义缩放转换。

    scaleY(y): 通过设置Y轴的值来定义缩放转换。

    scaleZ(z): 通过设置Z轴的值来定义3D缩放转换。

    rotate(angle): 定义2D旋转,在参数中规定角度。

    rotate3d(x,y,z,angle): 定义3D旋转。

    rotateX(angle): 定义沿着X轴的3D旋转。

    rotateY(angle): 定义沿着Y轴的3D旋转。

    rotateZ(angle): 定义沿着Z轴的3D旋转。

    skew(x-angle,y-angle): 定义沿着X和Y轴的2D倾斜转换。

    skewX(angle): 定义沿着X轴的2D倾斜转换。

    skewY(angle): 定义沿着Y轴的2D倾斜转换。

    perspective(n): 为3D转换元素定义透视视图。

Animation

    Animation让CSS拥有了可以制作动画的功能。使用CSS3的Animation制作动画我们可以省去复杂的js代码。

4、边框(border)

    CSS3新增了三个边框属性,分别是border-radius、box-shadow和border-image。border-radius可以创建圆角边框,box-shadow可以为元素添加阴影,border-image可以使用图片来绘制边框。IE9+支持border-radius和box-shadow属性。Firefox、Chrome以及Safari支持所有新的边框属性。

5、阴影(Shadow) 

6、box-sizing

    box-sizing属性可设置的值有content-box、border-box和inherit。

    content-box: padding和border不被包含在定义的width和height之内。对象的实际宽度等于设置的width值和border、padding之和,即 (Element width = width + border + padding),此属性表现为标准模式下的盒模型。

    border-box: padding和border被包含在定义的width和height之内。对象的实际宽度就等于设置的width值,即使定义有border和padding也不会改变对象的实际宽度,即 (Element width = width),此属性表现为怪异模式下的盒模型。

7、文字效果

等.........


二、如何居中一个div(此处默认水平开始)

1、通过margin: 0 auto; text-align: center实现CSS水平居中。

2、通过display:flex实现CSS水平居中

3、通过display:table-cell和margin-left实现CSS水平居中。

4、通过position:absolute实现CSS水平居中。

5、通过display:inline-block和margin:0 auto实现CSS水平居中。

垂直居中

1、通过position:absolute,让left和top都是50%,这在水平方向上让div的最左与屏幕的最左相距50%,垂直方向上一样,所以再用transform向左(上)平移它自己宽度(高度)的50%,也就达到居中效果了(margin设负值也可以单独拿出来,此处不举例说明)

2、通过display:flex实现CSS垂直居中

等.........


三、请简述盒模型

    盒模型由外而内包括:边距(margin)、边框(border)、填充(padding)、内容(content)。它在页面中所占的实际宽度是margin + border + paddint + content 的宽度相加。

但是,盒模型有标准盒模型和IE的盒模型。点此查看更多


四、css优先级

1、从大到小

    内联样式 > ID 选择器 > 类选择器 = 属性选择器 = 伪类选择器 > 元素(类型)选择器 = 伪元素选择器

    !important 权重最高


五、清除浮动

1,父级div定义 height

    父级div手动定义height,就解决了父级div无法自动获取到高度的问题

2、结尾处加空div标签 clear:both

    添加一个空div,利用css提高的clear:both清除浮动,让父级div能自动获取到高度

3、父级div定义 伪类:after 和 zoom

    浏览器支持好,不容易出现怪问题

4、父级div定义 overflow:hidden

    必须定义width或zoom:1,同时不能定义height,使用overflow:hidden时,浏览器会自动检查浮动区域的高度


六、margin重叠问题。

    1、相邻元素margin重叠

    2、父元素和子元素之间margin重叠

解决方案:

margin-top重叠

    1.给父元素添加overflow:hidden;

    2.给父元素添加border属性;

    3.在父元素中添加padding-top;

    4.在父元素和子元素之间添加空格文字图片等;

margin-bottom重叠

    1、和margin-top设置类似,另外还可以给父元素添加高度值;

关于margin值的计算

    1、如果两个margin都是正值,那么取margin值最大那个,例如父元素设置margin-top为20px,而子元素也设置了margin-top为50px,那么最终是以子元素的margin-top为准;

    2、如果两个margin值为一正一负,则最终的margin值以这两个margin值相加的结果为准;

    3、如果两个margin值都为负数,则取这两个负margin值中绝对值最大的那个负margin值为准;


七、css字体单位及应用场景

1、px

    px就是pixel像素的缩写,相对长度单位,网页设计常用的基本单位。像素px是相对于显示器屏幕分辨率而言的

2、em

    em是相对长度单位。相对于当前对象内文本的字体尺寸(参考物是父元素的font-size)

如当前父元素的字体尺寸未设置,则相对于浏览器的默认字体尺寸

特点:

  1. em的值并不是固定的;

  2. em会继承父级元素的字体大小

3、rem(移动端)

    rem是CSS3新增的一个相对单位,rem是相对于HTML根元素的字体大小(font-size)来计算的长度单位

    如果你没有设置html的字体大小,就会以浏览器默认字体大小,一般是16px

4、vw、vh

    vw、vh、vmax、vmin这四个单位都是基于视口

    vw是相对视口(viewport)的宽度而定的,长度等于视口宽度的1/100

    假如浏览器的宽度为200px,那么1vw就等于2px(200px/100)

    vh是相对视口(viewport)的高度而定的,长度等于视口高度的1/100

    假如浏览器的高度为500px,那么1vh就等于5px(500px/100)

    vmin和vmax是相对于视口的高度和宽度两者之间的最小值或最大值

5、%(百分比)

    一般来说就是相对于父元素

    1、对于普通定位元素就是我们理解的父元素

    2、对于position: absolute;的元素是相对于已定位的父元素

    3、对于position: fixed;的元素是相对于ViewPort(可视窗口)

6、rpx(微信小程序)

    rpx其实是微信对于rem的一种应用的规定,或者说一种设计的方案,官方上规定屏幕宽度为20rem,规定屏幕宽为750rpx。所以在微信小程序中1rem=750/20rpx。


八、box-sizing的作用

    box-sizing 属性允许您以特定的方式定义匹配某个区域的特定元素。

    1、content-box  是默认值。

    如果你设置一个元素的宽为100px,那么这个元素的内容区会有100px宽,并且任何边框和内边距的宽度都会被增加到最后绘制出来的元素宽度中。

    2、border-box 

    告诉浏览器去理解你设置的边框和内边距的值是包含在width内的。也就是说,如果你将一个元素的width设为100px,那么这100px会包含其它的border和padding,内容区的实际宽度会是width减去border + padding的计算值。大多数情况下这使得我们更容易的去设定一个元素的宽高。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,748评论 1 92
  • 1.行内元素和块级元素?img算什么?行内元素怎么转化为块级元素? 行内元素:和有他元素都在一行上,高度、行高及外...
    极乐君阅读 2,416评论 0 20
  • 一、CSS入门 1、css选择器 选择器的作用是“用于确定(选定)要进行样式设定的标签(元素)”。 有若干种形式的...
    宠辱不惊丶岁月静好阅读 1,594评论 0 6
  • H5移动端知识点总结 阅读目录 移动开发基本知识点 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇阅读 4,489评论 0 26
  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 3,466评论 0 6