CSS面试题

CSS面试题1.有哪些方式(CSS)可以隐藏页面元素?1.opacity:0本质是将元素的透明度降为0,看起来是隐藏了,但是依然占据空间2.visibility:hidden占据空间3.display:none彻底隐藏元素,元素从文档流中消失,不占据空间4.z-index:-9999原理是将层级放到底部,看起来是隐藏了5.overflow:hidden这个只是隐藏元素溢出的部分6.transform:scale(0,0)将元素缩放为0,但是依然占据空间2.em\px\rem区别?Px:绝对

大家好,又见面了,我是你们的朋友全栈君。

 CSS选择器及其优先级

  • !important声明的样式的优先级最高
  • 内联样式:1000
  • id 选择器 100
  • 如果优先级相同,则最后出现的样式生效;
  • 继承出来的样式优先级最低;

em\px\rem\vw区别

  • px:绝对单位
  • em:相对单位,相对父节点的字体大小
  • rem:相对单位,相对于根节点html的字体大小 
  • vw:天生就是随着屏幕的宽度变化而变化

css几种定位方式?

  • static:静态定位(默认值),正常文档流定位,不脱离文档流
  • relative:相对定位,即元素相对于自身的位置进行定位,不脱离文档流
  • absolute:绝对定位,相对于 static 定位以外的第一个父元素进行定位,脱离文档流
  • fixed:固定定位,根据屏幕视口的位置来定位,脱离文档流
  • inherit:这种方式规定该元素继承父元素的position属性值。 (不常用)
  • sticky: 粘性定位,基于用户的滚动位置来定位。基本上,可以看出是position:relativeposition:fixed的结合体——当元素在屏幕内,表现为relative,当元素要滚出显示器屏幕时,表现为fixed。必须指定 top, right, bottom 或 left 四个属性中的其中一个,粘性定位才会生效。否则其行为与相对定位相同。且元素不会脱离文档流。

元素居中

 1.使用定位属性:父元素相对定位,子元素绝对定位 

CSS面试题

  2.利用css3新增属性transform: translate(-50%,-50%);

CSS面试题

  3.flex布局

CSS面试题

flex布局的属性

参考:https://www.ruanyifeng.com/blog/2015/07/flex-grammar.html
易考点:
flex-flow:是flex-direction和flex-wrap的简写形式
justify-content:定义项目在主轴方向上的排列方式

     假设主轴是水平方向:

  •      flex-start:左对齐
  •      flex-end:右对齐
  •      center:居中
  •      space-between:两端对齐,项目之间的间距相等
  • CSS面试题
  •      space-around:每个项目两侧间隔相等,所以项目之间的间隔比项目与边缘间隔大一倍
  • CSS面试题

flex
    flex-grow、 flex-shrink 、flex-basic的简写 默认是0 1 auto,后面两个值可选

该属性有两个快捷值auto(1 1 auto)和none(0 0 auto)
 

标准盒子模型和IE盒子模型

盒模型分为两种:标准和怪异
盒模型的属性包含margin padding border content
标准盒模型的width = content
怪异盒模型的width = border + padding + content
box-sizing:border-box将采用怪异盒模型
Box-sizing:content-box将采用标准盒模型

 display的属性值及其作用

属性值 作用
none 元素不显示,并且会从文档流中移除。既在网页中不占任何的位置。
block 块类型。默认宽度为父元素宽度,可设置宽高,换行显示。
inline 行内元素类型。默认宽度为内容宽度,不可设置宽高,同行显示。
inline-block 默认宽度为内容宽度,可以设置宽高,同行显示。
list-item 像块类型元素一样显示,并添加样式列表标记。
table 此元素会作为块级表格来显示。
inherit 规定应该从父元素继承display属性的值。

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

(1)行内元素

  • 设置宽高无效;
  • 不支持上下margin设置,支持左右margin的设置;支持padding设置。
  • 不会自动换行;

(2)块级元素

  • 可以设置宽高;
  • 设置margin和padding都有效;
  • 可以自动换行;
  • 多个块状,默认排列从上到下。

重绘回流

1. 浏览器渲染机制
浏览器采用流式布局模型(Flow Based Layout)
浏览器会把HTML解析成DOM,把CSS解析成CSSOM,DOM和CSSOM合并就产生了渲染树(Render Tree)。
然后计算他们在页面上的大小和位置,最后把节点绘制到页面上。
2.重绘
由于节点的属性发生改变或者由于样式发生改变而不会影响布局的,称为重绘,例如outline, visibility, color、background-color等,重绘的代价是高昂的,因为浏览器必须验证DOM树上其他节点元素的可见性。
3.回流
回流是布局需要改变就称为回流。回流是影响浏览器性能的关键因素,因为其变化涉及到部分页面(或是整个页面)的布局更新。一个元素的回流可能会导致了其所有子元素以及DOM中紧随其后的节点、祖先节点元素的随后的回流。
回流必定会发生重绘,重绘不一定会引发回流
4.减少重绘与回流
1、使用 visibility(重绘) 替换 display: none (回流)
2、避免使用table布局,可能很小的一个小改动会造成整个 table 的重新布局。
3、尽可能在DOM树的最末端改变class,
4、合并多次对DOM和样式的修改,然后一次处理掉

