CSS面试题---基础

1、css选择器及优先级

        

        选择器优先级:内联样式>id选择器>类选择器、属性选择器、伪类选择器>标签选择器、微元素选择器

        注意:

                !important优先级最高;

                如果优先级相同,则最后出现的样式生效;

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

                通用选择器、子选择器和相邻兄弟选择器的权重均为0;

                样式表的优先级:内敛样式>内部样式>外部样式>浏览器用户自定义样式>浏览器默认样式

2、css中可继承与不可继承的属性有哪些

         不可继承的属性:

                a、display

                b、文本属性:vertical-align,text-decoration,text-shadow,white-space,unicode-bidi

                c、盒子模型的属性:width、height、margin、border、padding

                d、背景属性

                f、定位属性

                g、生成内容属性:content,counterr-reset,counter-increment

                h、轮廓样式属性:outline-style,outline-width,outline-color、outline

                i、页面样式属性:size、page-break-before,page-break-after

                j、声音样式属性

        可继承属性:

                a、字体系列属性:font-family,font-weight,font-size,font-style

                b、文本系列属性:text-indent,text-align,line-height,word-spacing,letter-spacing,text-transform,color

                c、元素可见性:visibility

                d、列表布局属性:list-style

                f、光标属性:cursor

3、display的属性值及其作用

        

4、display的inline、inline-block和block的区别

        block:块级元素,独占一行

        inline:行内元素

        inline-block:行内块元素

5、行内元素、块级元素

        行内元素:设置宽高无效;可以设置水平方向的margin和padding,不能设置垂直方向的margin和padding;不会自动换行。

        块级元素:可以设置宽高;水平和垂直均可设置margin和padding;可以自动换行;多个块状,默认排列从上到下。

6、隐藏元素的办法

        a、display:none:渲染树不会包含该渲染对象,因此该元素不会再页面中占位置,也不会响应绑定的监听事件,会造成文本的重排

        b、visibility:hidden:元素在页面中仍占据空间,但不会响应绑定的监听事件,不会造成文本的重排

        c、opacity:0:将元素的透明度设置为0,元素在页面中仍占据空间,会响应绑定的监听事件

        d、position:absolute:使用绝对定位将元素从可视区域内移除

        e、z-index:负值:用其他元素遮盖本元素

        f、clip/clip-path:使用元素裁剪来实现,元素在页面中仍占据空间,不会响应监听事件

        g、transform:scale(0,0):将元素缩放为0,元素在页面仍占据空间,不会响应监听事件

7、link和@import的区别

        都是外部引用css的方式:

                link是xhtml标签,除了加载css外,还可以定义rss等其他事务,@import只能加载css;

                link引用css时,在页面载入时同时加载,@import需要页面完全载入以后加载;

                link无兼容问题,@import低版本的浏览器不兼容;

                link支持使用js控制DOM去修改样式,@import不支持。

8、transition和animation的区别

        transition是过渡属性,强调过渡,需要一个触发事件才执行动画。类似于flash的补帧动画,设置一个开始关键帧,一个结束关键帧。

        animation是动画属性,无需触发事件设定好时间后,就可自行执行,且可以循环一个动画。可以设置多个关键帧来完成动画。

9、伪元素和伪类的区别

        伪元素:在内容前后插入额外的元素或样式,但是这些元素实际上不在文档中生成。它们只在外部可见,在文档中无法找到它们。

p::before {content:"伪元素:";}

        伪类:将特殊的效果加到特定的选择器上,是给已有元素添加类别,不会产生新的元素。

p:hover { color: red; }

10、对盒模型的理解 

        css3中的盒模型分为标准盒模型、怪异盒模型(IE盒模型)。

        盒模型都是由margin、border、padding、content组成的。

        在标准盒模型中,width的宽度指的是content的宽度。

        在怪异盒模型(IE盒模型)中,width的宽度等于content+border+padding。

        可以通过设置box-sizing属性来改变盒模型属性:

                content-box:标准盒模型;

                border-box:怪异盒模型(IE盒模型)

