CSS进阶知识点速览2

1 前情回顾

关于选择器进阶、背景色、元素显示模式和css特性的前半部分集中在下面的笔记中:
css进阶知识点速览

2 CSS特性

2.1 优先级

特性:不同选择器具有不同的优先级,优先级高的选择器样式会覆盖优先级低选择器样式
优先级公式:
继承<通配符选择器<标签选择器<类选择器<id选择器<行内样式<!important
注意点:
1 !important写在属性值后面,分号前面
2 !important不能提升继承的优先级,继承的优先级最低
3 实际开放中不建议使用!important

2.2 权重叠加计算

场景:如果是符合选择器,此时需要通过权重叠加计算方法,判断最终哪个选择器
权重叠加计算公式:
复合选择器中:
从左到右分别是第一级,第二级,第三级,第四级
(行内样式个数,id选择器个数,类选择器个数,标签选择器个数)
分别比较数量,先比较第一级数量再比之后的,第一集数量能比出结果,后面不需要再比。
这些选择器的关系是相对于要装饰内容而言的。

/*(0,1,0,1)*/
/*#one id选择器*/
div #one{
color: orange;
}
/*(0,1,2,0)*/
.father .son{
color: skyblue;
}
/*(0,0,1,1)*/
.father p{
color: purple
}
/*(0,0,0,2)*/
div p{
color: pink
}
div div{
color: skyblue;
}
div{
color: red;
}<div><div><div>文本</div></div>
</div>

上面两个css选中文本,但并不是继承。最终因为div div{color: skyblue;}标签选择器数目多,因此文本为skyblue色。

2.3 谷歌浏览器调试

对出错部分右键-检查-查看

.father .son .sun {
color: skyblue;
}
/*多个类选择器中间以空格隔开也表示交集选择器*/

3 PxCook

3.1下载与安装

官网下载链接
下载后一直下一步就可完成安装。

3.2 基本使用

1将图片拖入后双击
2对于png图使用设计模式,对于psd的分层图用开发模式
3设计模式主要工具
在这里插入图片描述
最上面的是尺子,用来量长度;最下面的是吸管,用来获取颜色。
在这里插入图片描述
抓手工具,如果图片放的过大,需要移动到某一区域,就用抓手。

4开发模式
点击选中可知一切信息

4盒子模型

4.1 盒子模型的介绍

1盒子的概念
(1)页面中的每一个标签,都可以看做是一个“盒子”,通过盒子的视角更方便地进行布局;
(2)浏览器在渲染(显示)网页时,会将网页中的元素看做是一个个的矩形区域,我们也形象的称之为盒子
2盒子模型
css中规定每个盒子分别由:内容区域、内边距区域、边框区域、外边距区域构成,这就是盒子模型。
最简单的示例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>div{width: 300px;height: 300px;background-color: pink;/*边框线*/border: 1px solid black;/*内边距,出现在内容和盒子之间*/padding: 20px;/*外边距,两个盒子之间*/margin: 50px;}</style>
</head>
<body><div>content</div><div>content2</div>
</body>
</html>

在这里插入图片描述
在浏览器里点击检查/F12,可以查看到下图,方便调试。
在这里插入图片描述

4.2 内容区域

作用:利用width和height属性默认设置是盒子内容区域的大小
属性:width/height
常见取值:数字+px

4.3 边框

属性名:border
复合属性,取值之间用空格隔开
boder: 10px solid red;
10px是指粗细;red是指线条的颜色,solid是指线条的种类(直线虚线等),这些参数没有顺序之分。
solid:实线线段;
dashed:虚线线段;
dotted:点线。
单方向设置:
场景:只给盒子的某个方向单独设置边框
属性名:border-方位名词,比如border-left
属性值:连写的取值
单个属性
作用:给设置边框粗细、边框样式、边框颜色效果
单个属性:

作用属性值
边框粗细border-width数字+px
边框样式border-style实线solid、虚线dashed、点线dotted
边框颜色border-color颜色取值

