css面试题--定位与浮动

news2024/11/27 18:39:11

1、为什么需要清除浮动?

        在非IE浏览器下,容器不设高度且子元素浮动时,容器高度不能被内容撑开,内容会溢出到容器外面而影响布局。这种现象被称为浮动。

        浮动的原理:浮动元素脱离文档流,不占用空间;浮动元素碰到包含它的边框或其他浮动元素边框停留。

        浮动元素会引起的问题:父元素的高度无法被撑开,影响与父元素同级的元素;与浮动元素同级的非浮动元素会跟随其后;若浮动的元素不是第一个元素,则该元素之前的元素也要浮动,否则会影响页面的展示。

        清除浮动的方式:给父级添加高度;最后一个浮动元素后添加一个空标签,并设置clear:both;包含浮动元素的父元素设置overflow:hidden;使用:after伪元素。

2、clear清除浮动的原理

        元素盒子的边不能和前边的浮动元素相邻,对元素设置clear属性是为了避免浮动元素对该元素的影响,而不是清除浮动。

3、BFC的简单理解

        简单来讲,BFC是一个独立的布局环境,可以理解为一个容器,在这个容器中按照一定的规则进行物品摆放,并且不会影响其它环境中的物品。如果一个元素符合触发BFC的条件,则BFC中的元素布局不受外部的影响。

        创建BFC的条件:

               根元素(body);

                元素设置浮动;

                元素设置绝对定位;

                display值为table-cell、inline-block、flex等;

                overflow的值为scroll、hidden、auto。

        BFC的特点:

                垂直方向上,自上而下排列,和文档流排列一致;

                在BFC中,上下两个相邻容器的margin会重叠;

                计算BFC的高度时,需要计算浮动元素的高度;

                BFC区域不会与浮动元素重叠;

                每个元素的左margin和容器的左border相接触。

        BFC的作用:

                解决margin重叠问题;

                解决高度塌陷问题;

                创建自适应两栏布局。

4、什么是margin重叠问题?如何解决

        两个块级元素的上外边距和下外边距可能会合并为一个外边距,其大小会取其中外边距值大的那个,这个行为就是外边距折叠。脱标的元素,如浮动元素和绝对定位元素等的外边距不会重叠,且重叠只会出现在垂直方向上。

        计算原则:

                如果两者都是正值,就取最大值;

                一正一负,就是算正负相加的和;

                如果都是负值,就用0减去两个中绝对值大的那个。

        解决办法:

                兄弟折叠

底部元素变为行内盒子:display: inline-block
底部元素设置浮动:float
底部元素的position的值为absolute/fixed

        父子重叠:

父元素加入:overflow: hidden
父元素添加透明边框:border:1px solid transparent
子元素变为行内盒子:display: inline-block
子元素加入浮动属性或定位

5、元素的重叠顺序

         元素发生重叠时,有着特定的垂直显示顺序,css盒模型的层叠顺序如下:

                背景和边框:建立当前层叠上下文元素的背景和边框;

                负的z-index;

                块级盒:文档流内非行内级非定位后代元素;

                浮动盒:非定位浮动元素;

                行内盒:文档流内行内级非定位后代元素;

                z-index:0;

                正的z-index。

        当定位元素z-index:auto,生成盒在当前层叠上下文中的层级为0,不会建立新的层叠上下文,除非是根元素。 

6、position的属性有哪些

7、absolute和fixed的共同点与不同点

        共同点:改变行内元素的呈现方式,将display置为inline-block;使元素脱离普通文档流,不再占据文档物理空间;覆盖非定位文档元素。

        相同点:absolute与fixed根元素不同,absolute的根元素可以设置,fixed根元素是浏览器;在有滚动条的页面中,absolute会跟着父元素进行移动,fixed固定在页面的具体位置。

 8、对sticky定位的理解

        sticky定位被称为粘性定位,基于用户的滚动位置来定位。粘性定位的元素是以来用户滚动,在position:relative和position:fixed定位之间切换。具体表现为在跨越特定阈值前为相对定位,跨越阈值后,为固定定位。这个特定的阈值指的是top、right、bottom、left之一。

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

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

相关文章

39-性能分析(下):APIServer性能测试和调优实战

在API上线之前,我们需要知道API的性能,以便知道API服务器所能承载的最大请求量、性能瓶颈,再根据业务对性能的要求,来对API进行性能调优或者扩缩容。通过这些,可以使API稳定地对外提供服务,并且让请求在合理…

java算法day49 | 动态规划part10 ● 121. 买卖股票的最佳时机 ● 122.买卖股票的最佳时机II

