CSS进阶

CSS进阶

目标:掌握复合选择器作用和写法;使用background属性添加背景效果

01-复合选择器

定义:由两个或多个基础选择器,通过不同的方式组合而成。

作用:更准确、更高效的选择目标元素(标签)。

后代选择器

后代选择器:选中某元素的后代元素

选择器写法:父选择器 子选择器 { CSS 属性},父子选择器之间用空格隔开。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>/* 后代选择器 中间用空格隔开 *//* ul li {color: red;} *//* 只让第一组ul 里面的li变色 */.first li {color: red;}</style>
</head><body><ul class="first"><li>我是无序列表</li><li>我是无序列表</li><li>我是无序列表</li><li>我是无序列表</li></ul><ul><li>我是无序列表</li><li>我是无序列表</li><li>我是无序列表</li><li>我是无序列表</li></ul><ol><li>我是有序列表</li><li>我是有序列表</li><li>我是有序列表</li><li>我是有序列表</li></ol>
</body></html>

小技巧: 后代选择器执行代码的时候,先执行孩子,后执行父亲。 先找li 后找ul

子代选择器

子代选择器:选中某元素的子代元素(最近的子级)。

选择器写法:父选择器 > 子选择器 { CSS 属性},父子选择器之间用 > 隔开。

<style>div > span {color: red;}
</style><div><span>这是 div 里面的 span</span><p><span>这是 div 里面的 p 里面的 span</span></p>
</div>

如果使用后代选择器,两个span都会被设置样式

并集选择器

并集选择器:选中多组标签设置相同的样式。

选择器写法:选择器1, 选择器2, …, 选择器N { CSS 属性},选择器之间用 , 隔开。

<style>div,p,span {color: red;}
</style><div> div 标签</div>
<p>p 标签</p>
<span>span 标签</span>

交集选择器

交集选择器:选中同时满足多个条件的元素。

选择器写法:选择器1选择器2 { CSS 属性},选择器之间连写,没有任何符号。

<style>p.box {color: red;
}
</style><p class="box">p 标签,使用了类选择器 box</p>
<p>p 标签</p>
<div class="box">div 标签,使用了类选择器 box</div>

注意:如果交集选择器中有标签选择器,标签选择器必须书写在最前面。

伪类选择器

伪类选择器:伪类表示元素状态,选中元素的某个状态设置样式。

鼠标悬停状态:选择器:hover { CSS 属性 }

<style>a:hover {color: red;}.box:hover {color: green;}
</style><a href="#">a 标签</a>
<div class="box">div 标签</div>
超链接伪类

在这里插入图片描述

提示:如果要给超链接设置以上四个状态,需要按 LVHA 的顺序书写。

经验:工作中,一个 a 标签选择器设置超链接的样式, hover状态特殊设置

a {color: red;
}a:hover {color: green;
}

基本选择器

基本选择器说明举例
标签选择器选择页面中同名标签div {color: red;}
类选择器选择1个或者多个.red {color: red;}
id选择器唯一的,只能使用一次#red {color: red;}
通配符选择器选择所有的标签* {color: red;}

复合选择器

复合选择器说明举例
后代选择器选择子孙后代 用 空格 隔开div span {color: red;}
子代选择器只选最近一级孩子(亲儿子选择器) 用 > 隔开div>span{color: red;}
并集选择器选择多个标签, 用 逗号 隔开 理解为 和div, span, p {color: red;}
交集选择器既又的关系,既是某标签,又是某类名p.one {color: red;}
伪类选择器状态关系, :hover 鼠标经过div:hover {color: red;}

02-CSS特性

CSS特性:化简代码 / 定位问题,并解决问题

  • 继承性
  • 层叠性
  • 优先级

继承性

继承性:子级默认继承父级的文字控制属性(如下属性)。

在这里插入图片描述

注意:如果标签有默认文字样式会继承失败。 例如:a 标签的颜色、标题的字体大小。

①a标签不会继承颜色

      p {color: pink;}
    <p><a href="#">我是链接</a></p>

标签颜色并没有改变

②标题的字体大小

      div {color: red;/* 不加粗 */font-weight: 400;font-size: 14px;}
  <div><h1>一级标题</h1></div>

只有颜色改变,字体大小和加粗还是h1

层叠性

特点:

  • 相同的属性会覆盖:后面的 CSS 属性覆盖前面的 CSS 属性
  • 不同的属性会叠加:不同的 CSS 属性都生效
<style>div {color: red;font-weight: 700;}div {color: green;font-size: 30px;}
</style><div>div 标签</div>

