CSS面试题总结

需求变更
• 阅读 125

html、css基础

1,link和@import的区别?

  • 从属关系区别:

link属于html标签,而@import是css提供的。

  • 加载顺序区别:

页面被加载时,link会同时被加载,而@import引用的css会等到页面被加载完再加载。

  • 兼容性区别:

import只在IE5以上才能识别,而link是html标签,无兼容问题。

  • dom可操作性区别:

可以通过JS 操作 DOM ,插入link标签来改变样式;由于 DOM 方法是基于文档的,无法使用@import的方式插入样式;

  • 权重区别:

如果已经存在相同样式,@import引入的这个样式将被该 CSS 文件本身的样式层叠掉,表现出link方式的样式权重高@import的权重这样的直观效果。
(aSuncat:简而言之,link和@import,谁写在后面,谁的样式就被应用,后面的样式覆盖前面的样式。)

2,calc, support, media各自的含义及用法?
@support主要是用于检测浏览器是否支持CSS的某个属性,其实就是条件判断,如果支持某个属性,你可以写一套样式,如果不支持某个属性,你也可以提供另外一套样式作为替补。

calc() 函数用于动态计算长度值。 calc()函数支持 “+”, “-”, “*”, “/” 运算;

@media 查询,你可以针对不同的媒体类型定义不同的样式。

3,如何理解标签语义,它有哪些好处?
1)语义元素清楚地向浏览器和开发者描述其意义。
2)好处:
(1)html结构清晰,代码可读性较好。
(2)有利于SEO,搜索引擎根据标签来确定上下文和各个关键字的权重。
(3)无障碍阅读,样式丢失的时候能让页面呈现清晰的结构。
(4)方便其他设备解析,如盲人阅读器根据语义渲染网页
(5)便于团队维护和开发,语义化更具可读性,代码更好维护,与CSS3关系更和谐。

// 常用的语义化标签
h1-h6 
p
ul
ol
dl
thead
tbody 

// html5中新增的语义化标签
header   section或page的页眉 
nav   导航栏 
footer   section或page的页脚 
progress   进度条 
video   视频

4,css的选择符有哪些,优先级如何计算,哪些属性可以继承?

1)css选择符类型

1、通用选择器:* 
2、类别选择器:.class 
3、id选择器:#id 
4、标签选择器:p 
5、后代选择器:div p 
6、子选择器:div > p 
7、群组选择器:div , p 
8、相邻同胞选择器:div +p 
9、伪类选择器::link :visited :active :hover :focus :first-child 
10、伪元素选择器::first-letter :first-line:before :after :lang(language) 
11、属性选择器:[attribute] [attribute=value] [attribute~=value] [attribute|=value] 

2、优先级计算

!important > 内联样式 > id > class > tag

3、属性继承

(1)所有元素可继承:visibility、cursor
(2)块级元素可继承: text-indent 、 text-align
(3)内联元素可继承:
①字体系列属性:font、 font-family 、 font-size 、font-style、font-variant、font-weight、font-stretch、font-size-adjust
②除text-indent、text-align之外的文本系列属性:
letter-spacing、word-spacing、 white-space 、 line-height 、 color 、text-transform、direction

扩展:
不可继承的样式属性:

1、display
2、文本属性:vertical-align、 text-decoration 、text-shadow、unicode-bidi
3、盒子模型属性:border、padding、margin、width、height
4、背景属性:background
5、定位属性:float、clear、position
6、生成内容属性:content
7、轮廓样式属性:outlien-style
8、页面样式属性:size
9、声音样式属性:pause-before

5,行内元素和块级元素举几个例子?

行内元素:span,a,var ,em,input,img,img,textarea,em,strong,select,lable
块级标签:div,p,h1-h3,ul,ol,dl,li,dd,dt,table,td,tr

6,伪类和伪元素?

伪类: :active :focus :hover :link :visited :first-child
伪元素: :before :after :first-letter :first-line

