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. python pyqt6 QMainWindow 使用QComboBox 窗口移位

    QMainWindow 可拖拽移动,但是点击QComboBox  时,窗口有时会误识别为拖拽移动,导致窗口自动移动位置 在QMainWindow中,新增事件筛选器 # 避免点击QComboBox时,窗 ...

  2. C#自定义控件—旋转按钮

    C#用户控件之旋转按钮 按钮功能:手自动旋转,标签文本显示.点击二次弹框确认(源码在最后边): [制作方法] 用方法找到控件的中心坐标,画背景外环.内圆:再绘制矩形开关,进行角度旋转即可获得: [关键 ...

  3. RxJS 系列 – 概念篇

    前言 很长一段时间没有写 Angular 了 (哎...全栈的命),近期计划又要开始回去写了,于是就开始做复习咯. 我的复习是从 JS > TS > RxJS > Angular,与 ...

  4. MyBatis——案例——删除(单个删除与批量删除)

    删除一个   1.编写接口方法:Mapper接口     参数:id     结果:void /** * 删除 */ int deleteById(int id);   2.编写sql语句:SQL映射 ...

  5. Flutter 这一年:2022 亮点时刻

    回看 2022,展望 Flutter Forward 2022 年,我们非常兴奋的看到 Flutter 社区持续发展壮大,也因此让更多人体验到了令人难以置信的体验.每天有超过 1000 款使用 Flu ...

  6. 将 LLMs 精调至 1.58 比特: 使极端量化变简单

    随着大语言模型 (LLMs) 规模和复杂性的增长,寻找减少它们的计算和能耗的方法已成为一个关键挑战.一种流行的解决方案是量化,其中参数的精度从标准的 16 位浮点 (FP16) 或 32 位浮点 (F ...

  7. Android内存分析命令

    一.内存指标 Item 全称 含义 等价 USS Unique Set Size 物理内存 进程独占的内存 PSS Proportional Set Size 物理内存 PSS= USS+ 按比例包含 ...

  8. 2022年11月中国数据库排行榜:GaussDB获认证进前五,GBase得融资竞逐鹿

    击石乃有火,不击元无烟. 2022年11月的 墨天轮中国数据库流行度排行榜 火热出炉,本月共有246个数据库参与排名,相比上月新增1个数据库.由于国庆节长假,数据库整体热度指数有所降低,所以出现了多数 ...

  9. 创建一个简单的基于MyBatis的项目

  10. 38. data为什么是一个函数

    vue中的data为什么是返回对象的函数,而不是直接使用对象形式 : 我们复用组件的时候,要求每一份data数据之间是独立的,不能互相影响,如果写成对象的形式所有的组件使用一份data数据 ,如果使用 ...