css进阶知识点速览

0前言

零基础部分的博客

1选择器进阶

1.1后代选择器

作用:根据html标签的嵌套关系,选择父元素后代中满足条件的元素
选择器语法:选择器1 选择器2 {css}
结果:
在选择器1所找到标签的后代中
注意:
后代包括:儿子、孙子等等

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div p {
            color: red;
        }
    </style>
</head>
<body>
    <p>
        <div>
            <p>hello world</p>
        </div>
    </p>
</body>

在这里插入图片描述

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        p {
            color: green;
        }
        div p {
            color: red;
        }
    </style>
</head>
<body>
    <p>hello</p>
    <p>
        <div>
            <p>hello world</p>
        </div>
    </p>
</body>

在这里插入图片描述

1.2子代选择器

作用:根据HTML标签的嵌套关系,选择父元素子代中满足条件的元素
选择器语法:选择器1 > 选择器2 {css}
结果:
在选择器1所找到标签的子代中,找到满足选择器

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div p {
            color: green;
        }

    </style>
</head>
<body>
    <div>
        hello
        <p>hello world</p>
        <a href="web">
            <p>hello baby!</p>
        </a>
    </div>
</body>

在这里插入图片描述
如果改用>,如下:

    <style>
        div > p {
            color: green;
        }
    </style>

在这里插入图片描述

1.3 并集选择器

作用:同时选择多组标签,设置同样的样式
选择器语法:选择器1,选择器2{css}
结果:
找到选择器1和选择器2选中的标签,设置样式

1.4交集选择器

作用:选中页面中同时满足多个选择器的标签
选择器语法:选择器1.选择器2{css}

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        p.no1 {
            color: green;
        }
    </style>
</head>
<body>
    <p class="no1">hello</p>
    <div>hello</div>
    <div class="no1">hello</div>
</body>

在这里插入图片描述

1.5 伪类

作用:选中鼠标悬停在元素上的状态,设置样式
选择器语法:选择器:hover{css}

1.6 Emmet语法

作用:通过简写,快速生成代码
语法如图[1]:
在这里插入图片描述

2 背景色

2.1背景颜色

属性名:background-color (bgc)
属性值:
颜色取值:关键字、rgb表示法、rgba表示法、十六进制
注意点:
背景颜色默认是透明的:rgba(0,0,0,0)、transparent
背景颜色不会影响盒子大小,并且还能看清盒子的大小和位置,一般在布局中会习惯先给盒子设置背景颜色。

2.2 背景图片

属性名:background-image (bgi)
属性值:background-image: url(‘图片路径’)
注意点:
1背景图片中url可以省略引号
2背景图片默认是在水平垂直方向平铺的
3背景图片仅仅是指给盒子起到装饰效果,类似于背景颜色

2.3背景平铺

如果在style标签中设置的宽和高多大,而图片本身小,会导致图片复制多份而覆盖style设置的区域。
属性名:background-repeat(bgr)
属性值如图[1]
在这里插入图片描述

2.4 背景位置

属性名:background-position(bgp)
在这里插入图片描述
background-position:水平位置设置 垂直位置设置

2.5背景相关属性连写

属性名:background(bg)
属性值:单个属性值合写。取值之间以空格隔开
书写顺序:
background: color image repeat position
复合属性就是一个属性名加多个值

2.6背景与img标签的区别

img标签是一个标签,不设置宽高默认以固定原尺寸显示
img为插入图片,主要用来显示重要的图片,比如宣传图;
div标签+背景图片:需要设置div的宽高,因为背景图片只是装饰css的样式,不能撑开div标签。因此,不设置宽高,没有盒子就没有图片
只起修饰作用的,可有可无的图片就用背景图片

3 元素显示模式

<>叫标签,也叫元素

3.1块级元素

显示特点:
1独占一行
2宽度默认是父元素的宽度,高度默认由内容撑开
3可以设置宽高
代表标签:
div,p,h系列,ul,li,dl,dt,dd,form,header,nav,footer…

3.2行内元素

显示特点
1一行可以显示多个
2宽度和高度默认由内容撑开
3不可以设置宽高
代表标签
a,span,b,u,i,s,strong,ins,em,del…

3.3行内块元素

显示特点:
1一行可以显示多个
2可以设置宽高
代表标签:
input,textarea,button,select
特殊情况:img

3.4元素显示模式的转换

目的:改变元素默认的显示特点,让元素符合布局要求
语法:
display:block 转换成块级元素 较多
display:inline-block 转换成行内块元素 较多
display:inline 转换成行内元素 较少
自然,在元素(标签)的css中进行设置