7,placeholder的实现?
3种方案:
1)为input添加一个兄弟节点span,并为span设置绝对定位(父节点为position: relative;),使其位于input之上。

2)为添加一个属性phText=“手机号码/邮箱地址”。默认状态下,value值为提示文本并且颜色为灰色;
获得焦点时,若value值等于phText属性值,则value值置空;失去焦点时,若value值为空,则value值为提示文本。

3)把placeholder值赋给并且颜色置为灰色,然后获得焦点时判断value值等于placeholder值的话,把光标移至最前面(this.createTextRange和this.setSelectionRange)。当发生输入操作时,先把value值置为空,然后再接收输入值。另外,对于 <input type="password"> 要为其新增一个 <input type="text"> 用来显示提示文本,当发生输入操作时,需要把 <input type="text"> 隐藏,然后把<input type="password"> 显示出来并让其获得焦点。此方案也有一些小缺陷,那就是当用鼠标右键粘贴时会出现bug。

8,写出ul、ol、dl三种列表的html结构?

ul:unordered list, 无序列表

<ul>
     <li></li> 
</ul>

ol:ordered list, 有序列表

<ol>
     <li></li> 
</ol>

dl:definition list, 定义列表

<dl>
     <dt>计算机</dt> 
     <dd>用来计算的仪器...</dd> 
     <dt>显示器</dt>
     <dd>以视觉方式显示信息的装置...</dd> 
</dl>

9,svg和canvas的区别?

1)canvas时h5提供的新的绘图方法 ;svg已经有了十多年的历史

2)canvas画图基于像素点,是位图,如果进行放大或缩小会失真 ;svg基于图形,用html标签描绘形状,放大缩小不会失真

3)canvas需要在js中绘制 ;svg在html绘制

4)canvas支持颜色比svg多 5、canvas无法对已经绘制的图像进行修改、操作 ;svg可以获取到标签进行操作

10,flex实现原理?
1)容器上有主轴和纵轴的概念,默认主轴(main-axis)是横向,从左到右,纵轴是竖向,从上到下。

2)其中所有的孩子的布局都会受到这两个轴的影响。

3)有很多相关的css属性就是通过改变主轴和纵轴的方向来实现不同的布局效果的。

11,src与href的区别?
1)href 是指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接,用于超
链接。
2)src是指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置;在请求src资源时会将其指向的资源下载并应用到文档内,例如js脚本,img图片和frame等元素。当浏览器解析到该元素时,会暂停其他资源的下载和处理,直到将该资源加载、编译、执行完毕,图片和框架等元素也如此,类似于将所指向资源嵌入当前标签内。这也是为什么将js脚本放在底部而不是头部。

有需要的可以私信,免费领取面试题文档,包括CSS面试题总结,JavaScript经典面试题,Vue面试题汇总等等,都可以免费领取!!!

css盒模型

1,css盒模型基本概念?
2,标准模型和IE模型的区别:计算高度和宽度的不同,怎么不同,高度宽度是怎么计算的?
3,css如何设置这两种模型?
4,js如何设置获取盒模型对应的宽和高?
5,实例题(根据盒模型解释边距重叠)
6,#sec的子元素是.child,说出下面的值?
CSS面试题总结

BFC(边距重叠解决方案)

1,BFC的基本概念?
2,BFC原理/ BFC渲染规则?
3,如何创建BFC?
4,BFC的使用场景?
CSS面试题总结

css浮动

1,css浮动原理?
2,浮动元素引起的问题?
3,css清除浮动的方法?

CSS面试题总结

css经典布局

1,三栏布局:左右各300px,中间自适应?
2,圣杯布局
3,双飞翼布局
4,css水平、垂直居中的写法,请至少写出4种?

CSS面试题总结

自适应

1,经常遇到的css兼容性的问题在哪些?如何解决的?

css兼容

1,经常遇到的css兼容性的问题在哪些?如何解决的?
CSS面试题总结

css hack

1,什么是CSS hack?
2,CSS hack的原理?
3,CSS hack分类?
4,CSS hack书写顺序?

