【狂神说】CSS3详解

简介: 【狂神说】CSS3详解

视频课程见链接:课程

如何学习

1、CSS是什么

2、CSS怎么用

3、CSS选择器(重点+难点)

4、美化网页(文字,阴影,超链接)

5、盒子模型

6、浮动

7、定位

8、网页动画(特效效果)

CSS概述

什么是CSS

CascadIng Style Sheet,层叠级联样式表

CSS:表现(美化网页)

字体,颜色,边距,高度,宽度,背景图片,网页定位,网页浮动,。。。

CSS发展史

CSS1.0

CSS2.0:DIV(块) + CSS。HTML与CSS结构分离的思想,网页变得很简单。

CSS2.1:浮动,定位

CSS3.0:圆角,阴影,动画… 浏览器兼容性

快速入门

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--规范,<style>可以编写css的代码,每一个声明最好使用分号结尾
    语法:
        选择器{
            声明1;
            声明2;
            声明3;
        }
    -->
    <style>
        h1{
            color: red;
        }
    </style>
</head>
<body>
<h1>我是标题</h1>
</body>
</html>

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="css/style.css">
</head>
<body>
<h1>我是标题</h1>
</body>
</html>

css/style.css

h1{
    color: red;
}

CSS优势:

1、内容和表现分离

2、网页结构表现统一,可以实现复用

3、样式十分的丰富

4、建议使用独立于HTML的css文件

5、利用SEO,容易被搜索引擎收录!

CSS的三种导入方式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--行内样式:在标签元素中,编写一个style属性,编写样式即可-->
<h1 style="color: red">我是标题</h1>
</body>
</html>

优先级:行内样式>内部样式>外部样式

<!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>

导入式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>import导入外部样式</title>
    <!--css2.1特有  导入式-->
    <style>
        @import url("css/style.css");
    </style>
</head>
<body>
<h1>import导入外部样式</h1>
</body>
</html>

2 选择器

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

2.1 基本选择器

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

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

3、id选择器:全局唯一;#id名{}

优先级:id>class>标签

标签选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /*标签选择器:会选择到页面上所有的这个标签的元素*/
        h1{
            color: #a13d30;
            background: #3cbda6;
            border-radius: 24px;
        }
        p{
            font-size: 80px;
        }
    </style>
</head>
<body>
    <h1>学java</h1>
    <h1>学C++</h1>
    <p>看视频</p>
</body>
</html>

类选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /*类选择器的格式:.class的名称{}
        好处:可以多个标签归类,是同一个class,可以复用
        */
        .zdb {
            color: red;
        }
        .zzz {
            color: yellow;
        }
    </style>
</head>
<body>
<h1 class="zdb">标题一</h1>
<h1 class="zzz">标题二</h1>
<h1 class="zdb">标题三</h1>
<p class="zdb">p标签</p>
</body>
</html>

id选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /*id选择器:id必须保证全局唯一,不能复用
          #id名称{}
          不遵循就近原则,固定的
          id选择器 > class选择器 > 标签选择器
        */
        #zdb{
            color: green;
        }
        .style1{
            color: yellow;
        }
        h1{
            color: red;
        }
    </style>
</head>
<body>
<h1 id="zdb">标题一</h1>
<h1 class="style1">标题二</h1>
<h1 class="style1">标题三</h1>
<h1>标题四</h1>
<h1>标题五</h1>
</body>
</html>

2.2 层次选择器

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

2、子选择器

3、相邻兄弟选择器

4、通用选择器

后代选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /*p{*/
        /*    background: green;*/
        /*}*/
        /*后代选择器*/
        body p{
            background: red;
        }
    </style>
</head>
<body>
<p>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>
</body>
</html>

/*子选择器*/
body>p{
    background: yellow;
}

/*向下相邻兄弟选择器*/
.active + p{
    background: aquamarine;
}

/*通用兄弟选择器:当前选中元素的向下的所有兄弟元素*/
        .active~p{
            background: blue;
        }

2.3 结构伪类选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /*ul的第一个子元素*/
        ul li:first-child{
            background: green;
        }
        /*ul的最后一个子元素*/
        ul li:last-child{
            background: red;
        }
    </style>
</head>
<body>
<p>p1</p>
<p>p2</p>
<p>p3</p>
<ul>
    <li>li1</li>
    <li>li2</li>
    <li>li3</li>
