尚硅谷html5+css3(2)CSS5基本知识

news2024/11/28 22:53:23

1.网页分为三个部分:

结构:HTML

表现:CSS

行为JavaScript

CSS:层叠样式表,网页实际上是一个多层结构,通过CSS可以分别为网页的每一个层来设置样式,最终用户只看最上面的一层,总之,CSS用来设置网页中元素的样式

2.使用CSS修改元素的样式:

(1)在标签内部通过style属性设置元素的样式(内联样式,只能对一个标签生效,一般不用)

<p style="color: red;font-size: 60px;"> style </p>

(2)将样式编写到head的style标签中(内部样式表:可以同时为多个标签设置样式,修改时只用修改次此处即可)(但只能对一个页面起作用)

例:使所有p标签都为绿色:


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

(3)对多个网页起作用(外部样式表)

将CSS样式编写到一个外部CSS文件中,使样式在不同页面复用。还可以使用浏览器的缓存机制,从而加快网页的加载速度,提高用户体验

即创建style.css文件:

 p { color: green; }

通过link标签引入外部CSS文件

<link rel="stylesheet" href="./style.css">

3.CSS的基本语法

在<style>标签中不属于html,所以要用CSS的标准写

<head>
    <style>
        /*CSS注释*/
        /*
        CSS基本语法:
        选择器 声明块
        选择器:通过选择器可以选中页面中指定元素
            例:h1:选中页面所有h1元素
        声明块:通过声明块来指定要为元素设置的格式
            例:color: blue;
            最后一个;可以省略
        */
        h1 {
            color: blue;
        }
    </style>
</head>

<body>
    <h1> 111 </h1>
</body>

4.CSS的常用选择器

(1)元素选择器

<head>
    <style>
        /*
        元素选择器:
            作用:根据标签名选中指定的元素
            语法:标签名+{}
            例子:p{} h1{} div{}
        */
        p {
            color: blue;
        }
    </style>
</head>

<body>
    <h1> 111 </h1>
    <p> p1 </p>
    <p> p2 </p>
</body>

(2)id选择器(设置id时保证唯一性)

<head>
    <style>
        /*若将第二行的p单独设置为红色,则使用id选择器
        作用:根据元素的id属性选中一个元素
        语法:#+id+{}
        例子:#12{color:red}
        */
        #abc {
            color: red
        }
    </style>
</head>

<body>
    <h1> 111 </h1>
    <p> p1 </p>
    <p id="abc"> p2 </p>
</body>

(3)class标签(多个class用空格隔开)

<head>
    <style>
        /*类选择器:
            class是一个标签的属性,他和id相似,不同的是class可以重复使用
            作用:根据元素的class属性值选中一组元素
            语法:.+class+{}
        */
        .abc {color: red}
        .bc {font-size: 50px;}
    </style>
</head>

<body>
    <h1> 111 </h1>
    <p> p1 </p>
    <p class="abc bc"> p2 </p>
    <p class="abc"> p3 </p>
</body>

(4)通配选择器

<head>
    <style>
        /*通配选择器
            作用:选中页面中的所有元素
            语法:*
        */
        *{color: red}
    </style>
</head>
<body>
    <h1> 111 </h1>
    <p> p1 </p>
</body>

5.复合选择器

(1)交集选择器 .

<head>
    <style>
        /*将class为red的div字体大小设置为30px
        使用交集选择器
            作用:选中同时复合多个条件的元素
            语法:选择器1+.+选择器2+{}
            注意:若有元素选择器,则用元素选择器开头
            */
        div.red {font-size: 30px;}
    </style>
</head>

<body>
    <div class="red"> div </div>
    <p class="red"> p </p>
</body>

(2)并集选择器 ,

<head>
    <style>
        /*同时选中h1和span设置为绿色
        使用并集选择器
            作用:同时选择多个选择器对应的元素
            语法:选择器1+,+选择器2+{}
            注意:若有元素选择器,则用元素选择器开头
            */
        h1,span {color: green;}
    </style>
</head>

<body>
    <h1 class="red"> div </h1>
    <span class="red"> p </span>
</body>

6.关系选择器

<body>
    <div>
        我是div
        <p>
            我是div中的p
            <span>我是div-p-span</span>
        </p>
        <span>我是div-span</span>
    </div>
