1.css 盒子模型
  css包含了内容(content) ,内边距(padding),边框(border),外边距(margin) 等因素。
  css 标准盒子模型宽包括:margin+border+padding+width
  IE盒子模型的宽包括:border+padding+width
 
2.css 选择器优先级
  id 选择器: #main{} class选择器:.main{} 元素选择器:div 子选择器ul>li{} 后代选择器:div p{}
  伪类选择器::hover,::selection,.action,:first-child,:last-child,:first-of-type,:last-of-type,:nth-of-type(n),:nth-of-last-type(n)
  伪元素选择器: after,:before,属性选择器:input[tupe="text"]
  选择器的优先级:!important->style属性写在元素标签上的内联系样式->id选择器->类选择器->伪类选择器->
  属性选择器->通配符选择器(*)->浏览器选择器。
 
3.css 几种定位的的规则
  static定位普通流定位(默认定位)。

  float浮动定位脱离文档流,父元素的高度不能有它撑开。
  relative相对定位,相对元素的左上上角进行定位,位置可能会移动,但是没有脱离文档流。
  absolute绝对定位,相对于父元素中有relative并且离本元素层级最近的元素的左上角进行定位,如果父带元素中没有relative定位就默认相对body进行定位。
  fixed固定定位:相对于浏览器窗口进行定位,无论滚动条滚动到哪里,都会固定到屏幕的指定位置。
  sticky粘性定位:根据用户的滚动位置在相对和固定定位之间切换。
 
4.水平垂直居中的方案
  行内元素水平居中:需要判断父元素是否是块级元素,如果是块级元素需要将父元素设置为text-align:center.
  块级元素水平居中(指定宽度):给当前元素设置为margin:0 auto;或者父元素为相对地位 子元素设置为绝对定位 设置子元素的
  margin-left:为元素宽度的一半或者设置 transform:translateX(-50%)。
  块级元素水平居中(不指定宽度):需要设置子元素为display:inline-block,给父元素元素设置 text-align:center;
  flexbox布局:给父元素设置添加属性 display:flex;justify-content:center;
  grid布局:给父元素设置 display:grid;place-items:center;
 
5.css中常用的函数
分类
函数
属性函数
attr()
背景图片函数
linear-gradient()、radial-gradient()、conic-gradient()、repeating-linear-gradient()、repeating-radial-gradient()、repeating-conic-gradient()、image-set()、image()、url()、element();
 颜色函数
rgb()、rgba()、hsl()、hsla()、hwb()、color-mod();
图形函数
circle()、ellipse()、inset()、polygon()、path() 
滤镜函数
blur()、brightness()、contrast()、drop-shadow()、grayscale()、hue-rotate()、invert()、opacity()、saturate()、sepia();  
转换函数
matrix()、matrix3d()、perspective()、rotate()、rotate3d()、rotateX()、rotateY()、rotateZ()、scale()、scale3d()、scaleX()、scaleY()、scaleZ()、skew()、skewX()、skewY()、translate()、translateX()、translateY()、translateZ()、translate3d();
数学函数
calc()、min()、max()、mixmax()、repeat()
缓动函数
cubic-bezier()、steps();
其他函数
counter()、counters()、toggle()、var()、 symbols()
 
6.1px 问题的解决
  设置 viewport 的 scale 值