11、为什么有时候用translate来改变位置而不是改变定位

        translate是transform属性的一个值,改变transform或opacity不会触发浏览器重新布局或重绘,只会触发复合。而改变绝对定位会触发重新布局,进而触发重绘和复合。使用translate会更高效,可以缩短平滑动画绘制时间。translate改变位置时,元素依然会占据原始空间,绝对定位不会

12、li和li之间有看不见的空白间隔是什么原因引起的?如何解决

        浏览器会把inline内联元素间的空白字符(空格、换行、tab等)渲染成一个空格。为了美观,通常是一个li放在一行,这导致li换行后产生的换行字符,会变成一个空格,占用一个字符的宽度。

        解决办法:

          a、为所有的li设置float:left,有些情况是不能设置浮动的

          b、将所有的li写在同一行,不美观

          c、给ul设置font-size:0,ul内其余字符还需重新设置大小,且safiri浏览器问题依旧存在

          d、给ul设置letter-spacing:-8px,给li设置letter-spacing:normal

13、css3的新特性

        新增各种css选择器,圆角,多列布局,阴影和反射,文字特效,文字渲染,线性渐变,旋转,缩放,定位,倾斜,动画,多背景

14、对css精灵图的理解

        优点:减少http请求,提高了页面的性能,能减少图片的字节

        缺点:测量背景位置时不好测量,维护图片也麻烦

15、什么是物理像素、逻辑像素和像素密度

        以iphoneXS为例,当以px为单位书写css时,其宽度为414px*896px,也就是说当赋予一个div的宽度为414px时,这个div就会填满手机的宽度;

        用尺子测量这部手机的物理像素为1242*2688,1242/414=3,也就是说,在单边上,一个逻辑像素=三个物理像素,就说这个屏幕的像素密度为3,也就是常说的3倍屏。

        对于图片来说,若想不失真,1个图片像素至少要对应1个物理像素,假如原始图片是500*300,那么在3倍屏上,就要放一个1500*900的图片才能不失真。

16、margin和padding的使用场景

        在border外侧添加空白,且空白处不需要背景(色)时,使用margin;

        在border内侧添加空白,且空白处需要背景(色)时,使用padding。

17、对line-height的理解

        line-height指一行文本的高度,包含了字间距,实际上是下一行基线到上一行基线的距离;

        如果一个标签没有定义height属性,那么其最终表现的高度由line-height决定;

        把line-height值设置为height一样大小的值可以实现单行文字的垂直居中。

18、css的预处理器/后处理器时什么?为什么使用他们

        预处理器:如less、sass等,用来预编译,增加了css的复用性、层级性、变量、循环等,让css更加的简洁,增加适应性以及可读性,可维护性等。

        后处理器:如postCss,通常是在完成的样式表中根据css规范处理css,让其更加有效。目前最常做的是给css属性添加浏览器私有前缀,实现跨浏览器兼容性的问题。

        使用原因:结构清晰,易于拓展;可以很方便的屏蔽浏览器私有语法的差异;可以轻松实现多重继承;完美的兼容了css,可用于老项目中。

19、display:inlie-block什么时候回显示间隙

        有空格的时候会有间隙,可以删除空格解决;

        margin正值时,可以使用margin负值解决;

        使用font-size时,可以通过设置font-size:0、letter-spacing、word-spacing解决。

20、单行、多行文本溢出隐藏

        单行文本:

overflow: hidden;            // 溢出隐藏
text-overflow: ellipsis;      // 溢出用省略号显示
white-space: nowrap;         // 规定段落中的文本不进行换行

        多行文本: 

overflow: hidden;            // 溢出隐藏
text-overflow: ellipsis;     // 溢出用省略号显示
display:-webkit-box;         // 作为弹性伸缩盒子模型显示。
-webkit-box-orient:vertical; // 设置伸缩盒子的子元素排列方式:从上到下垂直排列
-webkit-line-clamp:3;        // 显示的行数

