面经 | css

CSS

  • CSS
    • position
    • display
    • flex: 1
    • 元素居中
      • flex+align-item+justify-content
      • absolute+margin:auto
    • align-item vs vertical-align

CSS

position

  • static: 默认。就是自然顺序,从上到下,从左到右,爱着你排列;
  • absolute:绝对。原点是:最近的非static的父(上级)元素。
    • dom是一棵树。当前节点的父节点如果是absolute或relative,那么原点就是父节点,如果不是,那么就找父亲的父亲,而不是找父亲的兄弟,或自己的兄弟。
  • fixed: 固定。相对于浏览器。
  • relative:相对。相对于正常文档流中的自己。
  • inherit:继承父元素

display

  • flex 弹性。可以用一些flex盒子的相关属性;align-item justify-content
  • table-cell 单元格布局。 把子元素当成td,子元素就被当成了行内元素,好处,比如可以用vertical-align 直接垂直对齐。

flex: 1

flex:1是felx:1 1 0的简写,是flex-grow:1;flex-shirnk:1;flex-basis:0的简写;

  • 三个属性取值范围:0 1 auto;
  • flex-grow:1 表示,有剩余空间的时候,元素会尽可能拉伸填充; 相反取0,就是有剩余空间的时候也不拉伸;
  • flex-shrink:1 表示,有没有剩余空间的时候,元素会尽可能地缩小;相反取0,就是没有剩余空间的时候也不允许压缩。
  • flex-basis:0 表示,元素在主轴上的初始宽度为0,往往通过设置为0,保证所有元素分得的宽度是一样的,相反,为1,表示初始状态会保持原来的大小。
  • 可能flex-basis不好理解。其实就是flex元素的大小可以由上面三个值控制,你可以给一个初始大小:flex-basis,然后浏览器根据flex-basis来进行grow和shirnk;没特意指定basis的话,basis默认就是元素本身的大小。其实感觉basic为0和1的效果都是一样的,可能a元素本身是10px;b元素是20px;都设置成basic:0不是说两个元素宽度都是0px了,反而是说都一样长
    可以在下面网址试一下:
    https://codepen.io/kkkaloha/pen/yLdrNxq

元素居中

常见:

常见元素居中实现方法
掌握熟悉上面的一两种写下就行了

flex+align-item+justify-content

  display:flex;justify-content:center; // 水平align-items:center; // 垂直

absolute+margin:auto

父元素是非static元素

  position:absolute;right:0px;left:0px;top:0px;bottom:0px;margin:auto;
  • 详情解释
    • 首先absolute是为了让文档脱离文档流,然后用top等属性来控制;如果元素只指定了absolute,那么实际浏览器是不知道元素在哪儿了,所以必须指定top,left,right,bottom。而且你发现,如果你指定了元素的高度和宽度,top:0,bottom:0,那么会往top靠近。同理,往left靠。
    • 拿水平举例子,为什么left:0,right:0不能实现水平居中呢?因为left:0,right:0是对元素进行拉伸实现左右边距。如下图,可以看到前后,是拉伸了蓝色元素。
      在这里插入图片描述
      在这里插入图片描述
    • 那我再次基础上固定宽度呢?width:100px;left:0;right:0; 也不行。不过,由于指定了left和right,所以浏览器至少知道了元素在水平方向上的位置;所以如果这个时候加上margin:auto是可以实现水平居中的。
    • margin:auto就是告诉浏览器去计算元素的左右剩余空间然后平均分布一下。虽然指定宽度后,元素还是靠着左边,但实际浏览器看到的是,元素在left:0;right:0的地方,然后到这个地方去计算元素的左右边距情况。也就是left:0;right:0这一块区域都是元素的,但元素可能由于width限制了,没有撑满,然后margin会去计算这个区域类,元素的边距情况,然后均分;在这里插入图片描述
    • 所以,同理,告诉浏览器,在top:0和bottom:0这个区域内去均分剩余空间。
    • 切记,你不指定top这些方位,虽然元素看起来停留在左上角,好像是有坐标什么,实际是没有的。指定了,margin才能生效。
    • margin:auto就是均匀分配上下左右四个方向;margin:0 auto只均分左右方向。

align-item vs vertical-align

  • 效果都是垂直居中;只不过作用的元素和使用的环境不同。
  • align-item是flex容器的属性,适用于flex容器中的所有元素
  • vertical-align作用于行内(inline)元素和表格单元格:span a img input label 等等;div是块状元素,不过可通过inline设置成行内元素;
  • 与之对应的就是 justify-content vs text-align;应该大差不差

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/53543.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何备份SqlServer数据库

第一步:登录你要备份的服务器数据库ssms 第二步:选择你要备份的数据库 此处已PZ-SJCS 数据库为例 右键该数据库-->任务-->备份 第三步:选择你备份的类型备份组件等,目标磁盘 ,点击添加选择将你备份的文件备份那…

数据结构~二叉搜索树

文章目录 一、二叉树搜索的概念二、二叉树搜索的结构二叉树搜索的性能分析二叉树搜索的插入二叉树搜索的查找二叉树搜索的删除 三、二叉搜索树key和key/value使用场景四、二叉树搜索的练习将二叉搜索树就地转化为已排序的双向循环链表从前序与中序遍历序列构造二叉树二叉树的前…

react父子组件数据传递及相关操作

组件创建 坑1:组件名字的首字母记得大写 方式一:类组件(老版本的方式) Form.create() //很关键,不加的话父子嵌套时会报找不到某些组件的错 class Child extends React.Component { componentDidMount(){this.props…

茶思屋直播|TinyEngine+AI:聚焦主航道,在实践中探索低代码技术黑土地

