Day03 CSS

简介: CSS

CSS

层叠样式表(Cascading Style Sheets) ,用于渲染HTML元素标签的样式。

基本语法
<!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>
        /* CSS注释 */
        p{
            color: black;
        }
    </style>

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

</head>
<body>
    
    <!-- 
        网页分成三个部分
            结构: HTML
            表现:CSS
            行为:JavaScript

        CSS: 
            层叠样式表
            网页其实是一个多层的结构,通过CSS可以分别为网页每一层来设置样式。
        
     -->

     <!-- 
        使用CSS来修改元素的样式
        1.内联样式(行内样式):
            在标签内部通过style属性来设置元素的样式。
            style="属性名:属性值;...."。
            样式只能对一个标签生效。
        2.内部样式表:
            将样式编写到head中的style标签里。
            CSS选择器{属性名: 属性值;}
        3.外部样式表:
            使用link标签来引入外部的css文件。
            <link rel="stylesheet" href="./css/style.css">
        
      -->

      <!-- 
        CSS基本语法:
            选择器{声明块}
        
        选择器:通过选择器可以选中页面中指定的元素。

        声明块: 通过声明块来指定要为元素设置的样式。
               声明块由一个一个的声明组成的。
               声明是一个名值对结构。
               一个样式名对应一个样式值,名和值之间以:连接,以;结束。

       -->

      
      <p style="color: red;">我是一个P标签</p>


</body>
</html>
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>

        /* 
        
            常用选择器
                元素选择器
                    作用:根据标签名来选中指定的元素。
                    语法:标签名{}

            
                id选择器
                    作用:根据元素的id属性值来选中一个元素。
                    语法:#id{}

                类选择器:
                    作用:根据元素的class属性值来选中一组元素。
                    语法:.类名{}

            通配符选择器
                作用:选中页面中的所有元素。
                语法:*{}

            复合选择器
                交集选择器:
                    作用:选中页面中同时符合多个条件的元素。
                    语法:选择器1选择器2...{}
                    注意:选择器中如果有元素选择器,必须使用元素选择器开头。
                并集选择器:
                    作用:同时选择多个选择器对应的元素。
                    语法:选择器1,选择器2...{}
            关系选择器
                父元素:直接包含子元素的元素。
                子元素:直接被父元素包含的元素。
                祖先元素:直接或间接包含后代元素的元素。
                后代元素:直接或间接被祖先元素包含的元素。
                兄弟元素:拥有相同的父元素的元素。

                子元素选择器:
                    作用:选中指定父元素的的指定子元素。
                    语法:父元素 > 子元素{}
                后代元素选择器:
                    作用:选中指定元素内的指定后代元素。
                    语法:祖先 后代{}
                选择下个兄弟选择器:
                    作用:选中指定元素的下一个元素。
                    语法:前一个 + 下一个{}
                选择下边所有兄弟选择器:
                    作用:选中指定元素的所有兄弟元素。
                    语法:兄 ~ 弟{}

            属性选择器
                [属性名]  选择含有指定属性的元素
                [属性名=属性值] 选择含有指定属性和属性值的元素
                [属性名^=属性值] 选择属性值以指定值开头的元素
                [属性名$=属性值] 选择属性值以指定值结尾的元素
                [属性名*=属性值] 选择属性值中含有某值的的元素

            伪类选择器
                伪类:  不存在的、特殊的,用来描述一个元素的特殊状态。
                      比如:第几个元素、被鼠标点击等等...
                      一般情况都是以:开头
                
                :first-child  第一个子元素
                :last-child   最后一个子元素
                :nth-child(n) 第n个子元素
                    n 第n个
                    2n/even 选中偶数位的元素
                    2n+1/odd 选中奇数位的元素
                
                :first-of-type
                :last-of-type
                :nth-last-of-type(n)
                    与上面的一样,但是选择的元素是同类型

                :not(选择器) 否定伪类
                    将符合条件的元素从选择器中去除


        */

        p{
            color:red;
        }

        #one{
            color: black;
        }

        .common{
            color: gray;
        }

        *{
            font-size: 20;
        }

        p.one{
            color: brown;
        }

        div,p{
            color: antiquewhite;
        }

        div > p{
            color: aquamarine;
        }

        div p {
            color: beige;
        }


    </style>

</head>
<body>
    
    
    <p id="one">第一段</p>
    <!-- 
        class是一个标签的属性
            可以通过class属性来为元素分组
            可以同时为一个元素指定多个class属性值(使用空格隔开)

     -->
    <p class="common">第二段</p>
    <p class="common three">第三段</p>
    <p>第四段</p>
    <p>第五段</p>
    <div>我是一个DIV</div>
    <div>
        <div>
            <p></p>
        </div>
        <div>

        </div>
    </div>