</body>

(1)子元素选择器

<head>
    <style>
    /*为div的子元素span(不是p里的span)设置一个字体颜色:红色
        子元素选择器
            作用:选中指定父元素的指定子元素
    */
        div > span {
            color: red;
        }
    </style>
</head>

(2)后代元素选择器

  /*后代元素选择器*/
        div span {color: red;}

(3)兄弟元素选择器

        /*兄弟元素选择器:(都是选择后面的)
            选择下一个兄弟
                语法:当前+下一个(要修改的)
            选择下面所有兄弟
                语法:兄~弟(要修改的)
         */
        p + span {
            color: red;
        }
        p ~ span {
            color: red;
        }

7.属性选择器

<body>
    <p title="a"> 1</p>
    <p title="ab"> 2</p>
    <p title="c"> 2</p>
    <p> 3</p>
</body>
        /*属性选择器1:
            [属性名],让p标签中有title的颜色变为红色
            (不关注title里的具体值)
            选择含有指定属性的元素 
            */
        p[title] {
            color: red;
        }

 /*属性选择器2:
            [属性名=属性值],让p标签中title=b的颜色变为红色
            选择含有指定属性和属性值的元素
            */
        p[title=a] {
            color: red;
        }

 /*属性选择器3/4/5:
            [属性名^=属性值],选择以属性值开头的元素
            例:选择以a开头的元素
            [属性名¥=属性值],选择以属性值结尾的元素
            [属性名*=属性值],选择属性值中含有某元素的元素
            */
        p[title^=a] {
            color: red;
        }

8.伪类选择器

<head>
    <style>
        /*将ul里的第一个li设置为红色*/
        ul > li.first {color: red;}
    </style>
</head>

<body>
    <!--ul>5*li-->
    <ul>
        <li class="first">第1个</li>
        <li>第2个</li>
        <li>第3个</li>
        <li>第4个</li>
        <li>第5个</li>
    </ul>
</body>

这个将第一个li设置为红色,若添加li在此前面,则新的第一个li不为红色

解决方法:使用伪类选择器

<head>
    <style>
        /*将ul里的第一个li设置为红色*/
        /*使用伪类(用来描述一个元素的特殊状态)
        比如:第一个元素/被点击的元素
        伪类一般情况下用:开头*/
        /*:first-child:冒号前面元素的第一个子元素(总可以确保第一个为红色)*/
        ul>li:first-child {
            color: red;
        }

        /*:last-child:冒号前面元素的最后一个子元素(总可以确保最后一个为绿色)*/
        ul>li:last-child {
            color: green;
        }

        /*:nth-child(n):冒号前面元素的第n个子元素(总可以确保第n个为蓝色)
         若()写n:全选(n取0~正无穷)
         若()写2n/even:选中偶数位的元素
         若()写2n+1/odd:选中偶数位的元素
         */
        ul>li:nth-child(3) {
            color: blue;
        }
        /*这些伪类是根据所有子元素进行排序
        即若最前面加span,则都不生效 要用ul>span:first-child选第一个*/

        /*:first-of-type  :last-of-type  :nth-last-of-type()功能与上述相同
        找相同类型的第?个,即使用:first-of-type可以在span加入的情况下对第一个li进行改变*/
    </style>
</head>

<body>
    <!--ul>5*li-->
    <ul>
        <li>第1个</li>
        <li>第2个</li>
        <li>第3个</li>
        <li>第4个</li>
        <li>第5个</li>
    </ul>
</body>

<head>
    <style>
        /*:not()否定伪类
     将符合条件的元素从选择其中去除*/
        ul>li:not(li:nth-child(2)) {
            color: aqua;
        }
    </style>
</head>

10.超链接的伪类

<head>
    <style>
        /*一般不用*/
        /*link和visited只适用于a*/
        /*:link:表示没访问过的链接*/
        a:link {
            color: red;
        }
        /*:visited:表示访问过的链接,只能改颜色*/
        a:visited {

            color: green;
        }
    </style>
</head>
<!--
    通过伪类区分:
    1.没访问过的链接
    2.访问过的链接
-->

<body>
    <a href="https://www.baidu.com/"> 访问过的链接</a>
    <br>
    <br>
    <a href="https://www.baidu.com/"> 没访问过的链接</a>
