当前位置: 首页 > article >正文

CSS2023年面试题汇总~~~~持续更新中!!!!

文章目录

  • 1.元素水平垂直居中的方法有哪些?
  • 2.flex布局
  • 3.position定位
  • 4.display:none与visibility:hidden的区别

1.元素水平垂直居中的方法有哪些?

  1. 利用定位+margin:auto
  2. 利用定位+margin:负值
  3. 利用定位+transform
  4. table布局
  5. flex布局
  6. grid布局

其中2,4两种方案需要知道居中元素宽高的才能实现
具体的实现方式由于篇幅限制,请移步至☞我的另一篇文章,点击跳转☞。

2.flex布局

Flex布局有两个重要的概念:容器项目。容器是指应用了Flex布局的父元素,项目是指容器内被布局的子元素

Flex布局的实现,主要通过在容器上应用display:flex 或者 display:inline-flex属性,以及通过在容器上设置justify-contentalign-items等属性来控制项目的排列。

容器属性有:

  1. flex-direction:决定主轴的方向(即项目的排列方向)
  2. flex-wrap:弹性元素永远沿主轴排列,那么如果主轴排不下,通过flex-wrap决定容器内项目是否可换行
  3. flex-flow:是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap
  4. justify-content:定义了项目在主轴上的对齐方式
  5. align-items:定义项目在交叉轴上如何对齐
  6. align-content:定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用

容器成员属性如下:

  1. order:定义项目的排列顺序。数值越小,排列越靠前,默认为0
  2. flex-grow:定义项目的放大比例(容器宽度>元素总宽度时如何伸展)
  3. flex-shrink:定义了项目的缩小比例(容器宽度<元素总宽度时如何收缩)
  4. flex-basis:设置的是元素在主轴上的初始尺寸
  5. flex:flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto
  6. align-self:允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性

总的来说,Flex布局非常灵活,能够满足不同的排列需求,同时也比传统的布局方式更加方便和易用
在这里插入图片描述

3.position定位

由于篇幅限制,查看更详细解释请移步至☞我的另一篇文章,点击跳转☞
1.relative定位
相对于元素原本的位置进行定位,相对定位的特点是不会影响其他元素的位置

2.absolute 定位
相对于其最近的已定位父元素进行定位,如果没有已定位的父元素,则相对于body元素进行定位。
是会影响其他元素的位置,使元素的位置与文档流无关,因此不占据空间。

3.fixed 定位
元素相对于浏览器窗口进行定位,特点是在滚动页面时元素位置不变。使元素的位置与文档流无关,因此不占据空间,和其他元素重叠。

3.sticky 定位
粘性定位:基于用户的滚动位置来定位。
粘性定位的元素是依赖于用户的滚动,在 position:relative 与 position:fixed 定位之间切换
元素定位表现为在跨越特定阈值前为相对定位,之后为固定定位

4.display:none与visibility:hidden的区别

一、display:none
这个属性会让元素从文档流中完全消失,即该元素原来所占的空间也会被释放。这意味着,如果你使用 display:none 来隐藏一个元素,那么它将不再占用任何空间,其他元素会自动移动来填补它的位置。这种方式可以完全隐藏元素,但是会影响页面布局

二、visibility:hidden
这个属性会让元素隐藏,但元素的占位空间不会被释放,即元素原来所占的空间仍然被保留。这意味着,如果你使用 visibility:hidden 来隐藏一个元素,那么它将不再显示,但是其他元素不会自动移动来填补它的位置,因为该元素的占位空间还存在。这种方式不会影响页面布局,但是可能会导致页面出现空白区域

总结
因此,如果你需要完全隐藏元素并影响页面布局,可以使用 display:none。如果你只需要隐藏元素但不影响页面布局,可以使用 visibility:hidden。


http://www.kler.cn/a/10047.html

相关文章:

  • Vue2+3 —— Day3/4
  • layui 文件上传前检查文件大小,后面再点上传出现重复提交的问题
  • 模型结构及对比
  • 03WIFI与蓝牙1——基于全志V3S的Linux开发板教程笔记
  • Android Studio | 最新版本配置要求高,JDK运行环境不适配,导致无法启动App
  • SNH48 GROUP燃动杭州 第五届偶像运动会落下帷幕
  • 【vue2】使用elementUI进行表单验证实操(附源码)
  • 第一个禁止ChatGPT的西方国家
  • Web 攻防之业务安全:密码找回流程绕过测试.(利用链接跳到后面去)
  • 【华为OD机试真题】计算至少需要多少个快递主站点(javapython)
  • 代码随想录算法训练营第四十八天-动态规划9|198. 打家劫舍,213. 打家劫舍 II,337. 打家劫舍 III
  • 基于虚拟同步发电机的孤岛逆变器控制策略(孤岛VSG)
  • 数组的ES6方法(回顾)
  • GPTCache:LLM 应用必备的【省省省】利器
  • 数据模型的基础知识
  • Bootstrap学习笔记(1.0)
  • Cheaptrick算法
  • 30个思科设备巡检命令,值得每位网络工程师收藏!
  • 面试了上百位性能测试后,我发现了一个令人不安的事实...
  • Netty进阶《Future和Promise详解》
  • 从《移动互联网应用程序(App)收集使用个人信息自评估指南》看个人信息保护着力点
  • 结合ESP32浅谈一下:芯片、模组、开发板的关系
  • 七大排序
  • C++之 继承 (inheritance)
  • 【HDR图像处理】HDR图像的色调映射 | python+opencv代码实现总结
  • ASEMI代理ADA4940-1ACPZ-R7原装ADI车规级ADA4940-1ACPZ-R7