3.5 拓展

1块级元素一般作为大容器,可嵌套文本、块级元素、行内元素、行内块元素等
但是:p标签中不要嵌套div,p,h等块元素
2a标签内部可用嵌套任意元素
但是:a标签不能套a标签

4 CSS特性

4.1继承性

特性:子元素有默认继承父元素样式的特点
可以继承的常见属性:1color 2font-style,font-weight, font-size, font-family 3text-indent, text-align 4line-height
颜色、字样式、首行缩进、行高
注意点:1可通过调试工具判断样式是否可以继承
2所有控制文字的都能继承,不是控制文字的都不能继承
继承性失效的情况:
1a标签的color会继承失效
2h系列标签的font-size会失效

4.2层叠性

1给同一个标签设置不同的样式,此时样式会层叠叠加,会共同作用在标签上;
2给同一个标签设置相同样式,此时样式会层叠覆盖,最终写在最后的样式生效。
注意:当样式冲突时,只要当选择器优先级相同时,才能通过层叠性判断结果

5 案例

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div a {
            height: 30px;
            width: 50px;
            background-color: red;
            display: inline-block;
            text-decoration: none;
            color: white;
            text-align: center;
            line-height: 30px;
        }
        div a:hover{
            background-color: orange;
        }
    </style>
</head>
<body>
    <div>
        <a href="">导航1</a>
        <a href="">导航2</a>
        <a href="">导航3</a>
        <a href="">导航4</a>
        <a href="">导航5</a>
    </div>
</body>

在这里插入图片描述

参考

[1]前端开发入门教程笔者学习的课程

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

osg之黑夜背景地月系显示

目录 效果 代码 效果 代码 /** * Lights test. This application is for testing the LightSource support in osgEarth. * 灯光测试。此应用程序用于测试osgEarth中的光源支持。 */ #include "stdafx.h" #include <osgViewer/Viewer> #include <osgEarth/N…

Vite创建React项目,另外一种更加简单的方法

在上一篇blog中一个一个安装依赖dependencies&#xff0c;有没有一步到位的方法呢&#xff0c;有! 参考《React 18 Design Patterns and Best Practices Design, build, and deploy production-ready web applications with React》4th 第一章倒数第二节Vite as a solution有个…

Mysql数据库 12.SQL语言 触发器

一、触发器&#xff08;操作日志表&#xff09; 1.介绍 不需要主动调用的一种储存过程&#xff0c;是一个能够完成特定过程&#xff0c;存储在数据库服务器上的SQL片段。 对当前表中数据增删改查的一种记录<日志表>&#xff0c;根据触发器自动执行&#xff0c;记录当前…

在mac上使用jmap -heap命令报错:Attaching to process ID 96530, please wait...

在mac上执行命令jmap -heap 96530 报错&#xff1a; Attaching to process ID 96530, please wait... ERROR: attach: task_for_pid(96530) failed: (os/kern) failure (5) Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException: Cant attach to the proc…

OpenHarmony 社区运营报告(2023 年 10 月)

● 截至 2023 年 10 月&#xff0c;OpenHarmony 社区共有 51 家共建单位&#xff0c;累计超过 6200 名贡献者产生 24.2 万多个 PR&#xff0c;2.3 万多个 Star&#xff0c;6.1 万多个 Fork&#xff0c;59 个 SIG。 ● OpenHarmony 4.0 版本如期而至&#xff0c;开发套件同步升级…

【经验模态分解】2.EMD的3个基本概念