低代码引擎使能开发者定制低代码平台。它是低代码平台的底座,提供可视化搭建页面等基础能力,既可以通过线上搭配组合,也可以通过cli创建个人工程进行二次开发,实时定制出自己的低代码平台。适用于多场景的低代码平台开发&#xff…

GIS开发常用的开源地图数据框架有哪些?

学完Web前端开发,还需要掌握哪些内容?本篇文章再给大家主要讲讲针对WebGIS开发的地图和可视化数据库。 Echarts ECharts是一个使用 JavaScript 实现的开源可视化库。它可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(…

python 逻辑语句简记

什么语言都少不了逻辑处理语句的使用,python的逻辑处理语句有自身的使用特点,稍稍总结记录一下 一、断言 assert 条件 条件触发,程序执行中断 二、条件语句 if 条件: 执行内容 三、循环语句 while 条件: 循环体…

LTE SSS产生过程中z序列的介绍和MATLAB以及C语言实现

参考3GPP 36.211 6.11章节 接上期介绍完LTE SSS产生过程中加扰序列c的产生和代码实现,本期介绍一下LTE SSS产生过程中加扰序列z的原理和MATLAB以及C语言的实现。 SSS产生过程中用到的加扰Z1序列有两个,一个是 另一个是 两个序列是由一个m序列z移位而来…

.env文件详解(vite项目全局配置文件)

.env文件是一个用于存储环境变量的文件。在开发和部署应用程序时,经常需要在不同的环境中配置不同的变量,例如 API 地址、数据库连接信息、密钥等。在许多应用程序中,.env 文件通常包含一个或多个键值对,用于存储环境变量。 Vite 中的 .env 文件还可以用于配置构建时的变量…

“一屏显江山”,激光显示重构「屏中世界」

【潮汐商业评论/原创】 2024年国庆期间,曾感动过无数国人的舞蹈诗剧《只此青绿》改编的同名电影即将上映,而这一次观众们不必走进电影院,在家里打开官方合作的海信激光电视也能享受到同等的视听效果,这是激光电视在观影场景领域的…

【C++ 基础数学 】2121. 2615相同元素的间隔之和|1760

本文涉及的基础知识点 基础数学 LeetCode2121. 相同元素的间隔之和 难度分:1760 令2165,和此题几乎相等。 给你一个下标从 0 开始、由 n 个整数组成的数组 arr 。 arr 中两个元素的 间隔 定义为它们下标之间的 绝对差 。更正式地,arr[i] 和…

rockylinux9.4单master节点k8s1.28集群部署

kubernetes集群部署 常见的 k8s 部署方式包括:二进制包、kubeadm 工具、云服务提供商、或通过一些开源的工具搭建,例如:sealos、kuboard、Runcher、kubeSphere。 本文使用kubeadm的部署方式,部署k8s1.28版本 我本地安装资源规划…

Linux 进程2

环境变量 再Linux操作系统中一切皆文件,这个环境变量自然也是一个文件,它的作用是辅助我们使用操作系统还可以辨识我们是什么用户(一般用户,root用户)。 env是读取完整环境变量的指令,里面记录了许多我登录操作系统所用的用户的信…

随笔 程序运行的基本原理

程序是如何运行,又是如何崩溃的? 正如标题所言,今天我们来聊聊程序是如何执行的?以及又是如何崩溃的?我们哼哧哼哧写的代码并不是程序,本质上不过是一个文本文件。即便我们将我们写的代码通过编译生成的可…

用Go语言构建健壮的并发系统:深入理解错误传播与处理

解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 在当今的软件开发中,构建并发和分布式系统已经成为常态。然而,在这些系统中,错误的发生频率高且定位困难。如果我们能够深入考虑错误如何在系统中传播,以及最终如何呈现给用户,那么我们就能为自己、团队和用…

apache paimon简介(官翻)

介绍 如下架构所示: 读/写操作: Paimon 支持多样化的数据读写方式,并支持 OLAP 查询。 读取: 支持从历史快照(批处理模式)中消费数据,从最新偏移量(流处理模式)中读取数据,或以混合方式读取增量快照。写入: 支持从数据库变更日志(CDC)进行流式同步,从离线数据中…

构建高效企业客户管理系统:SpringBoot应用

1 绪论 1.1研究背景 随着网络不断的普及发展,企业客户管理系统依靠网络技术的支持得到了快速的发展,首先要从员工的实际需求出发,通过了解员工的需求开发出具有针对性的首页、个人中心、员工管理、客户信息管理、行业类型管理、项目信息管理、…

LabVIEW界面输入值设为默认值

在LabVIEW中,将前面板上所有控件的当前输入值设为默认值,可以通过以下步骤实现: 使用控件属性节点:你可以创建一个属性节点来获取所有控件的引用。 右键点击控件,选择“创建” > “属性节点”。 设置属性节点为“D…

HDMI20协议解析_Audio_Clock_Regeneration

HDMI20协议解析_Audio_Clock_Regeneration 1.版本说明 日期作者版本说明20240918风释雪初始版本 2.概述 当通过HDMI传输音频信号时,Audio Clock Regeneration(ACR)是必须要传输的数据包之一; HDMI传输过程中,音频采样…

CentOS7搭建Hadoop3集群教程

一、集群环境说明 1、用VMware安装3台Centos7虚拟机 2、虚拟机配置:2C,2G内存,50G存储 3、集群架构设计 从表格中,可以看出,Hadoop集群,主要有2个模块服务,一个是HDFS服务,一个是YAR…

经典sql题(七)查找直播间最大在线人数

使用 SQL 分析房间用户状态变化 本文将详细介绍如何使用 SQL 的窗口函数和聚合函数,分析用户在房间中的状态变化,目标是计算每个房间指定时间段内的最大用户状态。 示例数据 假设我们的数据表包含以下字段: room_iduser_idlogin_timelogo…