</body>
</html>
超链接的伪类
<!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>

        /* 
        
            :link 用来表示没访问过的链接(正常的链接)

        */
        a:link {
            color: brown;
        }

        /* 
            :visited 用来表示访问过的链接
        */
        a:visited {
            color: gray;
        }

        /* 
            :hover 用来表示鼠标移入的状态
        */
        a:hover {
            color: yellow;
        }

        /* 
            :active 用来表示鼠标点击 
        */
        a:active {
            color: white;
        }

    </style>

</head>
<body>
    
    <a href="https://www.banq.ink/">半晴</a>
    <a href="https://www.banq.ink/">Miko</a>
    <a href="https://www.banq.ink/">半晴Miko</a>

</body>
</html>
伪元素
<!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>

        /* 

            伪元素:表示页面中一些特殊的并不真实的存在的元素(特殊位置)
            
            伪元素使用::开头

            ::first-letter 表示第一个字母
            ::first-line 表示第一行
            ::selection 表示选中的内容
            ::before 表示元素的开始
            ::after 表示元素的最后
                before 和 after 必须结合content属性来使用

        */

        p::first-letter {
            color: aqua;
        }

        p::after {
            content: 'BanQ';
        }

    </style>

</head>
<body>
    
    <p>半晴Miko</p>
    

</body>
</html>
目录
相关文章
|
Java 微服务 Spring
@EnableDiscoveryClient注解的作用
@EnableDiscoveryClient注解的作用 @EnableDiscoveryClient 及@EnableEurekaClient 类似,都是将一个微服务注册到Eureka Server(或其他 服务发现组件,例如Zookeeper、Consul等)
1876 0
|
6月前
|
存储 消息中间件 Kafka
基于 Flink 的中国电信星海时空数据多引擎实时改造
本文整理自中国电信集团大数据架构师李新虎老师在Flink Forward Asia 2024的分享,围绕星海时空智能系统展开,涵盖四个核心部分:时空数据现状、实时场景多引擎化、典型应用及未来展望。系统日处理8000亿条数据,具备亚米级定位能力,通过Flink多引擎架构解决数据膨胀与响应时效等问题,优化资源利用并提升计算效率。应用场景包括运动状态识别、个体行为分析和群智感知,未来将推进湖仓一体改造与三维时空服务体系建设,助力数字化转型与智慧城市建设。
705 3
基于 Flink 的中国电信星海时空数据多引擎实时改造
|
11月前
|
负载均衡 算法 应用服务中间件
Nginx 常用的负载均衡算法
【10月更文挑战第22天】不同的负载均衡算法各有特点和适用场景。在实际应用中,需要根据具体的业务需求、服务器性能和网络环境等因素来选择合适的算法。
358 3
|
机器学习/深度学习 人工智能 TensorFlow
深入浅出:深度学习在图像识别中的应用
【9月更文挑战第25天】深度学习,这一技术界的“魔法师”,正改变着我们对图像的理解。本文将带你一探究竟,了解深度学习如何让机器“看”到世界的精彩。从基础的神经网络构建,到复杂的模型训练,再到实际应用的案例分析,我们将一步步揭开深度学习在图像识别领域的神秘面纱。你将看到,通过简单的Python代码示例,即便是初学者也能轻松入门,体验深度学习的魅力。让我们一起走进这个由数据和算法编织的奇妙世界,探索深度学习如何让静态的画面变得生动起来。
329 1
|
数据采集 前端开发 JavaScript
HTML + CSS + JS 利用邮编查询 API 实现邮编查询工具
邮政编码是地址信息的重要组成部分,可以帮助快递公司、物流公司等对地址进行快速、准确的识别和派送。因此,邮编查询工具应用在许多业务场景中都有广泛的应用,例如:电商平台、物流公司、金融机构等。通过使用邮编查询 API,我们可以快速实现一个邮编查询工具应用,方便用户查询地址对应的邮政编码,提高业务流程的效率。
911 0
|
机器学习/深度学习 计算机视觉 异构计算
【保姆级教程|YOLOv8改进】【4】添加双层路由注意力机制:BiLevelRoutingAttention,性能和效率十分不错
【保姆级教程|YOLOv8改进】【4】添加双层路由注意力机制:BiLevelRoutingAttention,性能和效率十分不错
|
移动开发 小程序 API
uniapp组件库Modal 模态框 的使用方法
uniapp组件库Modal 模态框 的使用方法
935 1
|
存储 JSON JavaScript
JS深浅拷贝
JavaScript中的深浅拷贝
126 3
|
前端开发 安全 Java
Java后端面试必问:十八道面试题及答案最新整理(速看速藏)
Java后端面试必问:十八道面试题及答案最新整理(速看速藏)
1094 0
|
弹性计算 网络虚拟化 Perl
全景剖析阿里云容器网络数据链路(五)—— Terway ENI-Trunking
本文是[全景剖析容器网络数据链路]第五部分部分,主要介绍Kubernetes Terway ENI-Trunking模式下,数据面链路的转转发链路。
1073 7
全景剖析阿里云容器网络数据链路(五)—— Terway ENI-Trunking