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,一经查实,立即删除!

相关文章

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…

4.2 JavaWeb Day05分层解耦

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

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…

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

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

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

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

FreeRTOS--3

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

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;旨在促进机器人、生物力学、图形和动画、机器学习以及其他需要快速、准确地仿真铰接结构与环境交互的领域的研究和开…

数据结构(初阶)第二节:顺序表

从本文正式进入对数据结构的讲解&#xff0c;开始前友友们要有C语言的基础&#xff0c;熟练掌握动态内存管理、结构体、指针等章节&#xff0c;方便后续的学习。 顺序表&#xff08;Sequence List&#xff09; 线性表的概念&#xff1a;线性表&#xff08;linear list&#xff…

手写简易操作系统(二十二)--时间管理

前情提要 上一节我们实现了硬盘的驱动&#xff0c;本来这一节打算实现文件系统的&#xff0c;但是文件系统中有个时间属性&#xff0c;所以这里我们先实现操作系统的时间管理。 一、除法 我们的系统是一个32位的系统&#xff0c;在编译一些除法的时候编译的时候没问题&#…

保持ssh断开后,程序不会停止执行

保持ssh断开后&#xff0c;程序不会停止执行 一、前言 笔者做远程部署搞了一阵子&#xff0c;快结项时发现一旦我关闭了ssh连接窗口&#xff0c;远程服务器会自动杀掉我在ssh连接状态下运行的程序。 这怎么行&#xff0c;岂不是想要它一直运行还得要一台电脑一直打开ssh连接咯…

曲线降采样之道格拉斯-普克算法Douglas–Peucker

曲线降采样之道格拉斯-普克算法Douglas–Peucker 该算法的目的是&#xff0c;给定一条由线段构成的曲线&#xff0c;找到一条点数较少的相似曲线&#xff0c;来近似描述原始的曲线&#xff0c;达到降低时间、空间复杂度和平滑曲线的目的。 附赠自动驾驶学习资料和量产经验&…

【C语言】“vid”Microsoft Visual Studio安装及应用(检验内存泄露)

文章目录 前言安装包获取配置VLD完成 前言 我们在写代码时往往容易存在内存泄漏的情况&#xff0c;所以存在这样一个名为VLD的工具用来检验内存泄漏&#xff0c;现在我来教大家安装一下 安装包获取 vld下载网址&#xff1a;https://github.com/KindDragon/vld/releases/tag/…

YOLOv8结合SCI低光照图像增强算法!让夜晚目标无处遁形!【含端到端推理脚本】

这里的"SCI"代表的并不是论文等级,而是论文采用的方法 — “自校准光照学习” ~ 左侧为SCI模型增强后图片的检测效果,右侧为原始v8n检测效果 这篇文章的主要内容是通过使用SCI模型和YOLOv8进行算法联调,最终实现了如上所示的效果:在增强图像可见度的同时,对图像…

【中文视觉语言模型+本地部署 】23.08 阿里Qwen-VL:能对图片理解、定位物体、读取文字的视觉语言模型 (推理最低12G显存+)

项目主页&#xff1a;https://github.com/QwenLM/Qwen-VL 通义前问网页在线使用——&#xff08;文本问答&#xff0c;图片理解&#xff0c;文档解析&#xff09;&#xff1a;https://tongyi.aliyun.com/qianwen/ 论文v3. : 一个全能的视觉语言模型 23.10 Qwen-VL: A Versatile…

读取信息boot.bin和xclbin命令

bootgen读Boot.bin命令 johnjohn-virtual-machine:~/project_zynq/kv260_image_ubuntu22.04$ bootgen -read BOOT-k26-starter-kit-202305_2022.2.bin xclbinutil读xclbin命令 johnjohn-virtual-machine:~/project_zynq/kv260_image_ubuntu22.04$ xclbinutil -i kv260-smartca…