【前端】求职必备知识点2-CSS:优先级、盒子模型、标准流、浮动流、定位流

news2024/12/22 20:14:10

文章目录

    • CSS优先级
    • 盒子模型
    • 标准流、浮动流、定位流
      • 标准流
      • 浮动流
      • 定位流
    • 思维导图

CSS优先级

  • class类选择器,属性选择器,伪类 的权值为10
  • 元素选择器、伪元素选择器权值为1

在这里插入图片描述

属性选择器:如,将有title的元素变为红色。

[title]
{
color:red;
}

html:

<h1>可以应用样式:</h1>
<h2 title="Hello world">Hello world</h2>
<a title="W3School" href="http://w3school.com.cn">W3School</a>

<hr />

<h1>无法应用样式:</h1>
<h2>Hello world</h2>
<a href="http://w3school.com.cn">W3School</a>

在这里插入图片描述

伪类:

:link :选择未被访问的链接
:visited:选取已被访问的链接
:active:选择活动链接
:hover :鼠标指针浮动在上面的元素
:focus :选择具有焦点的
:first-child:父元素的首个子元素

在这里尝试以下效果:

在这里插入图片描述

伪元素:

::first-letter :用于选取指定选择器的首字母
::first-line :选取指定选择器的首行
::before : 选择器在被选元素的内容前面插入内容
::after : 选择器在被选元素的内容后面插入内容

伪类与伪元素

  • (:)用于伪类,(::)用于伪元素
  • 伪元素:对选择元素的指定部分进行修改样式,常见的有 :before,:after,:first-line,first-letter 等等
  • 伪类:对选择元素的特殊状态进行修改样式,常见的有 :hover,:active,:checked,:focus,:first-child 等等

伪类:CSS 伪类 (w3school.com.cn)

伪元素:CSS 伪元素 | 菜鸟教程 (runoob.com)

常用选择器:
在这里插入图片描述
CSS 选择器参考手册 (w3school.com.cn)

盒子模型

盒子模型(Box Modle)可以用来对元素进行布局,包括内边距Padding,边框Border,外边距Margin,和实际内容Content这几个部分。

盒子模型分为:

  • 标准盒模型
  • 怪异盒模型

怪异模式是“部分浏览器在支持W3C标准的同时还保留了原来的解析模式”,怪异模式主要表现在IE内核的浏览器。

标准盒模型
width/height=content的宽度/高度;

标准盒模型下盒子的大小 = content + border + padding + margin

在这里插入图片描述
怪异盒模型

width/height=(content + border + padding)

怪异盒模型下盒子的大小=width(content + border + padding) + margin

在这里插入图片描述
如何选择盒模型

如果是定义了完整的doctype的标准文档类型,无论是哪种模型情况,最终都会触发标准模式,
如果doctype协议缺失,会由浏览器自己界定,在IE浏览器中IE9以下(IE6.IE7.IE8)的版本触发怪异模式,其他浏览器中会默认为W3c标准模式。

box-sizing

通过属性box-sizing来设置盒子模型的解析模式.

box-sizing:定义引擎如何计算元素的总高度和总宽度

  • content-box:默认值,元素的 width/height 不包含 padding,border,与标准盒子模型表现一致
  • border-box:元素的 width/height 包含 padding,border,与怪异盒子模型表现一致
  • padding-box:将padding算入width范围
  • inherit:指定 box-sizing 属性的值,应该从父元素继承

CSS 盒子模型 | 菜鸟教程 (runoob.com)
CSS盒子模型与怪异盒模型 - Cloud% - 博客园 (cnblogs.com)

标准流、浮动流、定位流

标准流

从上往下,从左往右:
在这里插入图片描述

从元素的布局特性来分,主要可以分为三类元素:块级元素、行内元素、行内块元素。

块级元素

  • 独占一行(width默认为100%,height为0)
  • 宽高内外边距都是可以设置
  • 常见的块级元素:div h1-h6 ul ol li dl dt dd form p

行内元素

  • 宽高靠内容撑开,一行可以放多个
  • 不能设置宽高,就像橡皮筋包住字
  • 常见的行内元素:span b strong i em ins del u

行内块元素

  • 宽高靠内容撑开 ,一行可以放多个
  • 宽高内外边距都是可以设置
  • 常见的行内块元素:Img input a

注意:行内元素和行内块水平排列时,元素之间会出现大约6px的空白间隙,这是由于元素间空白字符(换行符、空格或制表符)导致。

浮动流

  • 半脱标准流的排版方式
  • 主要用来做网页的横向布局
  • 元素设置浮动后,设置宽高起作用,默认在当前包含块左上一排
  • 如果前边有块级元素,会排在元素的下面
  • 浮动分为左浮动:flaot:left 和右浮动:float:right

在这里插入图片描述