</ul>
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /*ul的第一个子元素*/
        ul li:first-child{
            background: green;
        }
        /*ul的最后一个子元素*/
        ul li:last-child{
            background: red;
        }
        /*选中p1:定位到父元素,选择当前的第2个元素
        选择当前p元素的父级元素,选中父级元素的第2个,并且是当前元素才生效!按顺序
        */
        p:nth-child(2){
            background: blue;
        }
        /*选中父元素,下的p元素的第3个,按类型*/
        p:nth-of-type(3){
            background: yellow;
        }
        a:hover{
            background: aqua;
        }
    </style>
</head>
<body>
<a href="">1111</a>
<p>p1</p>
<p>p2</p>
<p>p3</p>
<ul>
    <li>li1</li>
    <li>li2</li>
    <li>li3</li>
</ul>
</body>
</html>

2.4 属性选择器(常用)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .demo a {
            float: left;
            display: block;
            height: 50px;
            width: 50px;
            border-radius: 10px;
            background: blue;
            text-align: center;
            color: gainsboro;
            text-decoration: none;
            margin-right: 5px;
            font: bold 20px/50px Arial;
        }
        /*属性名, 属性名 = 属性值(正则)*/
        /*
        =  绝对等于
        *= 包含这个元素
        ^= 以这个开头
        $= 以这个结尾
        */
        /*存在id属性的元素
        a[]{}
        */
        /*a[id]{*/
        /*    background: yellow;*/
        /*}*/
        /*id=first的元素*/
        /*a[id=first] {*/
        /*    background: red;*/
        /*}*/
        /*class中有links的元素*/
        /*a[class*="links"]{*/
        /*    background: yellow;*/
        /*}*/
        /*选中href中以http开头的元素*/
        /*a[href^=http]{*/
        /*    background: yellow;*/
        /*}*/
        a[href$=pdf]{
            background: yellow;
        }
    </style>
</head>
<body>
<p class="demo">
    <a href="http://www.baidu.com" class="links item first" id="first">1</a>
    <a href="" class="links item active" target="_blank" title="test">2</a>
    <a href="images/123.html" class="links item">3</a>
    <a href="images/123.png" class="links item">4</a>
    <a href="images/123.jpg" class="links item">5</a>
    <a href="abc" class="links item">6</a>
    <a href="/a.pdf" class="links item">7</a>
    <a href="/abc.pdf" class="links item">8</a>
    <a href="abc.doc" class="links item">9</a>
    <a href="abcd.doc" class="links item last">10</a>
</p>
</body>
</html>

3 美化网页元素

3.1 为什么要美化网页

1、有效的传递网页信息

2、美化网页,页面漂亮,才能吸引用户

3、凸显页面的主题

4、提高用户的体验

span标签:重点突出的字,使用span套起来

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <style>
      #title1{
          font-size: 50px;
      }
  </style>
</head>
<body>
欢迎学习<span id="title1">Java</span>
</body>
</html>

3.2 字体样式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--font-family:字体
    font-size:字体大小
    font-weight:字体粗细
    color:字体颜色
    -->
    <style>
        body{
            font-family: "Arial Black", "Adobe 黑体 Std R";
            color: blue;
        }
        h1{
            font-size: 50px;
        }
        .p1{
            font-weight: bold;
        }
    </style>
</head>
<body>
<h1>故事介绍</h1>
<p class="p1">《魁拔》是由北京青青树动漫科技有限公司于2011年开始推出的由王川执导的国产奇幻动画系列大电影。</p>
<p>作品围绕主人公蛮吉等人,讲述了在架空的世界——元泱界中,天地两界共同合力对抗每隔333年诞生的可怕异常生命——魁拔的故事。</p>
<p>How old are you</p>
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <!--字体风格-->
  <style>
    p{
        font: oblique bolder 16px "楷体";
    }
  </style>
</head>
<body>
<p class="p1">《魁拔》是由北京青青树动漫科技有限公司于2011年开始推出的由王川执导的国产奇幻动画系列大电影。</p>
</body>
</html>

3.3 文本样式

1、颜色;color,rgb,rgba

2、文本对齐的方式;text-align=center

3、首行缩进;text-indent:2em

4、行高;line-height

5、装饰;text-decoration

6、文本图片水平对齐;vertical-align:middle

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--
    颜色:
        RGB  0~F
        RGBA  A:0~1
    text-align: 排版,居中
    text-indent: 2em   段落首行缩进
    行高和块的高度一致,就可以上下居中
    -->
    <style>
        h1{
            /*color: #00FF00;*/
            color: rgba(0,255,255,0.5);
            text-align: center;
        }
        .p1{
            text-indent: 2em;
        }
        .p3{
            background: #2700ff;
            height: 300px;
            line-height: 300px;
        }
        /*上、中、下划线*/
        .l1{
            text-decoration: underline;
        }
        .l2{
            text-decoration: line-through;
        }
        .l3{
            text-decoration: overline;
        }
        /*超链接去下划线*/
        a{
            text-decoration: none;
        }
    </style>
