CSS笔记-狂神

news2025/1/12 8:42:18

1、什么是CSS

如何学习

  • CSS是什么
  • CSS怎么用(快速入门)
  • CSS选择器(重点+难点)
  • 美化网页(文字,阴影,超链接,列表,渐变…)
  • 盒子模型
  • 浮动
  • 定位
  • 网页动画(特效效果)

1.1、什么是CSS

Cascading Style Sheet层叠样式表
CSS:表现(美化网页)
字体,颜色,边距,高度,宽度,背景图片,网页定位,网页浮动

1.2、发展史

CSS1.0
CSS2.0:DIV(块)+CSS,HTML与CSS结构分离的思想,网页变得简单,SEO
CSS2.1:浮动,定位
CSS3.0:圆角、阴影、动画…浏览器兼容性~

1.3、快速入门

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--规范,<style>可以编写CSS的代码,每一个声明最好以“;”结尾
	语法:
		选择器{
				声明1;
				声明2;
				声明3;
			}

-->
    <style>
        h1{
            color: crimson;
        }
    </style>

</head>
<body>
    <h1>CSS测试</h1>
</body>
</html>

建议使用这种规范
在这里插入图片描述
CSS的优势:

1、内容和表现分离;
2、网页结构表现统一,可以实现复用
3、样式十分的丰富
4、建议使用独立于html的css文件
5、利用SEO,容易被搜索引擎收录!

1.4、CSS的3种导入方式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <!--内部样式-->
    <style>
        h1{
            color: green;
        }
    </style>

    <!--外部样式-->
    <link rel="stylesheet" href="css/style.css" />
</head>
<body>

<!--优先级:就近原则-->
<!--行内样式:在标签元素中,编写一个style属性,编写样式即可-->
<h1 style="color: red">这是标签</h1>
</body>
</html>

拓展:外部样式两种方法

  • 链接式

html

<!--外部样式-->
    <link rel="stylesheet" href="css/style.css" />
  • 导入式

@import是CSS2.1特有的!

<!--导入式-->
    <style>
        @import url("css/style.css");
    </style>

2、选择器

作用:选择页面上的某一个或者某一类元素

2.1、基本选择器

1、标签选择器:选择一类标签 标签{}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        h1{
            color: orange;
            background: blue;
            border-radius: 10px;
        }
    </style>
</head>
<body>
<h1>标签选择器</h1>
</body>
</html>

2、类 选择器class:选择所有class一致的标签,跨标签,格式:.类名{}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <style>
        /*  类选择器的格式 .class的名称{}
            好处:可以多个标签归类,是同一个class,可以复用
        */
        .demo1{
            color: blue;
        }
        .demo2{
            color: red;
        }
        .demo3{
            color: aqua;
        }
    </style>
</head>
<body>
<h1 class = "demo1">类选择器:demo1</h1>
<h1 class="demo2">类选择器:demo2</h1>
<h1 class="demo3">类选择器:demo3</h1>
</body>
</html>

3、id 选择器:全局唯一,格式:#id名{}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /*  id选择器:id必须保证全局唯一
            #id名称{}
            不遵循就近原则,优先级是固定的
            id选择器 > 类选择器  >  标签选择器
        */
        #demo1{
            color: aqua;
        }
        .demo2{
            color: red;
        }
        #demo2{
            color: orange;
        }
        h1{
            color: blue;
        }
    </style>
</head>
<body>

<h1 id="demo1">id选择器:demo1</h1>
<h1 class="demo2" id = "demo2">id选择器:demo2</h1>
<h1 class="demo2">id选择器:demo3</h1>
<h1>id选择器:demo4</h1>
<h1>id选择器:demo5</h1>
</body>
</html>

优先级:id > class > 标签

2.2、层次选择器

1.后代选择器:在某个元素的后面

/*后代选择器*/
<style>
body p{
	background:red;
}
</style>

在这里插入图片描述
2.子选择器,一代

/*子选择器*/
<style>
body>p{
	background:orange;
}
</style>