21、判断元素是否到达可视区域

         window.innerHeight是浏览器可视区域的高度;

        document.body.scrollTop/document.documentElement.scrollTop是浏览器滚动过的距离;

        offsetTop是元素顶部距离文档顶部的高度(包括滚动条的高度);

        内容到达显示区域:offsetTop < window.innerHeight + document.body.scrollTop

22、z-index在什么情况下会失效

        z-index通常用在有两个重叠的标签,在一定情况下,一个标签显示在另一个标签上的情况。z-index值越大,就越在上层。z-index元素的position需要时absolute、relative、fixed。

        失效的情况:

            父元素position:relative时,子元素z-index失效。将父元素改为absolute或static;

            元素没有设置position属性;

            元素在设置z-index时还设置了float。去除float,改为display:inline-block。

 

     

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/788008.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3 组合式函数Composables

简介 “组合式函数”(Composables) 是一个利用 Vue 的组合式 API 来封装和复用有状态逻辑的函数。 我们可以把一些可以复用的逻辑封装成组合式函数放到js文件中&#xff0c;在vue文件中通过import来使用这些逻辑&#xff0c;使vue文件更瘦&#xff0c;逻辑更清晰。 一个小栗子…

.[nicetomeetyou@onionmail.org].faust勒索病毒数据怎么处理|数据解密恢复

引言&#xff1a; 在数字化日益普及的今天&#xff0c;网络安全问题已成为人们不可忽视的挑战。其中&#xff0c;勒索病毒作为一种极具破坏性的恶意软件&#xff0c;已多次在全球范围内制造了重大危机。其中&#xff0c;名为.[nicetomeetyouonionmail.org].faust、[support202…

Sora可能会改变我们的思维方式

当经济学家评估生成式人工智能对人类工作的影响时&#xff0c;教育家也有自己的担忧&#xff0c;毕竟在写作、答疑等领域&#xff0c;AI所展现的能力已经令许多人类望尘莫及&#xff0c;学者们可能有这样的思考&#xff1a;散文是否会继续主导人类的交流和论证。 社交媒体和新闻…

基于Scala开发Spark ML的ALS推荐模型实战

推荐系统&#xff0c;广泛应用到电商&#xff0c;营销行业。本文通过Scala&#xff0c;开发Spark ML的ALS算法训练推荐模型&#xff0c;用于电影评分预测推荐。 算法简介 ALS算法是Spark ML中实现协同过滤的矩阵分解方法。 ALS&#xff0c;即交替最小二乘法&#xff08;Alte…

2024年最新github之Go语言开源项目top50排行榜项目

如果有帮助到您还请动动手帮忙点赞&#xff0c;关注&#xff0c;评论转发&#xff0c;感谢啦&#xff01;&#x1f495;&#x1f495;&#x1f495;&#x1f618;&#x1f618;&#x1f618; 本文由Butterfly一键发布工具发布 2024年最新github之Go语言开源项目top50排行榜项目…

4.2 JavaWeb Day05分层解耦

三层架构功能 controller层接收请求&#xff0c;响应数据&#xff0c;层内调用了service层的方法&#xff0c;service层仅负责业务逻辑处理&#xff0c;其中要获取数据&#xff0c;就要去调用dao层&#xff0c;由dao层进行数据访问操作去查询数据&#xff08;进行增删改查&…

Java面试题:解释Java泛型的主要用途,并说明泛型擦除的概念。

Java泛型&#xff08;Generics&#xff09;的主要用途是提供一种编写可重用且类型安全的代码的方法。它们允许在编程时使用类型参数&#xff0c;这些类型参数可以在运行时被具体的类或接口替换。泛型的主要优点包括&#xff1a; 类型安全&#xff1a;泛型编译时会进行类型检查…

如何通过docker安装seata

在现代分布式系统中&#xff0c;保证数据一致性和事务的原子性是非常重要的。Seata 是一种开源的分布式事务解决方案&#xff0c;为分布式系统中的事务管理提供了可靠的支持。通过 Docker&#xff0c;我们可以轻松地部署和管理 Seata&#xff0c;从而简化了部署流程。本篇博客将…