CSS面试题总结

点赞
收藏
评论区
推荐文章
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Easter79 Easter79
3年前
Vue+Webpack配置css
  使用VueWebpack搭建工程时,在webpack.config.js中的module的rules里针对各种文件配置加载工具。在针对css文件配置时遇到一个问题:打包构建时报错——Modulebuildfailed:Unknownword。  配置内容如下:{  test:/\.css$/,  use:
Jacquelyn38 Jacquelyn38
4年前
在前端学习道路上,容易混淆的几个知识点!
async与deferasync:可选属性。表示应该立即下载脚本,但不应妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本。只对外部脚本文件有效(写在html文件中的js代码,添加此属性无效,仍按代码加载顺序执行)。defer:可选属性。标识脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有效。script标签属性async与
Stella981 Stella981
3年前
ES6中的import()函数
import(specifier)上面代码中,import函数的参数specifier,指定所要加载的模块的位置。import命令能够接受什么参数,import()函数就能接受什么参数,两者区别主要是后者为动态加载。import()返回一个Promise对象。下面是一个例子。constmaindoc
Stella981 Stella981
3年前
JavaScript 从select表中获取数据在表格中添加行
<!DOCTYPE html<html<head lang"en"    <meta charset"UTF8"    <title</title    <link rel"stylesheet" href"css/mian.css"/    <script src
Wesley13 Wesley13
3年前
JSP页面、EL表达式
JSP页面:jsp是一种动态页面,html页面和jsp页面最大的区别是:html是一种静态页面,在html中只能定义css、js等,在jsp中除了可以定义css、js之外还可以定义java代码,还可以在jsp中使用el表达式和jstl标签,但是java代码必须使用<%java代码%第一
Stella981 Stella981
3年前
JS通过ajax + 多列布局 + 自动加载来实现瀑布流效果
Ajax说明:本文效果是无限加载的,意思就是你一直滚动就会一直加载图片出现,通过鼠标滚动距离来判断的,所以不是说的那种加载一次就停了的那种,那种demo下次我会再做一次css部分用的是html5css3的新属性,图片会自动添加到每行的最顶端上去,而不是用js去判断。去除了一些js计算的麻烦。css部分:
Wesley13 Wesley13
3年前
JS和CSS加载(渲染)机制不同
一、结论CSS可以在页面加载完成后随时渲染。举个例子:通过js给某个元素加一个id或者css,只要这个id或者css有对应的样式,此元素的样式就会自动生效。JS不可以在页面加载完成后生效。最明显的例子就是使用EasyUI的时候,iframe中哪些样式无效(EasyUi是依靠JS进行样式处理的,所以无法运行JS,那么样式也就无法设置。简单点说
Wesley13 Wesley13
3年前
CSS 加载新方式
Chrome浏览器有意改变<linkrel"stylesheet"的加载方式,当其出现在<body中时,这一变化将更加明显。笔者决定在本文中进行详细说明这种改变可能带来影响与好处。一.目前CSS文件的加载方式<head<linkrel"stylesheet"href"https://my.o
Wesley13 Wesley13
3年前
CSS3实现页面加载进度条
什么情况下会使用到页面加载进度条?当页面中的需要加载的内容很多,用户直接进入则看不到任何内容,体验不好,这个时候就需要使用到页面加载的一个动画,在页面加载结束后再显示主体内容。实现页面加载进度条有哪几种方式?一般可分为两种,1.设置多少时间后显示页面,2.根据页面加载的文档状态来实现如何根据文档状态来实现?
可莉 可莉
3年前
2014年百度阿里前端面试(一面)
先说下百度:百度的笔试题目是相对较简单的,都是些基本知识例如html里面的空元素,块级元素,行内元素,第二题是link和@import引入css的区别,第三个是一个函数输出的题,也很简单,往后的几个是提升网站性能,还有一个域名劫持,最后一个是一个编程题让把一个数按照1000,000,000这样的状态输出,总之都不是很难;百度被称为是炮灰的坟墓,进入面试的人很