</body>

表示鼠标移入的状态:a:hover  表示鼠标点击的状态:a:active(这两个所有元素都可以用)

<head>
    <style>
        /*表示鼠标移入的状态:a:hover*/
        a:hover {
            color: red;
        }

        /*表示鼠标点击的状态:a:active*/
        a:active {
            font-size: 30px;
            color: green;
        }
    </style>
</head>
<!--
    通过伪类区分:
    1.没访问过的链接
    2.访问过的链接
-->

<body>
    <a href="https://www.baidu.com/"> 链接1</a>
    <br>
    <br>
    <a href="https://www.baidu.com/"> 链接2</a>
</body>

11.伪元素选择器

<head>
    <style>
        /*伪元素:表示页面中一些特殊的元素(如首字母)
      ::first-letter:第一个字母
      ::first-line:第一行
      ::selection:鼠标选中的内容
      */
        p::first-letter {
            font-size: 50px;
        }

        p::first-line {
            background-color: yellow;
        }

        p::selection {
           color: green;
        }
    </style>
</head>

<body>
    <!--首字母下沉-->
    <p>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Minima obcaecati iusto, illum sapiente consequatur hic
        harum exercitationem perspiciatis deleniti? Autem ducimus qui recusandae impedit voluptatum voluptate quibusdam
        esse dignissimos pariatur.
    </p>
</body>

<head>
    <style>
        /*伪元素:表示页面中一些特殊的元素(如首字母)
      ::before 元素起始位置  在>和h之间
      ::after 元素最后位置  在u和<之间
      before和after必须结合content使用(添加内容)
      */
        div::before{
            content: 'abc';
            color: red;
        }
        div::after{
            content: 'hhhhh';
            color: green;
        }
    </style>
</head>

<body>
    <div>hello hello how are you</div>
</body>

12.样式的继承

<head>
    <style>
        /*样式的继承:我们为一个元素设置的样式同时也会应用到它的后代上
        并不是所有的样式都会被继承,比如背景、布局相关的不会被继承*/
        p{
            color: red;
        }
    </style>
</head>
<!--span元素继承了父亲p的style-->
<body>
    <p>我是一个p元素
        <span>我是p元素中的span元素</span>
    </p>
</body>

13.选择器的权重

<head>
    <style>
        div {
            color: yellow;
        }
        .red {
            color: red;
        }
    </style>
</head>
<!--样式的冲突:
    当我们通过不同的选择器选中相同的元素,并为相同的样式设置不同的值
    发生样式冲突时,应用哪个样式由选择器的权重(优先级)决定
    选择器的权重从高到低:内联样式,id选择器,类和伪类选择器,元素选择器
    若优先级相同,则优先使用下面的样式

    可以在某样式后面加!inportant,则此样式为最高优先级
-->

<body>
    <div id="box1" class="red">我是div
    </div>
</body>

14.像素和百分比

<head>
    <style>
        .box1 {
            /*长度单位:
                像素 px
                百分比
                    */
            width: 200px;
            height: 200px;
            background-color: orange;
        }
        .box2 {
            /*百分比:将属性设置为相对于其父元素属性的百分比
            使用百分比可以使子元素跟随父元素的改变而改变
                    */
            width: 50%;
            height: 70%;
            background-color: green;
        }
    </style>
</head>
<body>
    <div class="box1">11 <div class="box2">22</div>
    </div>
</body>

<head>
    <style>
        html{
            font-size: 50px;
        }
        .box1 {
            /*em:相对于元素的字体大小来计算的
            1em=1font-size
            em会根据字体大小的改变而改变*/
            font-size: 20px;
            width: 10em;
            height: 10em;
            background-color: red;

        }

        .box2 {
            /*rem:相对于根元素(html)的字体大小来计算的
            1em=1font-size
            em会根据字体大小的改变而改变*/
            font-size: 50px;
            width: 10em;
            height: 10em;
            background-color: blue;
        }
    </style>
</head>

<body>
    <div class="box1">11 <div class="box2">22</div>
    </div>
</body>

15.RGB/RGBA值:

使用颜色名,比如red,yellow等

使用RGB值,0~255(0%~100%之间)

使用RGBA,A代表不透明度,用.n表示(1表示完全不透明,0表示完全透明)