/*** poject 经验模态分解及其衍生算法的研究及其在语音信号处理中的应用* file EMD的3个基本概念* author jUicE_g2R(qq:3406291309)* * language MATLAB/Python/C/C* EDA Base on matlabR2022b* editor Obsidian&#xff08;黑曜石笔记软件…

电脑msvcp110.dll丢失怎么办,msvcp110.dll缺失的详细修复步骤

在现代科技发展的时代&#xff0c;电脑已经成为我们生活和工作中不可或缺的工具。然而&#xff0c;由于各种原因&#xff0c;电脑可能会出现一些问题&#xff0c;其中之一就是msvcp110.dll文件丢失。这个问题可能会导致一些应用程序无法正常运行&#xff0c;给我们的生活和工作…

linux生产者消费者模型

今天是一个与互斥锁和条件变量有关的一个模型&#xff0c;生产者消费者模型&#xff0c;为什么要用这个模型呢&#xff1f;其实这个模型我个人感觉的有点就是提高了效率&#xff0c;在多线程的情况下&#xff0c;提高了非常明显。并且解耦了生产者和消费者的关系。下面是一个这…

探索经典算法:贪心、分治、动态规划等

1.贪心算法 贪心算法是一种常见的算法范式&#xff0c;通常在解决最优化问题中使用。 贪心算法是一种在每一步选择中都采取当前状态下最优决策的算法范式。其核心思想是选择每一步的最佳解决方案&#xff0c;以期望达到最终的全局最优解。这种算法特点在于只考虑局部最优解&am…

Git设置显示中文

git config --global i18n.comitencoding utf-8 git config --global i18n.logoutputencoding utf-8 export LESSCHARSETutf-8

人声与背景音乐源分离

一.人声分离项目说明 人声分离是将音频录音分离为各个源的任务。该存储库是音乐源分离的 PyTorch 实现。用户可以通过安装此存储库将自己喜欢的歌曲分成不同的来源。用户还可以训练自己的源分离系统。该存储库还可用于训练语音增强、乐器分离和任何分离系统。 2.1 环境配置 …

[直播自学]-[汇川easy320]搞起来(3)看文档安装软件 查找设备

2023.11.09 20&#xff1a;04 按照文档 解压压缩包得到&#xff1a; 打开 里面有一条值得注意&#xff1a; 想把软件安装到C盘&#xff0c;但是C盘没什么空间了&#xff0c;把C盘清理清理。 20&#xff1a;35 安装很快完成&#xff0c;然后阅读 由于PLC是新的&#xff0c…

django安装和rest接口写法

django安装 确保已经安装了Python。命令行中输入python --version来检查Python的版本。 安装Django。你可以在命令行中使用以下命令来安装Django&#xff1a; pip install django创建一个新的Django项目。在命令行中&#xff0c;进入你想要创建项目的目录&#xff0c;并运行以…

vscode 访问本地或者远程docker环境

1、vscode 访问docker本地环境 直接点击左下角连接图标&#xff0c;弹出选项可以选择容器&#xff0c;只要容器在本地运行者&#xff0c;选择attach可以看到运行中的容器可以选择&#xff0c;选择其中需要选择的就行 ## 运行容器&#xff0c;可以-d后台运行都可以 docker run…

跨时钟域(Clock Domain Crossing,CDC)

本文参考&#xff1a;http://t.csdnimg.cn/VHga2 【数字IC基础】跨时钟域&#xff08;CDC&#xff0c;Clock Domain Crossing&#xff09;_ReRrain的博客-CSDN博客 同步设计&#xff1a;所有设计使用同一时钟源&#xff0c;频率相位可预知。 异步设计&#xff1a;设计中有两…

RPC接口测试技术-websocket 自动化测试实践

WebSocket 是一种在单个 TCP 连接上进行全双工通信(Full Duplex 是通讯传输的一个术语。通信允许数据在两个方向上同时传输&#xff0c;它在能力上相当于两个单工通信方式的结合。全双工指可以同时&#xff08;瞬时&#xff09;进行信号的双向传输&#xff08; A→B 且 B→A &a…

elementui-plus el-tree组件数据不显示问题解决

当前情况: 显示: 注意看右侧的树是没有文字的,数据已经渲染,个数是对的,但就是没有文字, 解决: 对比以后发现是template中的#default{data}没有写大括号导致的 所以写上大括号后: 正常显示

ArcGIS 气象风场等示例 数据制作、服务发布及前端加载

1. 原始数据为多维数据 以nc数据为例。 首先在pro中需要以多维数据的方式去添加多维数据&#xff0c;这里的数据包含uv方向&#xff1a; 加载进pro的效果&#xff1a; 这里注意 数据属性需要为矢量uv&#xff1a; 如果要发布为服务&#xff0c;需要导出存储为tif格式&…

C语言编写一个程序采集招聘信息

因为在这里无法详细解释每行代码和步骤。但是&#xff0c;我可以给大家一个使用Python和requests库编写的简单爬虫程序的例子&#xff0c;它可以从网站上获取招聘信息。你可以根据这个例子&#xff0c;将其改写为使用C语言编写的爬虫程序。 import requests# 指定爬虫IP信息 pr…

javaScript爬虫程序抓取评论

由于评论区目前没有开放的API接口&#xff0c;所以我们不能直接通过编程获取到评论区的内容。但是&#xff0c;我们可以通过模拟浏览器的行为来实现这个功能。以下是一个使用Python的requests库和BeautifulSoup库来实现这个功能的基本思路&#xff1a; import requests from bs…