在这里插入图片描述
3.相邻的兄弟选择器 同辈

/*相邻兄弟选择器:只有一个,相邻(向下)*/
<style>
.active+p{
background: red
}
</style>

<body>
	<p class="active">p1<p>
	<p>p2</p>
</body>

在这里插入图片描述
4.通用选择器

<style>
/*通用兄弟选择器,当前选中元素的向下的所有兄弟元素*/
	.active~p{
	background:red;
}
</style>
<body>
	<p class="active">p1<p>
	<p>p2</p>
</body>

在这里插入图片描述

html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /*p{
            background: green;
        }*/

        /*后代选择器*/
        /*body p{
            background: red;
        }*/

        /*子选择器*/
        /*body>p{
            background: #3cbda6;
        }*/

        /*相邻兄弟选择器,只有一个,相邻(向下)*/
        /*.active + p{
            background: #a13d30;
        }*/

        /*通用兄弟选择器,当前选中元素的向下所有兄弟元素*/
        .active~p{
            background: blueviolet;
        }
    </style>
</head>
<body>
<p>p0</p>
<p class="active">p1</p>
<p>p2</p>
<p>p3</p>
<ul>
    <li>
        <p>p4</p>
    </li>
    <li>
        <p>p5</p>
    </li>
    <li>
        <p>p6</p>
    </li>
</ul>

<p>p7</p>
<p>p8</p>
</body>
</html>

2.3、结构伪类选择器

伪类

<style>
        /*ul的第一个子元素*/
        ul li:first-child{
            background: aqua;
        }

        /*ul的最后一个子元素*/
        ul li:last-child{
            background: blue;
        }
        /*选中p1:定位到父元素,选择当前的第一个元素
            选择当前p元素 的父级元素,选中父级元素的第一个,并且是当前元素才生效!
        */
        p:nth-child(1){
            background: orange;
        }


        /*选中父元素下的,第2个p元素*/
        p:nth-of-type(2){
            background: red;
        }
    </style>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <!--避免使用,class,id选择器-->
    <style>
        /*ul的第一个子元素*/
        ul li:first-child{
            background: #a13d30;
        }
        /*ul的最后一个子元素*/
        ul li:last-child{
            background: red;
        }

        /*选中p1:定位到父元素,选择当前的第一个元素
        选择当前p元素的父级元素,选中父级元素的第一个子元素为p的
        按顺序
        */
        p:nth-child(2){
            background: blue;
        }

        /*选中父元素下的p元素的第二个,按类型*/
        p:nth-of-type(1){
            background: yellow;
        }

        a:hover{
            background: black;
        }
    </style>
</head>
<body>
    <!--<h1>h1</h1>-->
    <p>p1</p>
    <p>p2</p>
    <p>p3</p>
    <ul>
        <li>li1</li>
        <li>li2</li>
        <li>li3</li>
    </ul>

    <a href="">链接标签</a>
</body>
</html>

2.4、属性选择器(常用)

id + class结合

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
         .demo a{
            display: block;
            height: 50px;
            width: 50px;
            float:left;
            border-radius: 10px;
            background: blue;
            text-align: center;
            color: beige;
            text-decoration: none;
            margin-right: 5px;
            font: bold 20px/50px Arial;
        }
         /*属性名,属性名=属性值(正则)
         =表示绝对等于
         *=表示包含
         ^=表示以...开头
         $=表示以...结尾
         存在id属性的元素  a[]{}
         */
        /* a[id]{
             background: red;
         }*/

         /*id=first的元素*/
       /* a[id=first]{
            background: aqua;
        }*/

        /*class中有links元素*/
       /* a[class = "links item2 first2"]{
            background: orange;
        }*/
        /*a[class*="links"]{
            background: black ;
        }*/
        /*选中href中以http开头的元素*/
        a[href^="http"]{
            background: orange;
        }
    </style>