使用十六进制的RGB值:#红色绿色蓝色,如果两位重复可以简写,例:#ffffff可以简写为#fff

16.HSL/HSLA值:

H:色相  (0-360)

S:饱和度 颜色的浓度(0-100)

L:亮度 (0-100)

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

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

相关文章

适用于 Windows 10 的 10 大免费数据恢复软件

数据丢失可能是一场噩梦&#xff0c;尤其是在涉及重要文件和文档时。无论是由于意外删除、系统崩溃还是病毒攻击&#xff0c;找到适合 Windows 10 的文件夹恢复软件都可以在恢复丢失的数据方面发挥重要作用。在本指南中&#xff0c;我们将探索适用于 Windows 10 用户的 10 大免…

景区云旅游/视频慢直播方案设计与平台搭建

一、行业背景 经文化和旅游部数据中心测算&#xff0c;今年清明节假期3天全国国内旅游出游1.19亿人次&#xff0c;按可比口径较2019年同期增长11.5%&#xff1b;国内游客出游花费539.5亿元&#xff0c;较2019年同期增长12.7%。踏青赏花和户外徒步成为假期的热门出游主题。随着…

Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066

很奇怪的问题,在使用nifi的时候碰到的,这里是用NIFI,把数据从postgresql中同步到mysql中, 首先postgresql中的源表,中是没有create_time这个字段的,但是同步的过程中报错了. 报错的内容是说,目标表中有个create_time字段,这个字段是必填的,但是传过来的flowfile文件中,的数据没…

Windows命令行关机操作

cmd相关备忘 1. 导语2. Windows本命操作3. 实用命令集合3.1. 一段时间后关机3.2. 立即关机命令3.3. 一段时间后重启3.4. 休眠命令3.5. 取消指令 &#x1f609; 记录一些不常用有的时候很救命的cmd命令 1. 导语 不知道小伙伴们有么有遇到过这样尴尬的时候&#xff0c;电脑的鼠标…

1.网络编程-网络协议

目录 网络编程是什么 网络编程三要素 OSI七层网络模型 TCP/IP五层模型 SSL/TLS 是哪层协议 网络编程是什么 网络编程是计算机科学中的一个重要领域&#xff0c;它涉及到编写能够在网络环境中进行通信的程序。网络编程的核心目标是使不同的设备能够通过网络交换信息&#…

Python爬虫基础篇章(面试常问1)

如今信息技术的发展已经进入“数据”驱动的时代&#xff0c;通过对海量数据的处理&#xff0c;能够产生极大的科研和商业价值。网络爬虫的出现&#xff0c;将网络上的各种数据进行自动汇总&#xff0c;定制化产生需要的数据&#xff0c;是当今时代数据获取的重要来源。网络爬虫…

《Market Insight:中国流程挖掘市场发展洞察(2023)》报告将于4月11日发布

流程挖掘市场虽然项目数量有所增加&#xff0c;但目前的中国市场依旧处于早期阶段。而伴随着生成式AI技术的发展&#xff0c;流程挖掘市场又将迎来的新的变革和机遇&#xff0c;RPA中国在调研中发现&#xff0c;诸多技术供应商在努力地拥抱生成式AI&#xff0c;以便于提升自身产…

3D渲染器原理及Python朴素实现

最近&#xff0c;我发现自己需要为即将进行的项目提供一些来自不同角度的低多边形 3D 模型的低分辨率精灵。 像这样的东西&#xff1a; 获得它们的可能方法包括&#xff1a; 学习一点 Blender在 WebGL 中制作编写我自己的渲染器 我对 Blender 的短暂经历已经让我受到了创伤&…

24 个Intellij IDEA好用插件

24 个Intellij IDEA好用插件 一. 安装插件 Codota 代码智能提示插件 只要打出首字母就能联想出一整条语句&#xff0c;这也太智能了&#xff0c;还显示了每条语句使用频率。 原因是它学习了我的项目代码&#xff0c;总结出了我的代码偏好。 Key Promoter X 快捷键提示插件 …

CCIE-10-IPv6-TS

目录 实验条件网络拓朴 环境配置开始Troubleshooting问题1. R25和R22邻居关系没有建立问题2. 去往R25网络的下一跳地址不存在、不可用问题3. 去往目标网络的下一跳地址不存在、不可用 实验条件 网络拓朴 环境配置 在我的资源里可以下载&#xff08;就在这篇文章的开头也可以下…