</head>
<body>
<a href="">123</a>
<p class="l1">123123</p>
<p class="l2">123123</p>
<p class="l3">123123</p>
<h1>故事介绍</h1>
<p class="p1">《魁拔》是由北京青青树动漫科技有限公司于2011年开始推出的由王川执导的国产奇幻动画系列大电影。</p>
<p>作品围绕主人公蛮吉等人,讲述了在架空的世界——元泱界中,天地两界共同合力对抗每隔333年诞生的可怕异常生命——魁拔的故事。</p>
<p class="p3">How old are you</p>
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--水平对齐  参照物, a,b-->
    <style>
        img, span {
            vertical-align: middle;
        }
    </style>
</head>
<body>
<p>
    <img src="images/img.png" alt="">
    <span>asdasda</span>
</p>
</body>
</html>


目录
相关文章
【插件】IDEA这款插件,爱到无法自拔
本文介绍了阿里云「通义灵码」这一强大IDEA插件,它不仅能够智能生成代码、解答研发问题,还支持多种编程语言和编辑器。文章详细展示了如何安装使用该插件,并通过多个实际案例说明其在代码解释、优化、生成注释及单元测试等方面的应用,助力开发者提高效率。强烈推荐尝试!
304 1
【插件】IDEA这款插件,爱到无法自拔
常见的分布式定时任务调度框架
分布式定时任务调度框架用于在分布式系统中管理和调度定时任务,确保任务按预定时间和频率执行。其核心概念包括Job(任务)、Trigger(触发器)、Executor(执行器)和Scheduler(调度器)。这类框架应具备任务管理、任务监控、良好的可扩展性和高可用性等功能。常用的Java生态中的分布式任务调度框架有Quartz Scheduler、ElasticJob和XXL-JOB。
2445 66
Vue中如何通过三元运算符来展示不同的操作
这篇文章讲述了在Vue中如何使用三元运算符结合v-if指令来根据订单的不同状态展示不同的操作按钮,例如在待发货状态显示退款按钮,在待付款或完成状态显示删除按钮。
Windows、IDEA、VS Code常用快捷键
Windows、IDEA、VS Code常用快捷键
261 0
基于Flowable的流程挂接自定义业务表单的设计与实践
文章讨论了如何在Flowable流程引擎中挂接自定义业务表单,以及相关设计和实践的步骤。文章中包含了一些前后端代码示例,如Vue组件的模板和脚本部分,这些代码用于实现与Flowable流程引擎交互的界面。例如,有一个按钮组件用于提交申请,点击后会触发applySubmit方法,该方法会与后端API进行交互,处理流程启动、查询关联流程等逻辑。
51715 11
基于SpringBoot+Vue+uniapp微信小程序的校园网上店铺的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的校园网上店铺的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的校园网上店铺的详细设计和实现
idea代码review工具Code Review Helper使用介绍
CodeReview IDEA 插件是一款用于代码审查的工具,旨在解决在GitLab中查看整体业务逻辑的不便。该插件提供快速添加注释、行号旁的评审意见标记、双击跳转到代码、意见删除和修改、内容导出为Excel以及导入等功能。特别地,它支持离线和在线模式,离线模式下,审核者和开发者通过Excel文件交换评审意见;在线模式则通过服务端实现评审内容的上传和下载,简化文件传输。此外,该插件允许定制评审字段,并能与团队协作工具集成。通过这些特性,CodeReview IDEA 提高了代码审查的效率和便捷性。
1197 2
📕重学JavaScript:Promise 的then()、catch() 和 finally()
大部分时候,你要用的 Promise 对象是 Web API 或第三方 API 返回的。我们要设置 Promise 对象,让它在变成 fulfilled 的时候执行我们想要的成功的代码,而在变成 rejected 的时候执行我们想要的失败的代码。
540 0
📕重学JavaScript:Promise 的then()、catch() 和 finally()
分享85个CSS3特效,总有一款适合您
分享85个CSS3特效,总有一款适合您
122 2
java生成excel表格,并将excel表格加密压缩
POI提供了一些API,可以是java程序对Microsoft Office的读和写; zip4j提供非常友好的zip加密压缩; 某电商平台,需要把供应商销售数据导出为excel表单,为了安全加密为zip压缩包,方便发给供应商对账。
845 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问