new mars3d.layer.HeatLayer({实现动态修改热力图半径

1.使用热力图插件的时候&#xff0c;实现动态修改热力图效果半径 2.直接修改是不可以的&#xff0c;因为这个是热力图本身的参数。 因此我们需要拿到这个热力图对象之后&#xff0c;参考api文档&#xff0c;对整个 heatLayer.heatStyle进行传参修改。 heatStyle地址&#x…

HarmonyOS 应用开发之featureAbility接口切换particleAbility接口切换

featureAbility接口切换 FA模型接口Stage模型接口对应d.ts文件Stage模型对应接口getWant(callback: AsyncCallback<Want>): void; getWant(): Promise<Want>;ohos.app.ability.UIAbility.d.tslaunchWant: Want;startAbility(parameter: StartAbilityParameter, c…

redis学习-缓存穿透、缓存击穿、缓存雪崩

1.缓存穿透 大量查询数据库中没有的数据。 当用户在redis缓存中查询不到想要的信息时&#xff0c;会进入数据库中查询&#xff0c;此时如果同一时间有大量用户从redis中查询不到信息&#xff0c;就都会去数据库中查询&#xff0c;此时数据库就可能会因为压力过大而停止服务&…

【MySQL系列】使用 ALTER TABLE 语句修改表结构的方法

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

智慧驿站式的“智慧公厕”,给城市新基建带来新变化

随着智慧城市建设的推进&#xff0c;智慧驿站作为一种多功能城市部件&#xff0c;正逐渐在城市中崭露头角。这些智慧驿站集合了智慧公厕的管理功能&#xff0c;为城市的新基建带来了全新的变革。本文以智慧驿站智慧公厕源头实力厂家广州中期科技有限公司&#xff0c;大量精品案…

Swagger使用配置笔记

Swagger使用配置笔记 简介 Swagger 是一个规范和完整的框架&#xff0c;用于生成、描述、调用和可视化 RESTful 风格的 Web 服务(https://swagger.io/)。 它的主要作用是&#xff1a; 使得前后端分离开发更加方便&#xff0c;有利于团队协作接口的文档在线自动生成&#xff0…

FreeRTOS--3

1.总结任务调度算法之间的区别&#xff0c;重新实现一遍任务调度算法的代码。 一&#xff0c;抢占式调度&#xff1a;高优先级的任务可以打断低优先级任务的执行。 抢占式调度适用于任务优先级不同的任务。使用默认的任务去创建一个优先级比他高的任务&#xff0c;观察抢占式调…

免试生常问的一些问题汇总---专升本学习篇

1.你怎么理解你申请的专业? 答:软件工程室一门涉及软件开发、维护和管理的工程学科。它结合了计算机科学、工程学和管理科学的原理,皆在通过系统化、规范化的方法来开发高质量的软件系统。 1.技术和支持 :软件工程包括编程语言、算法、数据结构、软件设计模式、软件测试、…

HTML基础:脚本 script 标签

你好&#xff0c;我是云桃桃。 1枚程序媛&#xff0c;大专生&#xff0c;2年时间从1800到月入过万&#xff0c;工作5年买房。 分享成长心得。 255篇原创内容-公众号 后台回复“前端工具”可获取开发工具&#xff0c;持续更新中 后台回复“前端基础题”可得到前端基础100题汇…

CSS(二)---【常见属性、复合属性使用】

零.前言 本篇文章主要阐述CSS常见属性、复合属性&#xff0c;更多前置知识请见作者其它文章&#xff1a; CSS(一)---【CSS简介、导入方式、八种选择器、优先级】-CSDN博客 1.CSS属性 CSS的属性有上百个&#xff0c;但是我们并不需要全部学习&#xff0c;只要我们学习一部分…

MuJoCo 入门教程(一)

系列文章目录 前言 一、简介 MuJoCo 是多关节接触动力学&#xff08;Multi-Joint dynamics with Contact&#xff09;的缩写。它是一个通用物理引擎&#xff0c;旨在促进机器人、生物力学、图形和动画、机器学习以及其他需要快速、准确地仿真铰接结构与环境交互的领域的研究和开…