深入MyBatis的动态SQL:概念、特性与实例解析

MyBatis 是一个优秀的持久层框架&#xff0c;它支持定制化 SQL、存储过程以及高级映射。 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。它可以使用简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO&#xff0c;即普通的 Java 对象为数据库中的记…

【数据结构与算法】:快速排序和冒泡排序

一&#xff0c;快速排序 快速排序是一种比较复杂的排序算法&#xff0c;它总共有4种实现方式&#xff0c;分别是挖坑法&#xff0c;左右"指针"法&#xff0c;前后"指针"法&#xff0c;以及非递归的快速排序&#xff0c;并且这些算法中也会涉及多种优化措施…

IntelliJ IDEA 2024.1 更新亮点汇总:全面提升开发体验

IntelliJ IDEA 2024.1 更新亮点汇总&#xff1a;全面提升开发体验 文章目录 IntelliJ IDEA 2024.1 更新亮点汇总&#xff1a;全面提升开发体验摘要引言 IntelliJ IDEA 2024.1 的新增功能主要亮点全行代码完成 最终的支持 Java 22 功能新航站楼 贝塔编辑器中的粘滞线 人工智能助…

Ubuntu 20.04.06 PCL C++学习记录(十八)

[TOC]PCL中点云分割模块的学习 学习背景 参考书籍&#xff1a;《点云库PCL从入门到精通》以及官方代码PCL官方代码链接,&#xff0c;PCL版本为1.10.0&#xff0c;CMake版本为3.16 学习内容 PCL中实现欧式聚类提取。在点云处理中,聚类是一种常见的任务,它将点云数据划分为多…

Microbiome|北京林业大学生物多样性研究团队揭示土壤原核生物群落在推动亚热带森林植物多样性与生产力关系中的重要作用

生物多样性与生态系统功能&#xff08;BEF&#xff09;之间的关系是生态研究的重要课题之一。土壤微生物群落的变化可能是调节这种关系的关键因素之一。关于森林中真菌群落对树木多样性-生产力关系的影响&#xff0c;已有大量研究。然而&#xff0c;对于细菌和古细菌&#xff0…

第四届计算机、物联网与控制工程国际学术会议(CITCE 2024)

先投稿&#xff0c;先送审&#xff0c;先录用&#xff01;快至投稿后三天录用&#xff01; 第四届计算机、物联网与控制工程国际学术会议&#xff08;CITCE 2024) The 4th International Conference on Computer, Internet of Things and Control Engineering&#xff08;CITCE…

exe签名证书

我们需要明白什么是exe签名证书&#xff1f;exe签名证书是一种数字证书&#xff0c;用于对可执行文件&#xff08;即.exe文件&#xff09;进行数字签名。这种签名可以确保软件的完整性和来源&#xff0c;防止软件被恶意篡改。同时&#xff0c;它也提供了一种机制&#xff0c;使…

THREE.JS 数据纹理简明教程

我一直在研究从 Three.js 中的数据创建纹理。 这非常简单&#xff0c;但有一些注意事项&#xff0c;有些部分可能会令人困惑。 很多年前我曾陷入过一些陷阱&#xff0c;最近又再次陷入其中&#xff0c;所以我决定写下来&#xff01; NSDT工具推荐&#xff1a; Three.js AI纹理开…

通过自动化部署消除人为操作:不断提高提交部署比率

三十年后&#xff0c;我仍然热爱成为一名软件工程师。事实上&#xff0c;我最近读了威尔拉森&#xff08;Will Larson&#xff09;的《员工工程师&#xff1a;超越管理轨道的领导力》&#xff0c;这进一步点燃了我以编程方式解决复杂问题的热情。知道雇主继续照顾员工、原则和杰…

222,完全二叉树的节点数

给你一棵 完全二叉树 的根节点 root &#xff0c;求出该树的节点个数。 完全二叉树 的定义如下&#xff1a;在完全二叉树中&#xff0c;除了最底层节点可能没填满外&#xff0c;其余每层节点数都达到最大值&#xff0c;并且最下面一层的节点都集中在该层最左边的若干位置。若最…