Python Web全栈之旅11--Web前端●CSS知识点汇总,建议收藏
off999 2024-10-19 07:12 37 浏览 0 评论
1、三种样式表
● 内部样式表:一般写在head元素中
● 内联样式表:元素的全局属性style中
● 外部样式表:一般在head元素中(推荐)
<link rel="stylesheet" href="../../css/index.css">
2、css代码语法
css语法=选择器+申明块
● 选择器
① 基础选择器
对将来学习Python爬虫很有帮助
I、元素选择器 elementname
本色出演,不需要加其他字符。
II、类选择器 .classname
点不能省略
III、ID选择器 #idname
井号不能省略
② 属性选择器 elementname[attr]
③ 伪类选择器
选中某些元素的某种状态
I、link:超链接未访问时的状态
II、visted:超链接访问后的状态
III、hover:鼠标悬停的状态
IV、激活状态,鼠标按下状态
爱恨法则:love hate
④ 关系选择器
I、邻近兄弟元素选择器 A + B
作用 only one 元素。A跟B有同一个“父亲”,B紧跟A元素,好比亲兄弟。
II、兄弟元素选择器 A ~ B
注意:是A的相邻元素。A和B有同一个“父亲”,B不必须紧跟A。
III、直接子元素选择器 A > B
直接子元素,只选择一代,不是所有的子元素都能集成A的“财产”
IV、后代元素选择器A B
A B 选择所有后代,范围更广,使用频率最高。
3、css层叠
当同一样式多次应用到同一元素时,css会通过层叠解决声明冲突
哪一种样式会最终被选中呢?
遵循的3个准则:
比较重要性 > 比较特殊性 > 比较源次序
● 比较重要性
先去掉一种特殊情况:重要声明,在属性值后加!important
● 比较特殊性
css层叠会选择特殊性最高的样式
特殊性从高到低:
内联样式 > id选择器 > 类选择器 > 元素选择器
类比场景:打扫卫生
“内联样式”的特殊性:好比老师走到Python大星面前,对他说:你负责擦窗户。
“id选择器”的特殊性:老师说学号为040105的学生打扫走道
“类选择器”的特殊性:老师说第一组打扫教室
“元素选择器”的特殊性:三年级二班打扫操场东南角
我们知道css中会出现组合的情况,这个时候怎么比较特殊性呢?
我们可以通过“积分制”来判断
“内联样式”----------------积分1000
“id选择器”----------------积分100
“类选择器”----------------积分10
“元素选择器”--------------积分1
属性选择器、伪类选择器也各自积10分;
伪元素选择器积1分
最终,谁的总积分高,就听谁的!
4、继承
● 子元素会继承父元素的所有属性吗?
儿子会继承父亲的部分基因,而不是全部基因。
● 什么情况下子元素会继承父元素的属性?
当子元素的继承属性没有指定值时,就会继承父元素同一属性
● 什么样的属性能被继承?
一般来说,跟文字内容相关的属性都能被继承,比如说font、color等属性
● 什么样的属性不能被继承?
常见的border、background等属性不能被继承
我们可以通过MDN官方文档查看css属性是否可以被继承
5、属性值的计算过程
● 什么叫确定声明值?
指样式表中没有起冲突的属性值
● 如果属性值发生冲突怎么办?
层叠冲突
● 如果某些继承属性在样式表中没有说明,会如何?
继承父元素的继承属性
● 如果是非继承属性,会如何?
使用默认值
举个栗子描绘下“属性值得计算过程”:
通缉犯画像:根据目击证人的描述,明确该罪犯带着眼镜,黄头发,此乃“确认声明值”;
该罪犯长得有点像电影明星黄X和王XX,更偏向王XX,此乃“层叠冲突”;
听口音该罪犯是东北人,可能正往北方跑,此乃“使用继承”;
肤色yellow,此乃“使用默认值”
6、盒模型
● 什么是盒模型?
我们在页面“审查”时经常看到的这个红色区域就是盒模型
● 盒模型分类
① 行盒:display属性等于inline的元素
注意:display属性是非继承属性
② 快盒:display属性等于block的元素
行盒和块盒最大的区别:
● 常见的块盒元素
容器元素、h1~h6、p
● 常见的行盒元素
span、a、img、video、audio
● 盒模型的4个组成部分
每一个颜色区域代表一个组成部分
从内到外依次是:
① 内容区,我们也叫“内容盒”
我们最最最常见的width、height设置的是盒子内容的宽高
② 填充(外边距)padding
有四个属性:
padding-left,padding-right,padding-top、padding-bottom;
这四个属性可以简写为padding。
I、padding:上 右 下 左
传四个参数,你可以想象成一个顺时针的钟
II、padding 上下 左右
传两个参数,第一个是上下边距的参数,第二个是左右边距的参数
③ 边框 border
边框样式:border-style
边框宽度:border-width
边框颜色:border-color
简写为border
④ 外边距 margin
有四个属性:
margin-left,margin-right,margin-top、margin-bottom
这四个属性可以简写为margin
使用方式和padding一样
7、盒模型应用
● 改变宽高作用范围
默认情况下,width 和 height 设置的是内容盒宽高
实际工作中,UI设计师给到是ps源文件,标注的是我们前面说到的“边框盒”的宽高。
默认情况下,我们width和height是设置的“内容盒”的宽高。
有一个“神器“” -- box-sizing 属性
box-sizing: border-box;
这样设置后,width和height的作用范围就是“边框盒”。
● 改变背景作用范围
默认情况下,背景作用范围是“边框盒”。
有一个“神器“” -- background-clip 属性
background-clip: content-box;
这样设置后,width和height的作用范围就是“内容盒”
● 溢出处理
overflow属性应运而生
常用的3个属性值:hidden、scroll、auto;
hidden:溢出部分隐藏
scroll:出现滚动条
auto:自动
● 空白处理
可以看到单行文字过多时,显示3个点
8、行盒模型
● 常见的行盒
包含具体内容的元素,如span、strong、em、i、img、video、audio
● 行盒一般的特征
① 行盒沿内容沿伸
② 行盒的宽高设置无效
行盒的宽高跟字体大小、行高、字体类型有关
③ 填充区、边框、外边距
水平方向:生效,和块盒一样
垂直方向:不会实际占用空间
● 行块盒
不独占一行(行盒特征),盒模型所有尺寸都生效(块盒特征)
分页应用
效果:
9、视觉格式化模型
I、 常规流
默认情况下,所有元素都属于常规流布局。
● 总体规则
块盒独占一行,行盒水平依次排列
● 包含块
每个盒子都有它的包含块,包含块决定了盒子的排列区域
绝大数情况下,盒子的包含块是其父元素的“内容盒”
● 水平方向
重点!重点!重点!
当块盒没有设置width时,width的默认值为auto
当块盒没有设置margin时,margin默认值是0
auto的作用:将剩余空间吸收完
当margin和width都设置为auto时,width优先将剩余空间吸收完。
当宽度、内边距、边框,外边距计算完,仍然有剩余空间,该剩余空间被margin-right(土黄色区域)全部吸收。
在常规流中,块盒在其包含块中居中,前提是宽度已设置,然后左右margin设置为auto。
● 垂直方向
如果height设置为auto,适应内容的高度
如果margin设置auto,表示0
● 百分比取值
padding、宽、margin相对的是包含块的宽度!宽度!宽度!!!
包含块的高度是否取决于子元素的高度,设置百分比无效。
包含块的高度不取决于子元素的高度,百分比相对于父元素的高度
● 上下外边距的合并
两个常规流块盒,上下外边距相邻,会进行合并。
两个外边距取最大值
兄弟元素的上下外边距
父子元素的上下外边距
方法 ① :
父元素增加border,使其内外边距不相临
方法 ② :
父元素增加padding,子元素margin去掉
● 常规流总结
常规流分为行盒和块盒,块盒横向撑满包含块,纵向外边距的合并。
下一个行盒的头部接上上一个行盒的尾部。
II、 浮动
● 应用场景
① 文字环绕
② 横向排列
忘记了吗?前面我们还能使用“行块盒”(display:inline-block)实现横向排列。
● 浮动的基本特点
① float:left /*左浮动,元素靠上靠左*/
② float:right /*右浮动,元素靠上靠右*/
浮动元素的包含块,和常规流一样,是父元素的内容盒
● 浮动后的盒子虽然是block,但是没有独占一行
页面效果:
我们可以通过“元素审查”看到class为left和right的元素设置为float后,
分别显示在父元素内容盒的左右两边,并不是独占一行
● 浮动盒子的宽度特点
当浮动盒子的宽度为auto时,适应内容的宽度
● 浮动盒子的高度特点
高度为auto时,无论是常规流还是浮动以及定位中,都是一致的,适应内容的高度
● 浮动在包含块中排列时,会避开常规流块盒
页面效果:
● 常规流块盒在排列时,无视浮动盒子
● 常规流块盒在排列时,会避开浮动盒子
从上图中我们可以看到,文字在块盒中,但是文字却环绕在img四周,
这是因为浏览器会自动生成一个行盒包裹文字,该行盒叫“匿名行盒”,
块盒p的总宽度还是不变的。
① 如果我们修改p元素的margin-left,会发生什么?
结合我们之前学过的知识,修改p元素的margin-left,是相对于包含块的,并不是img元素
② 修改img元素的margin-right
● 高度坍塌
如下图,父常规流盒子未设置高度,尽管子浮动盒子有高度,
但是没有将父盒子撑起,这就是所谓的父元素“高度坍塌”
使用clear属性清除浮动
方案 ① 增加一个div
方案 ② 使用伪元素
III、 定位
● 定位概念
手动控制元素在包含块中的精准位置
● 四种类型的定位
static:静态定位(不定位)
relative:相对定位
absolute:绝对定位
fixed:固定定位
● 定义元素
一个元素,只要position的取值不是static,认为该元素是一个定位元素
● 相对定位
position: relative;
相对定位不会导致元素脱离文档流,只是让元素在原来位置上进行偏移。
盒子的偏移不会对其他元素造成任何影响。
● 绝对定位
position: absolute;
绝对定位是相对于包含块的位置,脱离文档流。
包含块的位置:找祖先中第一个定位元素,该元素的填充盒为其包含块。若找不到,则它的包含块为整个网页(初始化包含块)。
● 固定定位
position: fixed;
固定定位除了包含块的位置其他和绝对定位一样,脱离文档流。
固定定位的包含块:
固定为视口(浏览器的可视窗口)
● 定位下的居中
针对绝对定位和固定定位
① 定宽(高)
② 将左右(上下)距离设置为0
③ 将左右(上下)margin设置为auto
绝对定位和固定定位margin为auto时,吸收剩余空间
汇总
>>>Python Web全栈之旅04--Web前端●走入CSS的世界
>>>Python Web全栈之旅05--Web前端●CSS层叠样式的理解
>>>Python Web全栈之旅06--Web前端●盒模型
>>>Python Web全栈之旅07--Web前端●行盒模型
>>>Python Web全栈之旅08--Web前端●视觉格式化模型
>>>Python Web全栈之旅09--Web前端●CSS浮动
>>>Python Web全栈之旅10--Web前端●CSS定位
相关推荐
- office2003的主要功能(word2003的主要功能)
-
是一套Office2003专业版的精简版,包含常用的Word、Excel、PowerPoint三个应用,使用者甚多。楼主如果有需要,请上电脑在本帖下载我的附件。
- 怎样准备一个带pe的u盘的(带pe系统的u盘)
-
一、U盘安装系统前期准备: 1、首先需要预备一个空的4G或以上U盘,用来存储启动程序跟系统文件。 2、接着我们需要安装的ghost系统。 3、U盘启动盘制作工具:U盘启动工具 二、U盘启动盘制...
- 怎样拷贝文件到u盘里(怎么文件拷贝到u盘)
-
方法/步骤分步阅读1点击安全打开等电脑的桌面中弹出U盘插入成功的提示框之后,点击安全打开,将U盘打开。2点击文件将U盘打开之后,在电脑的桌面中找到需要拷贝的文件,点击鼠标右键等弹出序列。3点击复制弹出...
-
- 固态硬盘怎么安装win7(固态硬盘怎么安装在电脑上)
-
1.首选需要找一个4GB以上的U盘2.用来存放Win7的ISO镜像文件。带有光盘标识的即为“光盘映像文件”3.在点击写入之前,一定要确保U盘里面没有任何数据,如果有数据应该及时备份,否则里面的数据将被删除,不过在做完启动盘后,仍然可以向里面...
-
2025-12-27 13:03 off999
- 苹果手机忘记密码怎么办(很久没用的苹果手机忘记密码怎么办)
-
在苹果官网中搜索忘记iphone密码,点击置于恢复模式的链接,根据步骤完成解锁即可,以下是详细的操作步骤:方法/步骤1点击搜索图标网页上搜索进入apple官网,进入官网主页面之后,点击页面上方的放大镜...
- win10系统防火墙在哪里设置(windows10的防火墙怎么设置)
-
Windows10的防火墙设置非常简单。首先,您可以点击“开始”菜单,然后在搜索框中输入“防火墙”来打开防火墙设置。接下来,您可以根据需要为不同的网络(包括公用网络、专用网络和域网络)设置不同的防火...
- 软件市场下载(软件市场下载安装)
-
是的,因为酷安已经被下架了,目前在所有手机自带的应用市场下载的酷安都是阉割版本。不仅是酷安,其它应用市场比如腾讯的应用宝目前在手机自带的应用商店全都已经下架了。并且申请上架也会被拒绝,拒绝理由是:“暂...
- u盘有东西但是显示文件夹为空
-
u盘里面有文件,却显示文件夹为空是因为文件被隐藏了,开启方法如下:需要用到的工具有:电脑、U盘。1、打开我的电脑,找到并点击进入U盘,2、在U盘目录里面,点击上方的属性功能。3、在属性页面,把隐藏对勾...
- 五笔86版输入法下载(86版五笔安装包)
-
要下载王码五笔86版官方,可以前往官方网站进行下载。安装时,先打开下载的安装文件,按照提示完成安装向导。在安装过程中,可以自定义安装路径,也可以选择安装组件。安装完成后,可以在输入法设置中选择王码五笔...
- 360游戏中心怎么关闭(360游戏中心怎么关闭自动更新)
-
1.你把360卸载了,换成QQ管家2.你把360卸载,再安装的时候,别一键安装要,改为自定义安装,在安装过程中,如果有弹出窗口,上面显示360游戏大厅,你把360游戏大厅前面的那个选择口里点一下,里面...
- 宽带安装哪个便宜(安装宽带哪个好)
-
我认为光纤宽带是目前最便宜和最好用的选择。1.光纤宽带拥有更高的传输速度和稳定性,可以提供更好的上网体验。相比其他宽带类型,如ADSL和电缆宽带,光纤宽带的速度更快,不容易受到网络拥堵的影响。2....
- pubg加速器免费版(pubg加速器免费版无广告)
-
现在加速吃鸡的游戏加速器是有专线路线的比较好,专线的稳定很多,不过目前是没有完全免费的加速软件,很多都可以先体验,注册就可以体验的,可以多去体验几款,对比一下。目前的加速器可以分为三个等级第一等级:全...
-
- 如何用u盘重装电脑系统win7(用u盘怎样重装系统win7)
-
u盘怎么装win7系统步骤如下:1、先下载Windows7镜像,根据自己需求选择下载的版本:简化版、家庭基础版、家庭高级版、企业版等。2、下载工具软碟通。直接在搜索引擎中输入“软碟通”,选择合适的下载地址,直接下载安装即可。3、制作系统U...
-
2025-12-27 08:51 off999
- 系统驱动怎么安装(系统驱动的安装)
-
首先进入系统的设备管理器,检查一下是否存在有没有正确安装或者找不到的驱动程序的设备,然后进入硬件生产厂商官网去下载对应的操作系统的驱动程序,进行安装。如果嫌麻烦,可下载第三方软件进行辅助安装。1、如果...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
系统u盘安装(win11系统u盘安装)
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