关于为什么说浮动流是“半”脱标准流:因为浮动的盒子的位置会受到前面的标准流的影响。
可以看这里:浮动流的半脱标性_XBQ0510Qi的博客-CSDN博客

4个特性

  • :加了浮动的元素盒子是起来的,漂浮在其他标准盒子之上
  • :浮动的盒子原来的位置给了标准流盒子
  • 行内块特性:浮动可以使元素显示模式体现为行内块特性(块级元素若没有设置宽高,浮动后,大小由内容决定;浮动盒子中间没有缝隙)
  • 浮动元素经常和标准流父级搭配使用:先用标准流的父元素排列上下位置,之后内部子元素采取浮动排列左右位置

清除浮动

  • 清除浮动元素造成的影响:父元素因为子级元素浮动引起的内部高度为0的问题(父盒子高度为0则塌陷)
  • 如果父元素有高度是不需要清除浮动的
  • 清除浮动后,父元素会根据浮动的子盒子自动检测高度。父级有了高度,就不会影响下面的标准流了。

语法:

选择器{clear:属性值;}

属性值:

  • left:清除左侧浮动的影响
  • right:右侧
  • both:两侧

清除浮动的策略:闭合浮动,只在父盒子内部影响,不影响外面的其他盒子。

清除浮动的4种方法

  • clearFix

给所有浮动元素的父级加一个clearFix的类名。当一个元素需要清除浮动的时候,直接设置clearFix类名即可

.clearFix::after{
    content:"";  /*必须拥有content属性   内容为空*/
    display: block; /*必须块标签才能清浮动 */
    clear: both; /*清除浮动*/
    height: 0;/*高度为0 不占用空间*/
}
/*兼容ie*/
.clearFix{  
    *zoom:1; 
}
  • 双伪元素
.clearfix::before,
.clearfix::after {
	content: "";
	display: table;
}
.clearfix:after {
	clear: both;
}
/* ie6 7 专门清除浮动的样式*/
.clearfix {
	*zoom:1;
}
  • 父级设置overflow:hidden

子元素浮动后,由于父级元素没有高度,下面的元素会顶上去,造成页面的塌陷。因此,需要给父级加个overflow:hidden属性,这样父级的高度就随子级容器及子级内容的高度而自适应

关于overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷等等)_overflow: hidden;_星星之火M的博客-CSDN博客

  • 浮动元素末尾加一个空标签(W3C推荐),必须是块元素

两种不需要清除浮动情况:

  • 父盒子本身有高度
  • 父盒子本身有float属性(触发了父元素BFC)

一个clear清除浮动的例子:CSS中clear“清除浮动”的作用原理_使用 clear 属性清除浮动的原理?_盗版_好大夫好伐的博客-CSDN博客

清除浮动的原理:

设置了clear属性的元素,相应的会在两侧按照没有浮动元素的样式排下去,所以不会受到浮动元素的影响,从而实现清除浮动

浮动对行内元素和块级元素的不同影响

省流:

  • 行内元素加了浮动:脱离文档流,原本没有宽高的标签有了宽高
  • 块级元素加了浮动:脱离文档流,效果与display: inline-block相似,一行可以多个且宽高为内容的宽高

详细例子:行内元素和块级元素添加浮动后变化_行内元素加浮动_古塔前端的博客-CSDN博客

定位流

在这里插入图片描述

脱离标准流(简称“脱标”)

  • 相对定位(不脱标)
  • 绝对定位(脱标)
  • 固定定位(脱标)

相对定位

  • position:relative
  • 相对于原本的位置进行移动
  • 不会脱离标准流(会继续在标准流中占用一份空间)

由于相对定位是不脱离标准文档流的,而且相对定位的元素会占用标准流中的位置,所以当给相对定位的元素设置margin padding等属性时会影响到标准流中的布局,即margin padding等属性先生效,然后再也生效后位置相对定位

相对定位不脱标的例子:
CSS position 相对定位和绝对定位 | 菜鸟教程 (runoob.com)

绝对定位

  • position:absolute
  • 默认相对于body来定位
  • (如果一个定位元素有祖先元素,且祖先元素也是定位流,那么这个绝对定位的元素就会以定位流的那个祖先元素作为参考点,这里的定位流指的是相对/绝对/固定 定位,静态定位不行)
  • 如果祖先元素中有多个定位元素,那么就会以最近的祖先元素作为参考点
  • 如果一个绝对定位元素是以body作为参考点,那么其实是以网页首屏的宽度和高度作为参考点,而不是以整个网页的宽度和高度作为参考点
  • 脱标
  • 不区分块级元素/行内元素/行内块级元素,被设置为绝对定位的元素都可以设置宽高
  • 绝对定位元素会忽略祖先元素的padding