注意:选择器类型相同则遵循层叠性,否则按选择器优先级判断。

在这里插入图片描述

优先级

优先级:也叫权重,当一个标签使用了多种选择器时,基于不同种类的选择器的匹配规则

<style>div {color: red;}.box {color: green;}
</style><div class="box">div 标签</div>
基础选择器

规则:选择器优先级高的样式生效

公式:通配符选择器 < 标签选择器 < 类选择器 < id选择器 < 行内样式 < !important

(选中标签的范围越大,优先级越低)

复合选择器-叠加

叠加计算:如果是复合选择器,则需要权重叠加计算。

公式:(每一级之间不存在进位)

在这里插入图片描述

规则:

  • 从左向右依次比较选个数,同一级个数多的优先级高,如果个数相同,则向后比较
  • !important 权重最高
  • 继承权重最低
选择器权重说明
继承/ *通配符0没有权重
标签选择器1累加
类选择器/伪类选择器10累加
id选择器100累加
行内1000
!important

继承的权重是0

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>/* li的权重是1 ,比 0 高 */li {color: red;}/* 继承的权重是 0, 所以无法直接修改 li的样式 */.box {color: green !important;}/* 结论: 想要修改谁的样式,就要选择谁 */</style></head><body><ul class="box"><li>我是文字</li></ul></body></html>

03-背景属性

背景图

网页中,使用背景图实现装饰性的图片效果。

  • 属性名:background-image(bgi)
  • 属性值:url(背景图 URL)
div {width: 400px;height: 400px;background-image: url(./images/1.png);
}

提示:背景图默认有平铺(复制)效果

平铺方式

属性名:background-repeat(bgr)

在这里插入图片描述

div {width: 400px;height: 400px;background-color: pink;background-image: url(./images/1.png);background-repeat: no-repeat;
}

背景图位置

属性名:background-position(bgp)

属性值:水平方向位置 垂直方向位置

  • 关键字

在这里插入图片描述

  • 坐标
    • 水平:正数向右;负数向左
    • 垂直:正数向下;负数向上
div {width: 400px;height: 400px;background-color: pink;background-image: url(./images/1.png);background-repeat: no-repeat;
/*第二个值省略默认是center*/background-position: center bottom;background-position: 50px -100px;background-position: 50px center;
}

提示:

  • 关键字取值方式写法,可以颠倒取值顺序
  • 可以只写一个关键字,另一个方向默认为居中;数字只写一个值表示水平方向,垂直方向为居中

背景图缩放

作用:设置背景图大小

属性名:background-size(bgz)

常用属性值:

  • 关键字

    • cover:等比例缩放背景图片以完全覆盖背景区,可能背景图片部分看不见
    • contain:等比例缩放背景图片以完全装入背景区,可能背景区部分空白
  • 百分比:根据盒子尺寸计算图片大小

  • 数字 + 单位(例如:px)

div {width: 500px;height: 400px;background-color: pink;background-image: url(./images/1.png);background-repeat: no-repeat;background-size: cover;background-size: contain;
}

提示:工作中,图片比例与盒子比例相同,使用 cover 或 contain 缩放背景图效果相同。

背景图固定

作用:背景不会随着元素的内容滚动。

属性名:background-attachment(bga)

属性值:fixed(固定),sccoll(滚动)

body {background-image: url(./images/bg.jpg);background-repeat: no-repeat;background-attachment: fixed;
}

背景复合属性

属性名:background(bg)