</head>
<body>
<p class="demo">
    <a href="http://www.baidu.com" class="links item first" id="first">1</a>
    <a href="/adad/faf" class="links item2 first2" >2</a>
    <a href="qwe123" class="links item3 first3" >3</a>
    <a href="eweqe" class="links item4 first4" >4</a>
    <a href="rrrrr" class="links item5 first5" >5</a>
    <a href="ttt" class="links item6 first6" >6</a>
    <a href="yyy" class="links item7 first7" >7</a>
</p>
</body>
</html>

在这里插入图片描述

= 绝对等于
*= 包含这个元素
^= 以这个开头
$= 以这个结尾

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

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

相关文章

PAM从入门到精通(二十二)

接前一篇文章&#xff1a;PAM从入门到精通&#xff08;二十一&#xff09; 本文参考&#xff1a; 《The Linux-PAM Application Developers Guide》 先再来重温一下PAM系统架构&#xff1a; 更加形象的形式&#xff1a; 七、PAM-API各函数源码详解 前边的文章讲解了各PAM-API…

如何复制禁止复制的内容

今天找到一段代码&#xff0c;但是复制时页面提示“这个是VIP会员才有的权限”。我该怎么复制呢。 现在的平台大都是用钱说话&#xff0c;以便响应知识付费的主张。对错我就不说了&#xff0c;我认为既然我有权利看到代码&#xff0c;当然也有权把他复制下来。这并不涉及侵权。…

DNS、ICMP和NAT

DNS、ICMP和NAT 文章目录 DNS、ICMP和NATDNS是什么域名系统的名字空间域名空间的层次结构域名的分配和管理顶级类别域名 DNS域名解析过程递归查询迭代查询 高速缓存 ICMPICMP的定位ICMP协议的功能 ICMP的报文格式ping命令traceroute命令 NATNAT技术背景NAT IP转换过程NAPTNAT的…

autohotkey v1

autohotkey v1 文档 https://www.autohotkey.com/docs/v1/ 编辑器 https://www.autohotkey.com/scite4ahk/ https://www.autohotkey.com/

基于Python实现手写文字识别

基于Python实现手写文字识别&#xff0c;对学生日常作业及考试试卷中的手写内容进行自动识别&#xff0c;实现学生作业、考卷的线上批阅及教学数据的自动分析&#xff0c;提升教职人员工作效率&#xff0c;促进教学管理的数字化和智能化。 目录 引言背景介绍目标和意义 手写文字…

解决chrome浏览器netWork响应数据中文乱码的问题

项目中遇到返回值出现如下图所示情况&#xff1a; 开发起来很麻烦&#xff0c;可以通过添加Source code扩展程序解决。 具体操作&#xff1a; 1、下载 地址&#xff1a; https://github.com/jinliming2/Chrome-Charset/releases 或者&#xff1a;https://download.csdn.net/do…

循环队列c语言版

一、循环队列结构体 typedef int QueueDataType; #define CQ_MAX_SIZE 10typedef struct CircularQueue {QueueDataType data[CQ_MAX_SIZE];/**标记队列首*/QueueDataType head;/**标记队列尾部*/QueueDataType rear;} CircularQueue; 二、循环队列操作函数声明 /**创建队…

项目部署Linux一般步骤

1、最小化安装centos7-环境准备 安装epel-release 安装epel-release&#xff0c;因为有些rpm包在官方库中找不到。前提是保证可以联网 yum install -y epel-release 修改IP net-tools net-tool&#xff1a;工具包集合&#xff0c;包含ifconfig等命令 yum install -y net-…

【技能树笔记】网络篇——练习题解析(九)

目录 前言 一、OSPF双栈 1.1 OSPFv3 LSA 1.2 OSPFv3 二、ISIS双栈 2.1 ISISv6 2.2 ISIS高级特性 三、BGP双栈 四、PIM双栈 总结 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高兴与大家相识&#xff0c;希望我的博客能对你有所帮助。 &#x1f4a1;本文由Filot…

SpringDoc API文档工具集成SpringBoot - Swagger3