绝对定位的实例:CSS position 相对定位和绝对定位 | 菜鸟教程 (runoob.com)

绝对定位元素会忽略祖先元素的padding 的实例:

<div class="box3">
	<div class="box4"></div>
</div>
.box3 {
	width: 200px;
	height: 200px;
	background-color: green;
	padding: 10px;
}

.box4 {
	width: 50px;
	height: 50px;
	background-color: yellow;
	position: absolute;
}

效果:

F12后鼠标点击box3盒子的content,显然外面一圈是padding,而box4以box3的content为参照进行绝对定位。

在这里插入图片描述

固定定位

  • position:fixed
  • 被设置的元素不会随着滚动条的滚动而变动位置(参考点是浏览器窗口)
  • 脱标
  • 不区分块级元素/行内元素/行内块级元素,都可以设置宽高(与绝对定位一样)

思维导图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

【CSS】细说网页布局中的标准流、浮动流与定位流 - 掘金 (juejin.cn)
CSS中的标准文档流以及脱标(脱离标准文档流)(六) - 简书 (jianshu.com)
标准流以及脱标元素的特点 - 掘金 (juejin.cn)
【CSS】7 页面布局:浮动 - 知乎 (zhihu.com)
CSS中clear“清除浮动”的作用原理_使用 clear 属性清除浮动的原理?_盗版_好大夫好伐的博客-CSDN博客
关于overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷等等)_overflow: hidden;_星星之火M的博客-CSDN博客
浮动流的半脱标性_XBQ0510Qi的博客-CSDN博客
行内元素和块级元素添加浮动后变化_行内元素加浮动_古塔前端的博客-CSDN博客
定位流和浮动定位 - ilovetesting - 博客园 (cnblogs.com)
CSS position 相对定位和绝对定位 | 菜鸟教程 (runoob.com)

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

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

相关文章

Python pygame(GUI编程)模块最完整教程(8)

上一篇文章&#xff1a; Python pygame(GUI编程)模块最完整教程&#xff08;7&#xff09;_Python-ZZY的博客-CSDN博客 总目录&#xff1a; README.md Python-ZZY/Python-Pygame最完整教程 - Gitee.com 23 进阶声音操作 参考资料&#xff1a; https://pyga.me/docs/ref/…

在编程下仰望

编程的尽头是数学 数学的尽头是物理 物理的尽头是哲学 哲学的尽头是耶稣 路漫漫其修远兮&#xff0c; 各位码农同仁 好自珍重

Kafka第一课概述与安装

生产经验 面试重点 Broker面试重点 代码,开发重点 67 章了解 如何记录行为数据 1. Kafka概述 1.产生原因 前端 传到日志 日志传到Flume 传到HADOOP 但是如果数据特比大&#xff0c;HADOOP就承受不住了 2.Kafka解决问题 控流消峰 Flume传给Kafka 存到Kafka Hadoop 从Kafka…

geoserver编辑样式 【开发工具QGis的初次使用】

geoserver编辑样式 开发工具配置中文语言 geoserver样式的更改 开发工具 链接: geoserver样式style的更改 链接: QGis开发工具的安装及使用 配置中文语言 setting > options > general > 中文 geoserver样式的更改 链接: geoserver样式style的更改 利用QGIs Q…

3DMAX动力学布料模拟插件DynamoCloth使用方法

3DMAX动力学布料模拟DynamoCloth是一个&#xff08;实时&#xff09;GPU加速的3ds Max Cloth动力学插件&#xff0c;与原生Cloth修改器相比&#xff0c;性能提高了10-100倍。 3DMAX动力学布料模拟是实时的&#xff0c;能够实现实时的自然互动&#xff0c;并将创作过程从试错转…

代码随想录算法训练营第十五天| 层序遍历(即广度优先搜索), 226.翻转二叉树,101. 对称二叉树

层序遍历(即广度优先搜索) 需要借用一个队列来实现&#xff0c;队列先进先出&#xff0c;符合一层一层遍历的逻辑&#xff0c;而用栈先进后出适合模拟深度优先遍历也就是递归的逻辑。 思路是先把根节点加入队列&#xff0c;然后在遍历下一层前&#xff0c;先将队列拥有的当前层…

LeetCode150道面试经典题--找出字符串中第一个匹配项的下标(简单)

1.题目 给你两个字符串 haystack 和 needle &#xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开始&#xff09;。如果 needle 不是 haystack 的一部分&#xff0c;则返回 -1 。 2.示例 3.思路 回溯算法&#xff1a;首先将…

【CSS3】CSS3 动画 ⑥ ( 动画属性示例 | 精灵图帧动画效果实现 )