属性值:背景色 背景图 背景图平铺方式 背景图位置/背景图缩放 背景图固定(空格隔开各个属性值,不区分顺序

div {width: 400px;height: 400px;background: pink url(./images/1.png) no-repeat right center/cover;
}

但是背景缩放必须跟在背景位置后面(若无背景位置,只需设置0 0)

 background: pink url(./images/1.png) no-repeat 0 0/cover;

04-显示模式

显示模式:标签(元素)的显示方式。

在这里插入图片描述

作用:布局网页的时候,根据标签的显示模式选择合适的标签摆放内容。

块级元素

div、p、h1~h6、ul、ol、dl、li、dd、table、hr、blockquote、address、table、menu、pre,HTML5新增的header、section、aside、footer等

特点:

  • 独占一行
  • 宽度默认是父级的100%
  • 添加宽高属性生效

在这里插入图片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>块元素</title><style>/* 块级元素 *//* 1. 独占一行 *//* 2. 可以设置宽度和高度 *//* 3. 宽度默认和父亲一样宽,如果么有父亲,则和浏览器一样宽 */.box1,.box2 {width: 100px;height: 100px;background-color: pink;}</style></head><body><p>abc</p><div class="box1">div1</div><div class="box2"><p>123</p><p>123</p></div></body></html>

行内元素

span、img、a、lable、input、abbr(缩写)、em(强调)、big、cite(引用)、i(斜体)、q(短引用)、textarea、select、small、sub、sup,strong、u(下划线)、button(默认display:inline-block)

特点:

  • 一行可以显示多个
  • 设置宽高属性不生效
  • 宽高尺寸由内容撑开

在这里插入图片描述

行内块元素

eg:img input td

特点:

  • 一行可以显示多个
  • 设置宽高属性生效
  • 宽高尺寸也可以由内容撑开

在这里插入图片描述

转换显示模式

属性:display

在这里插入图片描述

经验:

  1. 我们重点记住把行内元素比如链接转换为 块级或者行内块即可
  2. display: block 尽量写到样式的第一行
  3. 块级元素可以控制里面的行内元素或者行内块元素 左中右对齐 tac 控制
  4. 块级元素不能控制里面的块级元素对齐

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

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

相关文章

vue2 使用vuex状态管理工具 如何配置与搭建。

等我研究研究&#xff0c;下一期给大家出一个后台管理左侧侧边栏如何搭建的。 首先我们先下载一下 vuex包 yarn add vuex3 1.先导入我们需要的 Vue 和 vuex 2.注册vuex 3.创建vuex实例 4.导出store export default store 5.在main.js中导入并挂载到全局。 Vuex如何实…

MATLAB解决考研数学一题型(上)

闲来无事&#xff0c;情感问题和考研结束后的戒断反应比较严重&#xff0c;最近没有什么写博文的动力&#xff0c;抽空来整理一下考研初试前一直想做的工作——整理一下MATLAB解决数学一各题型的命令~ 本贴的目录遵循同济版的高数目录~ 目录 一.函数与极限 1.计算双侧极限 2…

Pytest系列(14)- 配置文件pytest.ini的详细使用

前言 pytest配置文件可以改变pytest的运行方式&#xff0c;它是一个固定的文件pytest.ini文件&#xff0c;读取配置信息&#xff0c;按指定的方式去运行 非test文件 pytest里面有些文件是非test文件 pytest.ini&#xff1a;pytest的主配置文件&#xff0c;可以改变pytest的…

网络安全最大的威胁:洞察数字时代的风险之巅

在数字化时代&#xff0c;网络安全问题越发突显&#xff0c;企业和个人都面临着来自多方面的威胁。究竟网络安全领域的最大威胁是什么&#xff1f;本文将深入探讨这一问题&#xff0c;揭示数字空间中最为严重的威胁。 1. 恶意软件的肆虐&#xff1a; 恶意软件一直是网络安全的…

4456系列数字荧光示波器

4456系列数字荧光示波器 简述&#xff1a; 4456系列数字荧光示波器具有6个产品型号&#xff0c;带宽350MHz~1GHz&#xff0c;最高采样率5GSa/s&#xff0c;最大存储深度500Mpts/CH&#xff0c;最快波形捕获率100万个波形/秒&#xff0c;独创的Any Acquire Phosphor技术&#xf…

Kafka Console Client 的 Consumer Group

以往使用 kafka-console-consumer.sh 消费 Kafka 消息时并没有太在意过 Consumer Group&#xff0c;在命令行中也不会使用 --group 参数&#xff0c;本文针对 Kafka Console Client 命令行中的 Consumer Group 进行一次统一说明。 1. 如不设置 --group 参数会自动生成一个 Con…

基于Springboot+vue鲜花商城系统(前后端分离)

该项目完全免费 项目技术栈&#xff1a; 前端&#xff1a;vueelementUIecharts 后端&#xff1a;SpringbootmybatisMySQL 项目主要功能&#xff1a; 商品信息 商品分类 角色管理 公告管理 轮播图管理 订单管理 收货地址管理 日志管理 部分功能截图&#xff1a;

RDMA Scatter Gather List详解

1. 前言 在使用RDMA操作之前&#xff0c;我们需要了解一些RDMA API中的一些需要的值。其中在ibv_send_wr我们需要一个sg_list的数组&#xff0c;sg_list是用来存放ibv_sge元素&#xff0c;那么什么是SGL以及什么是sge呢&#xff1f;对于一个使用RDMA进行开发的程序员来说&#…

shell编程-3

文章目录 shell学习第三天while 循环第一天的小游戏练习: 编写抽同学回答问题的脚本要想让这个脚本永久有效如何知道两个文件里的内存一样&#xff1f;如何判断某个人已经抽过了 文本处理相关命令seqxargsuniqsorttrcutawkpastesplitcoljoin小结一下作业 小知识点写脚本的流程怎…

LeetCode面试题02.07链表相交

力扣题目链接 思想&#xff08;数学&#xff09;&#xff1a;设链表A的长度为a&#xff0c;链表B的长度为b&#xff0c;A到交点D的距离为c&#xff0c;B到交点D的距离为d。显然可以得到两者相交链表的长度为&#xff1a;a - c b - d ,变换一下式子得到&#xff1a;a d b c…

css-动画效果学习示例

阴影 x-轴 y-轴 模糊度 颜色 (正负值可以表示角度问题) 可以加多个阴影 内置阴影 transition 可以添加动画延迟效果 向z轴缩进&#xff0c;开启透视respective 触发旋转效果 学习来源 &#xff1a;动画属性_哔哩哔哩_bilibili

如何做标准化?| 京东云技术团队

在现代信息化的市场环境和社会中&#xff0c;标准化已经成为了各种行业的一个重要的标志。标准化不仅可以提升生产效率&#xff0c;减轻质量问题&#xff0c;还可以增加产品的可靠性和互通性。在这篇文章中&#xff0c;我们将探讨如何做标准化&#xff0c;为您提供详细的指导和…

深入Docker5:安装nginx部署完整项目

目录 准备 为什么要使用nginx mysql容器构建 1.删除容器 2.创建文件夹 3.上传配置文件 4.命令构建mysql容器 5.进入mysql容器&#xff0c;授予root所有权限 6.在mysql中用命令运行sql文件 7.创建指定数据库shop 8.执行指定的sql文件 nginx安装与部署 1.拉取镜像 2…

docker:Java通过nginx获取客户端的真实ip地址

问题现象 我们的平台使用Spring Cloud微服务架构&#xff0c;使用Spring Boot构建Java服务&#xff0c;使用google的jib插件打成docker镜像包我们使用docker虚拟化部署&#xff0c;使用docker-compose统一管理所有服务&#xff0c;包括Java服务和nginx等组件我们前后端分离&am…

游戏《泰坦陨落2》msvcr120.dll丢失的多种解决方法分享

在Windows 11操作系统环境下&#xff0c;众多玩家在体验《泰坦陨落2》这款备受瞩目的射击游戏时&#xff0c;遭遇了一个令人困扰的技术问题&#xff1a;系统提示缺失msvcr120.dll文件。这一关键的动态链接库文件对于游戏的正常运行至关重要&#xff0c;它的缺失直接导致了《泰坦…

小白数学建模 Mathtype 7.7傻瓜式下载安装嵌入Word/WPS以及深度使用教程

数学建模Mathtype的下载安装嵌入Word/WPS以及深度使用教程 一 Mathtype 的下载安装1.1 安装前须知1.2 下载压缩包1.3 安装注册 二 嵌入Word/WPS2.1 嵌入Word2.1.1 加载项嵌入 Word2.1.2 宏录制嵌入 Word 2.2 嵌入 WPS2.2.1 加载项嵌入 WPS2.2.2 宏录制嵌入 WPS 2.3 嵌入时报错解…

【GNN报告】“青源Talk”-图可信学习与图大模型研究进展

北航王啸-图自监督学习 简介 介绍 浙大杨洋-探索大图模型预训练 总括 介绍 参考 Yang Yang - Zhejiang University dgraph-web DGraph: ALarge-Scale Financial Dataset for Graph Anomaly Detection All in One: Multi-task Prompting for Graph Neural Networks&#xf…

K8S-YAML

一、Kubernetes对象的描述 kubernetes中资源可以使用YAML描述&#xff08;如果您对YAML格式不了解&#xff0c;可以参考YAML语法&#xff09;&#xff0c;也可以使用JSON。其内容可以分为如下四个部分&#xff1a; typeMeta&#xff1a;对象类型的元信息&#xff0c;声明对象…

一款开源且不限制大小可以设置过期时间的支持分享的的开源文件共享系统picoshare 部署教程

1.拉取镜像 2.部署 创建目录 mkdir -p /opt/picoshare/data 部署 其中:"somesecretpass"是密码 docker run \--env "PORT4001" \--env "PS_SHARED_SECRETsomesecretpass" \--publish 10005:4001/tcp \--volume "/opt/picoshare/data:…