chrome的最小字体12px限制最终解决办法

利用css3的transform属性
-webkit-transform: scale(0.90);

BFC

什么是BFC?看这一篇就够了_Leon的博客-CSDN博客_bfc

简单来说就是,BFC是一个完全独立的渲染区域,让空间里的子元素不会影响到外面的布局。

怎样触发BFC

这里简单列举几个触发BFC使用的CSS属性

  • overflow: hidden
  • display: inline-block
  • position: absolute
  • position: fixed
  • display: table-cell
  • display: flex
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138256.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • IdeaVim 基本操作[通俗易懂]

    IdeaVim 基本操作[通俗易懂]IdeaVim基本操作安装插件ideaVim剪贴板与系统剪贴板同步CapsLock键映射为Esc键光标的移动安装插件File-Settings-Plugins,BrowseRepositories,输入ideavim,安装2.重启IntelliJIDEAideaVim剪贴板与系统剪贴板同步在ideavimrc文件中添加一行:setclipboard=unnamedplus,unnamed保存并退出:wq重启IntelliJIDEACaps

    2022年10月1日
    0
  • 小米笔记本、小米游戏本重装原装出厂镜像教程-有百度盘的提取码

    小米笔记本、小米游戏本重装原装出厂镜像教程-有百度盘的提取码转:【新的干货儿】小米笔记本、小米游戏本重装原装出厂镜像教程原文转自:http://bbs.xiaomi.cn/t-36117135作者主页:http://bbs.xiaomi.cn/u-detail-426023643转载仅供学习,感谢原作者分享。【重装前须知】有百度盘的提取码1.本教程完全为个人观点,不代表官方,仅供参考。2.重装系统需谨慎,由此带来的任何问题与本人无…

    2022年6月27日
    297
  • 华为服务器升腾芯片,华为公布昇腾910芯片架构细节:7nm+ EUV工艺、32核达芬奇…

    华为服务器升腾芯片,华为公布昇腾910芯片架构细节:7nm+ EUV工艺、32核达芬奇…在今天开幕的行业顶级活动、第31届HotChips大会上,华为也作为主角之一参加,与AMD、Intel、ARM等巨头一道介绍自家在芯片方面的最新成果。华为此次活动的主题是AI芯片所用的“DaVinci(达芬奇)”架构,成品是去年发布的昇腾310(Ascend310)、昇腾910芯片和麒麟810芯片,另外,AI训练芯片已经应用上了HBM2E内存,即HBM2增强版,SK海力士产品的阵脚传输速率高…

    2022年9月4日
    14
  • tracker服务器地址(每日更新)_hypixel服务器地址

    tracker服务器地址(每日更新)_hypixel服务器地址https://dns.icoa.cn/tracker/udp://tracker.tiny-vps.com:6969/announcehttps://1337.abcvg.info/announcehttps://tracker.fastdownload.xyz:443/announcehttps://opentracker.xyz:443/announceh…

    2022年10月1日
    0
  • 由于Redis后门漏洞导致服务器被注入挖矿脚本解决过程

    由于Redis后门漏洞导致服务器被注入挖矿脚本解决过程由于Redis后门漏洞导致服务器被注入挖矿脚本解决过程事件描述某一天的早晨,我还是像往常一样搭着公交车开启打工仔的一天,一早8.30就到办公室了,坐着玩手机等上班,就这这时突然我组长飞快的回来办公室,回来就说快看看阿里云后台服务,服务是不是挂掉了,我当时就纳闷了一大早的流量不大怎么就宕机了呢,不一会我组长收到了阿里云短信通知监测到恶意脚本,接下来就是脚本的查找前期处理首先是通过阿里云的控制台发现,查看到恶意的进程PID,通过ps-ef|greap5724的确看到了当前进程,前期处理我只

    2022年7月14日
    14
  • linux空文件夹删不掉_linux可以遍历删除空目录吗

    linux空文件夹删不掉_linux可以遍历删除空目录吗请关注本头条号,每天坚持更新原创干货技术文章。如需学习视频,请在微信搜索公众号“智传网优”直接开始自助视频学习。1.rmdir命令简介本文主要介绍rmdir命令,该命令用于删除Linux上的空目录。对于非空目录,请使用rm命令。2.rmdir命令选项-p或–parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;–ignore-fail-on-non-empty:此…

    2025年5月27日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号