文章目录 一、需求说明二、代码分析1、动画属性2、布局分析3、动画实现 三、完整代码示例 一、需求说明 给定一张精灵图 , 其中有多个 动画帧 对应的图片 , 下图的大小是 1600 x 100 像素 , 截图展示如下 : 实际图片 : 二、代码分析 1、动画属性 使用上图实现 逐帧动画 效果 …

智慧工地云平台源码

智慧工地可以实现对人员管理、施工进度、安全管理、材料管理、设备管理、环境监测等方面的实时监控和管理&#xff0c;提高施工效率和质量&#xff0c;降低安全风险和环境污染。在道路施工中&#xff0c;智慧工地可以实现对道路状况、交通流量、施工进度等方面的实时监控和管理…

Wlan——802.11协议物理层关键技术(OFDM、MIMO、BSS)和CSMA/CD机制的介绍

目录 802.11协议的发展 802.11协议物理层关键技术 信道捆绑技术 OFDM/OFDMA技术 Short-Gi短保护间隔技术 MIMO/MU-MIMO技术 QAM技术 BSS Color快速识别 802.11MAC层关键技术CSMA/CD机制 为什么无线提出了CSMA/CD机制 CSMA/CD的工作机制 CSMA/CD的工作原理 CSMA/CD…

matlab进行mex时出现 error LNK2019: 无法解析的外部符号

解决方法分成三个步骤&#xff1a; 1、直接在simulink模块运行出现错误&#xff0c;找不到该s函数&#xff1b; 2、需要确认安装了编译器。mex -setup 确认安装了编译器&#xff0c;再次mex xxx.c未解决&#xff1b; 3、再次查找资料发现可能编译器不知道具体的位置&#xff0c…

Java训练六

目录 一、除数不能为0 二、校验年龄格式 三、终端循环 四、 计算最大公约数 一、除数不能为0 使用静态变量、静态方法以及throws关键字&#xff0c;实现当两个数相除且除数为0时&#xff0c;程序会捕获并处理抛出的ArithmeticException异常&#xff08;算术异常&#xff09…

电脑合上盖子无线网络不会断开

控制面板\硬件和声音\电源选项\系统设置 最终选择不会采取任何操作 选择不会采取任何操作

学习C语言第三天 :关系操作符、逻辑操作符

1.关系操作符 C语言用于比较的表达式&#xff0c;称为“关系表达式”里面使用的运算符就称(relationalexpression)&#xff0c;为“关系运算符” (relationaloperator) &#xff0c;主要有下面6个。 > 大于运算符 < 小于运算符 > 大于等于运算符 < 小于等…

分布式 - 消息队列Kafka:Kafka生产者架构和配置参数

文章目录 1. kafka 生产者发送消息整体架构2. Kafka 生产者重要参数配置01. acks02. 消息传递时间03. linger.ms04. buffer.memory05. batch.size06. max.in.flight.requests.per.connection07. compression.type08. max.request.size09. receive.buffer.bytes和 send.buffer.b…

如何使用appuploader制作apple证书​

转载&#xff1a;如何使用appuploader制作apple证书​ 如何使用appuploader制作apple证书​ 一.证书管理​ 点击首页的证书管理 二.新建证书​ 点击“添加”&#xff0c;新建一个证书文件 免费账号制作证书只有7天有效期&#xff0c;没有推送消息功能&#xff0c;推送证书…

anaconda 基本指令

1.anaconda创建环境 例如我们创建一个名称为img2word&#xff0c;python版本为3.9的环境 conda create -n img2word python3.9在这个命令中&#xff1a; create 是告诉 Conda 你要创建一个新的环境。-n img2word 是设置新环境的名称为 img2word。python3.9 是告诉 Conda 在这…

PS AI版本安装教程

好久没写博客了&#xff0c;今天更新一下子吧&#xff01; 随着chatGPT的提出&#xff0c;各种软件逐渐开始镶嵌人工智能&#xff0c;为我们的生活带来了极大的便利&#xff01;话不多说&#xff0c;开始介绍今天的主角&#xff0c;PS的AI版本。 安装教程&#xff1a; 1.安装…

Linux学习之sed删除、追加、插入、更改、读写文件、下一行、打印、退出和seq命令

cat /etc/redhat-release看到操作系统是CentOS Linux release 7.6.1810&#xff0c;uname -r看到内核版本是3.10.0-957.el7.x86_64&#xff0c;sed --version可以看到sed版本是4.2.2。 echo a : 1 : good : g >> sed_daicpnrwq.txt echo b : 2 : well : w >> sed…

LC-删除排序链表中的重复元素

LC-删除排序链表中的重复元素 链接&#xff1a;https://leetcode.cn/problems/remove-duplicates-from-sorted-list/description/ 思路&#xff1a;这题其实不难&#xff0c;链表已经排序&#xff0c;我们只要把相邻的两个节点的值进行比较&#xff0c;如果相同&#xff0c;删…