121. 买卖股票的最佳时机 class Solution {public int maxProfit(int[] prices) {//1、定义dp数组,表示第i天持股票的状态dp[i][0]表示持有股票dp[i][1]表示不持有股票int[][] dpnew int[prices.length][2];//3、初始化数组dp[0][1]0;dp[0][0]-prices[0];//4、遍历顺…

Linux--进程的概念(二)

目录 一、进程的优先级1.1 基本概念1.2 查看进程优先级1.3 PRI&NI1.4 如何更改进程的优先级1.4.1 用top命令更改进程的nice1.4.2 用renice命令更改进程的nice 1.5 其他概念 二、环境变量2.1 基本概念2.2 常见的环境变量2.3 查看环境变量2.3.1 测试PATH2.3.2 测试HOME2.3.3 …

Android14之智能指针的弱引用、强引用、弱指针、强指针用法区别及代码实例(二百零五)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

LTC4054 充电指示灯转灯电路

由于这个芯片只有CHRG# 引脚,不像4056 那样两个引脚能分别接一个LED,要实现充电指示就必须自己整整外围电路。先说明一下,网上常见的这种接法: 一个LED 直连CHRG# 引脚,我试了是不行的,即使充满电&#xff…

【国际会议火热征稿】2024年应用经济学、管理科学与社会国际学术会议(ICAEMSS 2024)

会议简介 2024年应用经济学、管理科学与社会国际学术会议将聚焦应用经济学和管理科学的前沿问题,深入探讨社会变革中的经济管理与科学应用。参会者将分享最新研究成果,交流学术观点,共同探索经济、管理与社会的融合发展之路。本次会议旨在推…

Zotero + Markdown论文工作流

文章目录 关键步骤Zotero Better BibTeXObsidian Citekey Plugin & WrittingPandoc Export 关键步骤 在Zotero中,使用Better BibTex生成.bib文件,用于提取索引信息。由于后续需要使用pandoc将markdown转换为word或者LaTeX,所以Better Bi…

记Kubernetes(k8s):访问 Prometheus UI界面:Warning: Error fetching server time

记Kubernetes(k8s):访问 Prometheus UI界面:Warning: Error fetching server time 1、报错详情2、解决3、再次访问 PrometheusUI界面 💖The Begin💖点点关注,收藏不迷路💖 1、报错详情 Warning:…

Linux启动过程、启动脚本目录介绍及检测思路分析

一、Linux系统启动过程 1、启动流程: Linux系统的启动过程可以分为5个阶段:内核的引导、运行init、系统初始化、建立终端、用户登录系统。 2、init程序的类型: 1)SysV:init,CentOS 5之前,配置文…

socuretree远程分支没有同步问题

1、选择命令行模式 2、输入git remote update origin --prune 并回车 git remote update origin --prune 是 Git 命令,用于从远程仓库更新本地分支,并删除本地已经不存在于远程仓库的远程跟踪分支

ADP-2-20+ 信号调节 20MHz-2GHzRF功分器 合路器

ADP-2-20 是一款由Mini-Circuits公司出产的功分器(power divider)。这款功分器的工作温度规模为-40C至85C,贮存温度规模为-55C至100C。作为分路器,它的电源输入最高可达1W,内部功耗最大为0.125W。假如超越这些限制&…

【Cesium学习笔记】一、加载Cesium并更换天地图底图

【Cesium学习笔记】一、加载Cesium 一、加载Cesium二、用Viewer显示地球三、更换天地图底图 Ps:本教程所有代码于同一个工程中,运行npm run dev默认首页为App.vue,只需替换App.vue的内容即可切换不同页面。 一、加载Cesium 本项目使用nvm管理node版本&…

李沐23_LeNet——自学笔记

手写的数字识别 知名度最高的数据集:MNIST 1.训练数据:50000 2.测试数据:50000 3.图像大小:28✖28 4.10类 总结 1.LeNet是早期成功的神经网络 2.先使用卷积层来学习图片空间信息 3.使用全连接层来转换到类别空间 代码实现…

Al+医学,用这个中文多模态医学大模型帮你看胸片

随着人工智能技术的飞速发展,AI 在医学领域的应用已经成为现实。特别是在医学影像诊断方面,AI 大模型技术展现出了巨大的潜力和价值,但目前针对中文领域医学大多模态大模型还较少。 今天为大家介绍的这款 XrayGLM,就是由澳门理工…

HackTheBox-Machines--Soccer

文章目录 1 信息收集2 CVE-2021-45010 漏洞利用3 横向移动4 权限提升 Soccer 测试过程 1 信息收集 a.端口扫描:发现22、80、9091端口    b.目录扫描:http://soccer.htb/tiny/    c.子域爆破    d.信息泄漏 nmap -sC -sV 10.129.87.151端口扫描结…

【APUE】网络socket编程温度采集智能存储与上报项目技术------多路复用

作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生在读,研究方向无线联邦学习 擅长领域:驱动开发,嵌入式软件开发,BSP开发 作者主页:一个平凡而乐于分享的小比特的个人主页…

JVM—jps、jstat、jinfo、jmap、jstack的使用

JVM—jps、jstat、jinfo、jmap、jstack的使用 jps jps全称:Java Virtual Machine Process Status Tool 可以查看Java进程,相当于Linux下的ps命令,只不过它只列出Java进程。 jps:列出Jav程序ID和Main函数名称 jps -q:只输出进程ID jps -m …

【星期计算】蓝桥杯

–> 因为这里是结果填空题,我们直接暴力用java自带的BigInteger类。 /*** 试题 A: 星期计算** 本题总分:5 分* 【问题描述】* 已知今天是星期六,请问20的22次方天后是星期几?* 注意用数字 1 到 7 表示星期一到星期日。* * 【答…

Adobe Photoshop 2024 v25.6强大的图形编辑工具

Adobe Photoshop 2024是一款非常强大的图像处理软件,具有丰富的功能和工具,可以满足各种图像处理需求。 软件下载:Adobe Photoshop 2024 v25.6中文激活版 它不仅支持基本的图像编辑和调整,还具有高级的特性,如智能对象…

自定义类型—结构体

目录 1 . 结构体类型的声明 1.1 结构的声明 1.2 结构体变量的创建与初始化 1.3 结构体的特殊声明 1.4 结构体的自引用 2. 结构体内存对齐 2.1 对齐规则 2.2 为什么存在内存对齐 2.3 修改默认对齐数 3. 结构体传参 4.结构体实现位段 4.1 位段的内存分配 1 . 结构体类…