4.4 盒子实际大小初级计算公式

只考虑内容和边框线
需求:盒子尺寸400400,背景绿色,边框10px,实线,黑色
盒子尺寸:width/height + 边框线粗细
2

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box{height: 40px;border-top: 3px #ff8500 solid;border-bottom: 1px #edeef0 solid;}.box a{width: 80px;height: 40px;display: inline-block;text-align: center;line-height: 40px;font-size: 12px;color: #4c4c4c;text-decoration: none;}.box a:hover{background-color: #edeef0;color: #ff8500;}</style>
</head>
<body><div class="box"><a href="">新浪导航</a><a href="">新浪导航</a><a href="">新浪导航</a><a href="">新浪导航</a></div>
</body>
</html>

在这里插入图片描述

4.5内边距padding

padding 50px;
上面代码添加了4个方向的内边距。
padding 10px 80px;
两值的话:第一个表上下,第二个表左右。

4.6 盒子实际大小的终极计算公式

盒子尺寸:width/height + 边框线粗细2+内边距2
给盒子设置border或padding,盒子会被撑大,如果不想盒子被撑大,该怎么处理?
操作:给盒子设置属性box-sizing:border-box;
优点:浏览器会自动计算多余大小,自动在内容中减去

4.7 外边距

margin: 50px;

4.7.1 清除默认内外边距

比如p、h系列、ul标签都要默认内外边距

*{
margin:0;
padding: 0;
}

4.7.2 版心居中

想让盒子居于网页中间

margin: 0 auto;

4.7.3 外边距折叠现象

合并现象
场景:垂直布局的块级元素,上下的margin会合并
结果:最终两者距离为margin的最大值
解决方法:只给其中一个盒子设置margin即可

塌陷现象
场景:相互嵌套的块级元素,子元素的margin-top会作用在父元素上
结果:导致父元素一起向下移动
解决办法:
1不在子元素用margin,只给父元素设置border-top或者padding-top
2子元素设置margin,再给父元素设置overflow: hidden
3转成行内块元素:子元素里:display: inline-block;
4设置浮动

5 浮动

5.1 结构伪类选择器

目标:能够使用结构伪类选择器在HTML中定位元素
1作用与优势:
(1)作用:根据元素在html中的结构关系查找元素
(2)优势:减少对html中类的依赖,有利于保持代码整洁
(3)场景:常用于查找某父级选择器中的子集
2选择器

选择器说明
E:first-child{}匹配父元素中第一个子元素,并且是E元素
E:last-child{}匹配父元素中最后一个子元素,并且是E元素
E:nth-child(n){}匹配父元素中第n个子元素,并且是E元素
E:nth-last-child(n){}匹配父元素中最后n个子元素,并且是E元素

案例1:

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>li:first-child{background-color: aquamarine;}</style>
</head>
<body><ul><li>hello</li><li>hello</li><li>hello</li><li>hello</li><li>hello</li><li>hello</li><li>hello</li></ul>
</body>

在这里插入图片描述
结构伪类选择器中n的注意点:
1n为0,1,2,3,4,5,6,…
2通过n可以组成常见公式

功能公式
偶数2n, even
奇数2n+1,2n-1,odd
找到前5个-n+5
找到从第5个往后n+5

5.2伪元素

伪元素:一般页面中的非主体内容可以使用伪元素
区别:
(1)元素:html设置的标签
(2)伪元素:由css模拟出的标签效果
种类

伪元素作用
::before在父元素内容的最前添加一个伪元素
::after在父元素内容的最后添加一个伪元素

注意点:
(1)必须设置content属性才能生效
(2)伪元素默认是行内元素

    <style>.father{width: 200px;height: 200px;background-color: aquamarine;}.father::before{content: 'note';}.father::after{content: 'world';}</style>
</head>
<body><div class="father">hello</div>
</body>

在这里插入图片描述

5.3标准流

标准流:又称文档流,是浏览器在渲染显示网页内容时默认采用的一套排版规则,规定了应该以合资方式排列元素。
常见的标准流排版规则:
1块级元素:从上到下,垂直布局,独占一行
2行内元素或行内块元素:从左到右,水平布局,空间不够自动拆行

5.4 浮动

注意:浏览器解析行内块或者是行内标签的时候,如果标签换行书写会产生一个空格的距离

5.4.1浮动的作用

早期的作用:图文环绕
img{float:left;}
现在的作用:网页布局
让块在一行无间隙排列

.one{
background-color: pink;
float: left;
}
.two{
background-color: green;
float: left;
}

两个块靠左紧贴一起。

5.4.2特点

1浮点元素会脱离标准流,在标准流中不占位置
相当于从地面飘到了空中
2浮动元素比标准流高半个级别,可以覆盖标准流中的元素
3浮动找浮动,下一个浮动元素会在上一个浮动元素后面左右浮动
4浮动元素有特殊的显示效果“
一行可以显示多个
可以设置宽高

类似下图的设计需要注意:橙色和蓝色居中且位于一行,我们知道浮动元素的不能利用margin居中的,因此橙色和蓝色盒子外必然还有第三个盒子,该盒子的标签相对于橙色和蓝色的标签是父关系,它被设置了居中。
在这里插入图片描述

5.4.3css书写顺序

1浮动/display
2盒子模型:margin border padding
3文字样式
案例2:
目标样式:
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>*{margin: 0;padding: 0;}.father{width: 1226px;height: 614px;margin: 0 auto;}.father .son1{float: left;width: 234px;height: 614px;background-color: #800080;}.father .son2{float: left;width: 978px;height: 614px;background-color: green;margin-left: 14px;}.father .son2 .grandson{float: left;margin-bottom: 14px;margin-right: 14px;width: 234px;height: 300px;background-color: #87ceeb}.father .son2 .grandson.grandson:nth-child(4n){margin-right: 0;}.father .son2 .grandson.grandson:nth-child(n+5){margin-bottom: 0;}</style>
</head>
<body><div class="father"><div class="son1"></div><div class="son2"><div class="grandson"></div><div class="grandson"></div><div class="grandson"></div><div class="grandson"></div><div class="grandson"></div><div class="grandson"></div><div class="grandson"></div><div class="grandson"></div></div></div>
</body>
</html>

案例3:
目标样式:
在这里插入图片描述
技巧:网页导航的设计时,请用li标签嵌套a标签。
然而用li标签的话容易出现下面的效果:
在这里插入图片描述
对此,我们可以通过list-style: none;消除。
全部代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>*{margin: 0;padding: 0;}.nav{margin: 0 auto;width: 640px;height: 50px;background-color: #ffc0cb;}.nav ul{list-style: none;}.nav .navson{float: left;}.nav .navson a{display: inline-block;width: 80px;height: 50px;color: white;font-size: 16px;line-height: 50px;text-align: center;text-decoration: none;}.nav .navson:hover{background-color: #008000;}</style>
</head>
<body><div class="nav"><ul><li class="navson"><a href="#">新闻</a></li><li class="navson"><a href="#">新闻</a></li><li class="navson"><a href="#">新闻</a></li><li class="navson"><a href="#">新闻</a></li><li class="navson"><a href="#">新闻</a></li><li class="navson"><a href="#">新闻</a></li><li class="navson"><a href="#">新闻</a></li><li class="navson"><a href="#">新闻</a></li></ul></div>
</body>
</html>

5.5清除浮动

含义:清除浮动带来的影响
影响:如果子元素浮动了,此时子元素不能撑开标准流的块级元素
原因:
子元素浮动后脱标——>不占位置
目的:
需要父元素有高度,从而不影响其他网页元素的布局
比如:
父子级标签,子级浮动,父级没有高度,后面的标准呢盒子会受影响
常见于父级是纯文字,高度不定,不好设置

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

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

相关文章

网安专家带你学透网络渗透测试,小白零基础启航

渗透测试简介 渗透测试&#xff0c;作为评估网络安全的一种方法&#xff0c;模拟攻击者对目标系统的攻击&#xff0c;以评估系统的安全性。这种方法不仅揭示了系统的潜在漏洞&#xff0c;而且还帮助我们理解攻击者可能利用这些漏洞的方式。在这个数字化和网络化日益增长的时代…

R语言【rgbif】——最全最详细的函数解读(name_suggest)

name_suggest最全最详细的参数解读 1. name_suggest的基本情况2. name_suggest的参数3. name_suggest的示例与理解3.1 参数 【q】3.2 参数【rank】3.3 参数【limit】3.4 参数【fields】3.5 参数【datasetKey】3.6 参数【curlopts】 1. name_suggest的基本情况 name_suggest是用…

堆能高效解决的经典问题

关卡名 堆能高效解决的经典问题 我会了✔️ 内容 1.掌握数组中寻找第K的元素 ✔️ 2.理解堆排序的原理 ✔️ 3.合并K个排序链表 ✔️ 1 在数组中找第K大的元素 LeetCode215 给定整数数组nums和整数k&#xff0c;请返回数组中第k个最大的元素。 请注意&#xff0c;你需要…

力扣面试经典150题——Unix简化路径

https://leetcode.cn/problems/simplify-path/description/?envTypestudy-plan-v2&envIdtop-interview-150 思路&#xff1a;将串以/分割&#xff0c;判断字符串是…/./其他&#xff0c;进行入栈和出栈&#xff0c;最后留下的就是结果&#xff0c;拼装一下就好了。 三个…

海上液化天然气 LNG 终端 ,数字孪生监控系统

液化天然气 (Liquefied Natural Gas&#xff0c;简称 LNG) 在能源转型过程中被广泛认可为相对较清洁的能源选择。 相对于传统的煤炭和石油燃料&#xff0c;LNG 的燃烧过程产生的二氧化碳 (CO2) 排放较低。LNG 的燃烧释放的二氧化碳排放较少&#xff0c;因此对应对气候变化和减…

【Math】高斯分布的乘积 Product of Gaussian Distribution【附带Python实现】

【Math】高斯分布的乘积 Product of Gaussian Distribution【附带Python实现】 文章目录 【Math】高斯分布的乘积 Product of Gaussian Distribution【附带Python实现】1.推导2. CodeReference 结果先放在前面 1.推导 在学习PEARL算法的时候&#xff0c;encoder的设计涉及到了…

MySQL limit导致索引选择(选择的并不是最佳索引)案例分析

mysql limit导致索引选择&#xff08;选择的并不是最佳索引&#xff09;案例分析&#xff1a; 这种情况可能是mysql优化器内部bug造成&#xff1a; bug 触发条件如下: 1.优化器先选择了 where 条件中字段的索引&#xff0c;该索引过滤性较好&#xff1b; 2.SQL 中必须有 orde…

k8s中Service负载均衡和Service类型介绍

目录 一.service介绍 二.service参数详解 三.定义service的两种方式 1.命令行expose 2.yaml文件 四.service负载均衡配置 1.kube-proxy代理模式 &#xff08;1&#xff09;设置ipvs &#xff08;2&#xff09;负载均衡调度策略 2.会话保持 3.案例演示 五.四种Servi…

[Python]字典的应用:赋值表达式转化为字典

文件中有很多行&#xff0c;每行中一个等号&#xff0c;等号左边是键右边是值&#xff0c;如何把这些键值对获取到 def read_key_value_pairs(file_path):key_value_pairs {}i 0# 注意解码格式与编码格式相统一with open(file_path, r, encodingutf-8) as file:for line in…

docker镜像与容器的基本操作,容器打包以及镜像迁移

docker镜像拉取---docker pull docker pull image_name[:tag] 这是直接拉取官方镜像 image_name: 镜像的名称&#xff0c;例如 ubuntu, nginx, mysql 等。tag: 镜像的标签&#xff0c;表示版本或者特定的标识。如果未指定标签&#xff0c;默认为 latest。 例如&#xff0c;…

C# OpenCvSharp DNN 深度神经网络下的风格迁移模型

目录 介绍 效果 项目 代码 下载 C# OpenCvSharp DNN 深度神经网络下的风格迁移模型 介绍 深度神经网络下的风格迁移模型&#xff0c;适用于OpenCv、EmguCv。 斯坦福大学李飞飞团队的风格迁移模型是一种基于深度学习的图像处理技术&#xff0c;可以将一张图像的风格转移…

ArcGIS模型构建器--制作工具篇

基础知识点&#xff1a; 变量替换 1、要素替换 %name%&#xff0c;name为替换的名字 2、工作空间替换(拷贝给其他人仍可使用) 新建一个工作空间变量workspace %workspace%\%name% 中间数据处理 在模型构建器界面运行模型&#xff0c;会生成中间数据。 中间数据处理方法…

高性能网络编程 - 白话TCP 三次握手过程

文章目录 概述TCP协议头的格式TCP Finite State Machine (FSM) 状态机三次握手如何在 Linux 系统中查看 TCP 状态 概述 每一个抽象层建立在低一层提供的服务上&#xff0c;并且为高一层提供服务。 我们需要知道 TCP在网络OSI的七层模型中的第四层——Transport层 -----------…

mysql源码linux环境部署

文章目录 一、mysql下载地址二、安装步骤1.cd /usr/local/ #切换到此目录下2.上传mysql安装包到该目录下3.解压并且移动文件到 /usr/local/mysql目录下 三、创建用户组&#xff0c;分配权限四、修改文件总结 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参…

对比传统跨网文件交换方式,文件摆渡系统拥有4大优势!

网络隔离已是较为常见的网络安全保护措施&#xff0c;越来越多公司进行隔离网建设来隔绝外部网络有害攻击&#xff0c;但隔离后不少数据和文件仍需进行流转&#xff0c;就产生了跨网数据交换需求&#xff0c;在过去&#xff0c;企业使用较多的传统跨网文件交换方式有移动介质、…

扩散模型实战(十四):扩散模型生成音频

推荐阅读列表&#xff1a; 扩散模型实战&#xff08;一&#xff09;&#xff1a;基本原理介绍 扩散模型实战&#xff08;二&#xff09;&#xff1a;扩散模型的发展 扩散模型实战&#xff08;三&#xff09;&#xff1a;扩散模型的应用 扩散模型实战&#xff08;四&#xff…

基于MySQL+IDEA+Mybaits开发的OA办公系统

基于MySQLIDEAMybaits开发的OA办公系统 项目介绍&#x1f481;&#x1f3fb; 本项目是一个基于MySQL、Tomcat和MyBatis开发的OA管理系统。该系统的主要功能包括系统登录主页面、用户管理、部门管理、职位管理及查询、公告管理及查询、签到处理以及签到图表统计等。 在数据库方面…

ROS小练习——话题订阅

目录 一、话题与消息获取 二、代码编写 1、C 2、python 三、编译运行 一、话题与消息获取 rostopic list rostopic type /turtle1/pose rosmsg info turtlesim/Pose 二、代码编写 1、C //包含头文件 #include "ros/ros.h" #include "turtlesim/Pose…

6.游戏通信方案概述

弱联网游戏和强联网游戏 短链接游戏和长连接游戏 Socket、HTTP、FTP 总结 网络游戏的通信方案大体上可以根据游戏的实际情况分为两种&#xff1a; 长链接&#xff08;强联网&#xff09;游戏和短链接&#xff08;弱联网&#xff09;游戏 网络游戏的三种通信方案&#xff1a; 1.…

uniapp得app云打包问题

获取appid&#xff0c;具体可以查看详情 也可以配置图标&#xff0c;获取直接生成即可 发行 打包配置 自有证书测试使用时候不需要使用 编译打包 最后找到安装包apk安装到手机 打包前&#xff0c;图片命名使用要非中文&#xff0c;否则无法打包成功会报错