<meta name="viewport" content="initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no" />
  let viewport = document.querySelector("meta[name=viewport]");
  //根据设备像素设置viewport
  if (window.devicePixelRatio == 1) {
viewport.setAttribute("content", "width=device-width,initial-scale=1, maximum-scale=1, minimum-scale=1,
    user-scalable=no" );
  }
  if (window.devicePixelRatio == 2) {
    viewport.setAttribute("content", "width=device-width,initial-scale=0.5, maximum-scale=0.5,
    minimum-scale=0.5, user-scalable=no" );
  }
  if (window.devicePixelRatio == 3) {
    viewport.setAttribute("content", "width=device-width,initial-scale=0.3333333333333333,
   maximum-scale=0.3333333333333333, minimum-scale=0.3333333333333333, user-scalable=no" );
  }
  var docEl = document.documentElement;
  var fontsize = 32 * (docEl.clientWidth / 750) + "px";
  docEl.style.fontSize = fontsize;

  利用伪元素

  // 1条border
  div {
    position: relative;
   &::after {
  position: absolute;
   content: "";
   background-color: red;
   top: 0;
   left: 0;
   width: 100%;
   height: 1px;
    transform: scale(1, 0.5);
    }
  }

  直接写0.5px

 div {
border-top: 0.5px solid red;
}
7.css 常见单位
  px: 物理像素,是相对于显示器分辨率的
  em,rem:em 是相对于父元素的,rem 相对于根元素html
  vw,vh: 和浏览器大小有关的单位,他们的参照对象都是浏览器窗口。
  vw 浏览器窗口宽度的百分比:假设浏览器宽度1000px则 1vw=浏览器宽度的1%=10px
  %:是相对于父元素的,当浏览器的宽度和高改变时,当全元素也会跟着发生变化。
 
8.link 和@import 的区别
  link 引入css 的时候,在页面加入的时候同时加载,@import需要页面完全加载完成后加载。
  link 是xhtml 标签,无兼容性问题,@import 低版本浏览器不支持。
 
9.隐藏元素的方法有哪些
  display:none; visibility:hidden;元素在页面中仍占位置,但是不影响绑定的监听事件。
  opacity:0; 将元素的透明度设置为0,元素在页面中仍占位置,会影响绑定的坚挺事件。
  position:absolute; 通过绝对定位将元素移除可视区域内。z-index:负值、
  transform:scale(0,0) 将元素缩为0来实现元素的隐藏,元素在页面中仍占位置。

  

  
 
 

2025年前端面试准备css篇的更多相关文章

  1. 2019前端面试系列——CSS面试题

    盒模型 /* 红色区域的大小是多少?200 - 20*2 - 20*2 = 120 */ .box { width: 200px; height: 200px; padding: 20px; marg ...

  2. 前端面试之CSS权重问题!

    前端面试之CSS权重问题! 下面的权重按照从小到大来排列! 1.通用选择器(*) 2.元素(类型)选择器 权重1 3.类选择器 权重10 4.属性选择器 5.伪类 6.ID 选择器 权重100 7.内 ...

  3. 前端面试之CSS常用的选择器!

    前端面试之CSS常用的选择器! 标签选择器 <style> /* <!-- 标签选择器 :写上标签名 -->*/ p { color: green; } div { color ...

  4. 前端深入之css篇丨2020年前,彻底掌握css动画【animation】

    写在前面 马上就2020年了,不知道小伙伴们今年学习了css3动画了吗? 说起来css动画是一个很尬的事,一方面因为公司用css动画比较少,另一方面大部分开发者习惯了用JavaScript来做动画,所 ...

  5. 前端深入之css篇丨初探【transform】,手把手带你实现1024程序员节动画

    写在前面 马上就2020年了,不知道小伙伴们今年学习了css3动画了吗? 说起来css动画是一个很尬的事,一方面因为公司用css动画比较少,另一方面大部分开发者习惯了用JavaScript来做动画,所 ...

  6. 前端深入之css篇丨2020年前,彻底掌握css动画

    马上就2020年了,不知道小伙伴们今年学习了css3动画了吗? 说起来css动画是一个很尬的事,一方面因为公司用css动画比较少,另一方面大部分开发者习惯了用JavaScript来做动画,所以就导致了 ...

  7. [转] Web前端优化之 CSS篇

    原文链接: http://lunax.info/archives/3097.html Web 前端优化最佳实践第四部分面向 CSS.目前共计有 6 条实践规则.另请参见 Mozilla 开发者中心的文 ...

  8. 前端开发之css篇

    一.css简介 css(Cascading Style Sheets)层叠样式表,是一种为html文档添加样式的语言,主要有两个功能:渲染和布局.使用css主要关注两个点:查找到标签,属性操作 二.c ...

  9. 前端面试(原生js篇) - DOM

    根据我的面试经历,一般小公司的面试环节,比较关心框架的熟练程度,以及独立开发组件的能力 但大厂通常有五轮以上的面试,而且对 js 基础语法很是看重 于是我总结了一些关于 js 基础的面试对话,有的当时 ...

  10. 前端深入之css篇|link和@import到底有什么区别?

    写在前面 在真正的前端开发中,我们很少去写行内样式和内嵌样式,通常都是去引用外部样式. 而在我们学习之初的外部样式表都是用link引入的,但是当后来我们学习的逐渐深入,发现@import也可以引入样式 ...

随机推荐

  1. 【GitHub】上传代码通用操作等(附下载单个文件夹或文件)

    一.创建GitHub账号以及配置 参考我的另一篇文章:<[Mac系统 + Git]之上传项目代码到github上以及删除某个文件夹> 二.创建新的个人知识库 前面配置完之后,下面讲的再新建 ...

  2. C# WebSocket高并发通信阻塞问题

    项目上遇到使用WebSocket超时问题,具体情况是这样的,OTA升级过程中,解压zip文件会有解压进度事件,将解压进度通过进程通信传给另一进程,通信提示超时异常 小伙伴堂园发现大文件使用Zip解压, ...

  3. 在stable diffussion中完美修复AI图片

    无论您的提示和模型有多好,一次性获得完美图像的情况很少见. 修复小缺陷的不可或缺的方法是图像修复(inpainting).在这篇文章中,我将通过一些基本示例来介绍如何使用图像修复来修复缺陷. 需要的软 ...

  4. LLog:Spring轻量级请求日志监控组件,集成管理面板,支持多条件查询检索

    开源地址 https://gitee.com/lboot/LLog 简介 LLog是基于AOP构建的请求日志记录和查询工具库,通过引入该工具库,完成配置,实现对接口请求日志的记录.查询检索等功能. 请 ...

  5. Angular Material 18+ 高级教程 – 大杂烩

    前言 本篇记入一些 Angular Material 的小东西. Override Material Icon Button Size 参考:Stack Overflow – Change size ...

  6. 【赵渝强老师】Flink的DataSet算子

    Flink为了能够处理有边界的数据集和无边界的数据集,提供了对应的DataSet API和DataStream API.我们可以开发对应的Java程序或者Scala程序来完成相应的功能.下面举例了一些 ...

  7. 支付宝 APP登录 获取用户信息 PHP(转)

    转载自:https://blog.csdn.net/wang78699425/article/details/78666401 支付宝 APP登录 获取用户信息 PHP(转) 支付宝APP登录服务端流 ...

  8. 深入理解HDFS 错误恢复

    我们从动态的角度来看 hdfs 先从场景出发,我们知道 hdfs 的写文件的流程是这样的: 数据以 pipeline 的方式写入 hdfs ,然后对于读取操作,客户端选择其中一个保存块副本的 Data ...

  9. Android Qcom USB Driver学习(三)

    usb hub区分端口 USB 子系统拓扑浅析 USB ID Database VendorID and ProductID usb usb1: New USB device found, idVen ...

  10. 0606-nn.functional

    0606-nn.functional 目录 一.nn.functional 和 nn.Module 的区别 二.nn.functional 和 nn.Module 结合使用 pytorch完整教程目录 ...