20道CSS基础面试题

20道CSS基础面试题

本文主要为大家分享一篇CSS基础面试题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧。

1 介绍一下标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的?

标准盒子模型:宽度=内容的宽度(content)+ border + padding + margin
低版本IE盒子模型:宽度=内容宽度(content+border+padding)+ margin

专题推荐:2020年CSS面试题汇总(最新)

用来控制元素的盒子模型的解析模式,默认为content-box
context-box:W3C的标准盒子模型,设置元素的 height/width 属性指的是content部分的高/宽
border-box:IE传统盒子模型。设置元素的height/width属性指的是border + padding + content部分的高/宽

3 CSS选择器有哪些?哪些属性可以继承?

CSS选择符:id选择器(#myid)、类选择器(.myclassname)、标签选择器(p, h1, p)、相邻选择器(h1 + p)、子选择器(ul > li)、后代选择器(li a)、通配符选择器(*)、属性选择器(a[rel=”external”])、伪类选择器(a:hover, li:nth-child)

可继承的属性:font-size, font-family, color

不可继承的样式:border, padding, margin, width, height

优先级(就近原则):!important > [ id > class > tag ]
!important 比内联优先级高

4 CSS优先级算法如何计算?

元素选择符: 1
class选择符: 10
id选择符:100
元素标签:1000

!important声明的样式优先级最高,如果冲突再进行计算。

如果优先级相同,则选择最后出现的样式。

继承得到的样式的优先级最低。

立即学习“前端免费学习笔记(深入)”;

5 CSS3新增伪类有那些?

p:first-of-type 选择属于其父元素的首个元素
p:last-of-type 选择属于其父元素的最后元素
p:only-of-type 选择属于其父元素唯一的元素
p:only-child 选择属于其父元素的唯一子元素
p:nth-child(2) 选择属于其父元素的第二个子元素
:enabled :disabled 表单控件的禁用状态。
:checked 单选框或复选框被选中。

6 如何居中p?如何居中一个浮动元素?如何让绝对定位的p居中?

p:

border: 1px solid red;margin: 0 auto; height: 50px;width: 80px;

浮动元素的上下左右居中:

border: 1px solid red;float: left;position: absolute;width: 200px;height: 100px;left: 50%;top: 50%;margin: -50px 0 0 -100px;

绝对定位的左右居中:

border: 1px solid black;position: absolute;width: 200px;height: 100px;margin: 0 auto;left: 0;right: 0;

还有更加优雅的居中方式就是用flexbox,以后会做整理。

7 display有哪些值?说明他们的作用?

inline(默认)–内联
none–隐藏
block–块显示
table–表格显示
list-item–项目列表
inline-block

8 position的值?

static(默认):按照正常文档流进行排列;
relative(相对定位):不脱离文档流,参考自身静态位置通过 top, bottom, left, right 定位;
absolute(绝对定位):参考距其最近一个不为static的父级元素通过top, bottom, left, right 定位;
fixed(固定定位):所固定的参照对像是可视窗口。

9 CSS3有哪些新特性?

RGBA和透明度

background-image background-origin(content-box/padding-box/border-box) background-size background-repeat

word-wrap(对长的不可分割单词换行)word-wrap:break-word

文字阴影:text-shadow: 5px 5px 5px #FF0000;(水平阴影,垂直阴影,模糊距离,阴影颜色)

font-face属性:定义自己的字体

圆角(边框半径):border-radius 属性用于创建圆角

边框图片:border-image: url(border.png) 30 30 round

盒阴影:box-shadow: 10px 10px 5px #888888

媒体查询:定义两套css,当浏览器的尺寸变化时会采用不同的属性

10 请解释一下CSS3的flexbox(弹性盒布局模型),以及适用场景?

该布局模型的目的是提供一种更加高效的方式来对容器中的条目进行布局、对齐和分配空间。在传统的布局方式中,block 布局是把块在垂直方向从上到下依次排列的;而 inline 布局则是在水平方向来排列。弹性盒布局并没有这样内在的方向限制,可以由开发人员自由操作。
试用场景:弹性布局适合于移动前端开发,在Android和ios上也完美支持。

11 用纯CSS创建一个三角形的原理是什么?

首先,需要把元素的宽度、高度设为0。然后设置边框样式。

width: 0;height: 0;border-top: 40px solid transparent;border-left: 40px solid transparent;border-right: 40px solid transparent;border-bottom: 40px solid #ff0000;

12 一个满屏品字布局如何设计?

第一种真正的品字:

三块高宽是确定的;

上面那块用margin: 0 auto;居中;

下面两块用float或者inline-block不换行;

用margin调整位置使他们居中。

第二种全屏的品字布局:

上面的p设置成100%,下面的p分别宽50%,然后使用float或者inline使其不换行。

13 常见的兼容性问题?

不同浏览器的标签默认的margin和padding不一样。*{margin:0;padding:0;}

IE6双边距bug:块属性标签float后,又有横行的margin情况下,在IE6显示margin比设置的大。hack:display:inline;将其转化为行内属性。

渐进识别的方式,从总体中逐渐排除局部。首先,巧妙的使用“9”这一标记,将IE浏览器从所有情况中分离出来。接着,再次使用“+”将IE8和IE7、IE6分离开来,这样IE8已经独立识别。

{background-color:#f1ee18;/*所有识别*/.background-color:#00deff9; /*IE6、7、8识别*/+background-color:#a200ff;/*IE6、7识别*/_background-color:#1e0bd1;/*IE6识别*/}

设置较小高度标签(一般小于10px),在IE6,IE7中高度超出自己设置高度。hack:给超出高度的标签设置overflow:hidden;或者设置行高line-height 小于你设置的高度。

IE下,可以使用获取常规属性的方法来获取自定义属性,也可以使用getAttribute()获取自定义属性;Firefox下,只能使用getAttribute()获取自定义属性。解决方法:统一通过getAttribute()获取自定义属性。

Chrome 中文界面下默认会将小于 12px 的文本强制按照 12px 显示,可通过加入 CSS 属性 -webkit-text-size-adjust: none; 解决。

超链接访问过后hover样式就不出现了,被点击访问过的超链接样式不再具有hover和active了。解决方法是改变CSS属性的排列顺序:L-V-H-A ( love hate ): a:link {} a:visited {} a:hover {} a:active {}

14 为什么要初始化CSS样式

因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,如果没对CSS初始化往往会出现浏览器之间的页面显示差异。

15 absolute的containing block计算方式跟正常流有什么不同?

无论属于哪种,都要先找到其祖先元素中最近的 position 值不为 static 的元素,然后再判断:

若此元素为 inline 元素,则 containing block 为能够包含这个元素生成的第一个和最后一个 inline box 的 padding box (除 margin, border 外的区域) 的最小矩形;

否则,则由这个祖先元素的 padding box 构成。

如果都找不到,则为 initial containing block。

补充:

static(默认的)/relative:简单说就是它的父元素的内容框(即去掉padding的部分)

absolute: 向上找最近的定位为absolute/relative的元素

fixed: 它的containing block一律为根元素(html/body)

16 CSS里的visibility属性有个collapse属性值?在不同浏览器下以后什么区别?

当一个元素的visibility属性被设置成collapse值后,对于一般的元素,它的表现跟hidden是一样的。

chrome中,使用collapse值和使用hidden没有区别。

firefox,opera和IE,使用collapse值和使用display:none没有什么区别。

17 display:none与visibility:hidden的区别?

display:none 不显示对应的元素,在文档布局中不再分配空间(回流+重绘)
visibility:hidden 隐藏对应元素,在文档布局中仍保留原来的空间(重绘)

18 position跟display、overflow、float这些特性相互叠加后会怎么样?

display属性规定元素应该生成的框的类型;position属性规定元素的定位类型;float属性是一种布局方式,定义元素在哪个方向浮动。
类似于优先级机制:position:absolute/fixed优先级最高,有他们在时,float不起作用,display值需要调整。float 或者absolute定位的元素,只能是块元素或表格。

19 对BFC规范(块级格式化上下文:block formatting context)的理解?

BFC规定了内部的Block Box如何布局。
定位方案:

内部的Box会在垂直方向上一个接一个放置。

Box垂直方向的距离由margin决定,属于同一个BFC的两个相邻Box的margin会发生重叠。

每个元素的margin box 的左边,与包含块border box的左边相接触。

BFC的区域不会与float box重叠。

BFC是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。

计算BFC的高度时,浮动元素也会参与计算。

满足下列条件之一就可触发BFC

根元素,即html

float的值不为none(默认)

overflow的值不为visible(默认)

display的值为inline-block、table-cell、table-caption

position的值为absolute或fixed

20 为什么会出现浮动和什么时候需要清除浮动?清除浮动的方式?

浮动元素碰到包含它的边框或者浮动元素的边框停留。由于浮动元素不在文档流中,所以文档流的块框表现得就像浮动框不存在一样。浮动元素会漂浮在文档流的块框上。
浮动带来的问题:

父元素的高度无法被撑开,影响与父元素同级的元素

与浮动元素同级的非浮动元素(内联元素)会跟随其后

若非第一个元素浮动,则该元素之前的元素也需要浮动,否则会影响页面显示的结构。

清除浮动的方式:

父级p定义height

最后一个浮动元素后加空p标签 并添加样式clear:both。

包含浮动元素的父标签添加样式overflow为hidden或auto。

父级p定义zoom

相关教程推荐:CSS视频教程

以上就是20道CSS基础面试题的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1609822.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 01:00:58
下一篇 2025年12月24日 01:01:14

相关推荐

  • CSS制作各种各样的网页图标方法实例

    本文主要和大家介绍了纯css制作各种各样的网页图标(三角形、暂停按钮、下载箭头、加号等)的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望能帮助到大家。 三角形 .box{ width: 0; height: 0; border-top: 50px solid transparen…

    2025年12月24日 好文分享
    000
  • CSS3如何实现全景图

    本文主要和大家介绍了css3实现全景图特效示例代码的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 基本代码 html代码: 首先定义一些基本的样式和动画: .panorama { width: 300px; height: 300px; b…

    好文分享 2025年12月24日
    000
  • CSS实现背景渐变图片transtion过渡效果

    本文主要和大家介绍了详解css背景渐变图片transtion过渡效果技巧的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 一、background-image不支持CSS3 transition background-image 不支持CSS…

    2025年12月24日
    000
  • CSS之position属性

    本文主要为大家分享一篇CSS之position属性,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧。 (1)、static 可以认为静态的,默认元素都是静态的定位,对象遵循常规流。此时4个定位偏移属性不会被应用,也就是使用left,right,bottom,top将不会生效。 (2)…

    2025年12月24日
    000
  • 如何实现div等比例缩放高宽

    本文主要为大家分享一篇如何实现div等比例缩放高宽,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧。 1,方案一:响应式来做,可以根据媒体查询,设定在不同屏幕宽度下p的高度和宽度,具体的设置看你响应式想怎么显示 @media only screen and (min-width: 1…

    好文分享 2025年12月24日
    000
  • css中background-clip属性详解

    本文主要和大家介绍了css中background-clip属性的作用,background-clip属性的通俗作用就是指定元素背景所在的区域,对css中background-clip属性的相关知识感兴趣的朋友一起看看吧,希望能帮助到大家。 background-clip属性的通俗作用就是指定元素背景…

    2025年12月24日 好文分享
    000
  • DIV和CSS怎么实现电台列表设计_DIV和CSS实现电台列表设计代码

    对于使用p和CSS的设计也是比较有意思的设计效果,这次文章就给大家简单的介绍下p和CSS实现电台列表设计,怎么实现效果,实现p和CSS实现电台列表设计效果的代码是什么?下面一起来看看。 CSS Spite技术:也就是CSS精灵技术,实际上CSS的精灵就是图片里的一个个的图标元素,这些图标可以使按钮、…

    2025年12月24日 好文分享
    000
  • 微信小程序中css的使用技巧总结

    这篇文章介绍了最近很火的微信小程序中css的使用技巧总结,有需要的同学可以参考一下本文 微信小程序 css使用技巧 1:用纯CSS创建一个三角形的原理把上、左、右三条边隐藏掉(颜色设为 transparent) 立即学习“前端免费学习笔记(深入)”; @@######@@ 立即学习“前端免费学习笔记…

    好文分享 2025年12月24日
    000
  • 代码实现css鼠标经过元素下划线两边展开效果

    这篇文章主要介绍了代码实现css鼠标经过元素下划线两边展开效果,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 鼠标移入下划线展开#underline{ width: 200px; height: 50px; background: #ddd; margin: 20px;…

    好文分享 2025年12月24日
    000
  • CSS3实现倾斜和旋转动画效果

    这次给大家带来CSS3实现倾斜和旋转动画效果,实现CSS3倾斜和旋转动画效果的注意事项有哪些,下面就是实战案例,一起来看一下。 先看看静态的效果,运行后的效果更好 示例代码如下 css3学习 .d{width: 200px;height: 200px;border-radius: 50%;borde…

    2025年12月24日
    000
  • css如何实现限制文字字数

    本文主要和大家分享css如何实现限制文字字数,主要以代码形式,希望能帮助到大家。 html部分 我是显示的内容我是显示的内容我是显示的内容 css部分 width:20px;overflow: hidden;text-overflow: ellipsis;//限制字数显示white-space: n…

    好文分享 2025年12月24日
    000
  • 如何解决CSS的布局问题

    前端布局非常重要的一环就是页面框架的搭建,也是最基础的一环。在页面框架的搭建之中,又有居中布局、多列布局以及全局布局,今天我们就来总结总结前端干货中的CSS布局。 居中布局 水平居中 1)使用inline-block+text-align(1)原理、用法 原理:先将子框由块级元素改变为行内块元素,再…

    2025年12月24日 好文分享
    000
  • CSS布局之网格区域

    到目前为止,网格项目都是安置在独立的单元格内,但我们应该打破这样的局限,让网格项目可以超出单元格的界面,实现更多有用的布局。那这一节我们来看怎么实现。 定义网格区域 这里有一个我们一直努力想实现的网格:九个网格项目分成了三个等列和等行的网格之中,列与列以及行与行之间有一个20px的间距。    目前…

    2025年12月24日 好文分享
    000
  • css悬浮效果阴影实现代码

    本文主要和大家介绍了css实现悬浮效果的阴影的方法示例的相关资料,希望能帮助到大家。我们先来看一下效果图。 要实现的效果图: 实现的代码: -webkit-box-shadow:0px 3px 3px #c8c8c8 ;-moz-box-shadow:0px 3px 3px #c8c8c8 ;box…

    2025年12月24日
    000
  • css实现圆角三角形的方法

    本文主要和大家介绍了css实现带圆角三角型的示例代码的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 前言 目标实现效果图如下: 实现 .triangle{ display: inline-block; font-size: 0; overf…

    2025年12月24日 好文分享
    000
  • 详解CSS的居中方式

    CSS居中是前端工程师经常要面对的问题,也是基本技能之一。今天小编把CSS居中的方案汇编整理了一下,目前包括水平居中,垂直居中及水平垂直居中方案共15种。如有漏掉的,还会陆续的补充进来,算做是一个备忘录吧。 1 水平居中 1.1 内联元素水平居中 利用 text-align: center 可以实现…

    2025年12月24日
    000
  • 用CSS3实现鼠标浮动放大图片

    这次给大家带来用CSS3实现鼠标浮动放大图片,用CSS3实现鼠标浮动放大图片的注意事项有哪些,下面就是实战案例,一起来看一下。 无需JS和jQuery代码实现CSS3鼠标浮动放大图片 .box { /* 可见视觉区域 */ width: 480px; height: 250px; position:…

    好文分享 2025年12月24日
    000
  • CSS控制文字的换行与裁剪

    这次给大家带来CSS控制文字的换行与裁剪,CSS控制文字换行与裁剪的注意事项有哪些,下面就是实战案例,一起来看一下。 关于换行、裁剪的一些CSS属性 word-wrap: normal | break-word normal 正常换行,内容可以撑破容器,例如长单词或者长数字的情况break-word…

    2025年12月24日
    000
  • css中的margin属性详解

    这次给大家带来css中的margin属性详解,使用css中margin的注意事项有哪些,下面就是实战案例,一起来看一下。 之前我一直认为margin属性是一个非常简单的属性,但是最近做项目时遇到了一些问题,才发现margin属性还是有一些“坑”的,下面我会介绍margin的基本知识以及那些“坑”。这…

    2025年12月24日 好文分享
    000
  • css的多种书写方式

    这次给大家带来css的多种书写方式,css书写方式的注意事项有哪些,下面就是实战案例,一起来看一下。 优先级: 外部样式 优先级,即:同名的选择器右边的会覆盖左边 1.内部样式表 CSS Code复制内容到剪贴板                 /*内部样式表,一般用于覆盖公用样式*/       …

    好文分享 2025年12月24日
    000

发表回复

登录后才能评论
关注微信