1、引言 之前在Spring Boot项目中一直使用的是SpringFox提供的Swagger库&#xff0c;发现已经超过3年没出新版本了&#xff01;SpringDoc是一款可以结合Spring Boot使用的API文档生成工具&#xff0c;基于OpenAPI 3&#xff0c;是一款更好用的Swagger库&#xff01;值得一提的是…

Playwright 配置文件/运行命令/测试标记

Playwright 配置文件/运行命令/测试标记 一、运行说明 1. 运行命令 // 运行测试集&#xff0c;无界面模式 npx playwright test// 运行测试集&#xff0c;界面模式 npx playwright test --ui// 运行单个测试文件 npx playwright test test_file.spec.ts// 以调试模式运行测试…

选购采购管理软件,首先考虑这5个功能

虽然采购已经达到了数字化的临界点&#xff0c;但企业在接受新的解决方案时却犹豫不决。德勤一份全球首席采购官调查显示&#xff0c;只有 18% 的组织制定了数字化采购战略。 自动化采购任务和优化采购到付款周期可以为企业节省大量金钱和时间。然而&#xff0c;通过过时的采购…

Maven依赖scope为system级别部署时Jar包缺少解决

问题 在开发springboot项目时&#xff0c;maven引入本地第三方jar包&#xff0c;在idea中运行正常。打成jar部署后报找不到类 错误如下&#xff1a; ERROR SpringApplication.reportFailure(834) | Application run failed org.springframework.beans.factory.UnsatisfiedDep…

【tio-websocket】8、服务配置与维护—TioConfig

场景 我们在写 TCP Server 时,都会先选好一个端口以监听客户端连接,再创建N组线程池来执行相关的任务,譬如发送消息、解码数据包、处理数据包等任务,还要维护客户端连接的各种数据,为了和业务互动,还要把这些客户端连接和各种业务数据绑定起来,譬如把某个客户端绑定到一…

仪表盘自定义标题和数值样式

仪表盘自定义标题和数值样式 fn() var myEcharts; function fn(v) {var chartDom document.getElementById(myEcharts);myEcharts&& myEcharts.dispose();myEcharts echarts.init(chartDom, walden);var option;option {series: [{type: gauge,radius: 85%,center: […

activiti7 报错Couldn‘t resolve collection expression nor variable reference

解决方法 nacos添加配置 spring&#xff1a;activiti: serializePOJOsInVariablesToJson: false 截图如下&#xff1a; 分析过程 Couldnt resolve collection expression nor variable reference报错分析是“无法解析集合表达式或变量引用” 刚开始我一直测试…

激光雷达数据为例滤波器

可以通过传感器获取障碍物的位置、速度; 但是任何测量结果都是有误差的。 因此需要在传感器测量结果的基础上, 进行跟踪,以此来保证障碍物的位置、速度等信息不会发生突变。 所谓的跟踪就是通过运动模型来递推障碍物的位置、速度等信息。 最经典的跟踪算法是卡尔曼滤波器。…

用户社交信息交互卡片

效果展示 CSS 知识点 CSS 基础知识回顾transition-delay 属性的运用 整体页面布局实现 <div class"card"><div class"user"><div class"img_box"><img src"bg.jpg" /></div><div class"cont…

积分球检测水质的原理是什么?

积分球可以用于检测水质&#xff0c;主要通过测量水体中物质的吸收光谱来实现。具体来说&#xff0c;光路经过积分球内腔&#xff0c;当水样经过球体时&#xff0c;水体中的物质会吸收一定波长的光&#xff0c;从而改变球体的透射光强。通过测量球体透射光强的改变&#xff0c;…

UE 交互草实现 不通过RT与距离场的方式

通过计算世界场景位置与玩家位置的距离&#xff0c;如果距离大于等于DistanceEffect则不做操作&#xff0c;若小于DistanceEffect则DistanceEffect减去两者之间距离除以并除以DistanceEffect&#xff0c;为什么有这个操作呢&#xff1f; 因为我们要做在DistanceEffect距离内&a…