Day10-网页布局实战CSS3

news2025/7/21 18:35:19

一 补充

1 画三角形

<!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>
        .box{
            width: 0;
            border: 5px red solid;
            /* 设置顶部边框线透明 */
            border-top-color: transparent;
            /* 设置左部边框线透明 */
            border-left-color: transparent;
            /* 设置右部边框线透明 */
            border-right-color: transparent;
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

2 伪元素选择器

<!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>
        .box{
            width: 200px;
            height: 200px;
            border: 1px red solid;
        }
        /* 
            伪元素选择器
                作用:在div内部创建一个伪元素
                before:在div主体内容之前创建伪元素
                after:在div主体内容之后创建伪元素
        
        */
        .box::before{
            /* content不能省略 */
            content: "";
            /* display用来表示元素的类型 */
            display: block;
            width: 50px;
            height: 50px;
            background-color: green;
        }

        .box::after{
            content: "";
            display: block;
            width: 50px;
            height: 50px;
            background-color: blue;
        }
    </style>
</head>
<body>
    <div class="box">
        我是一个div
    </div>
</body>
</html>

二 定位案例

案例1-贯穿案例-回到顶部

image-20221129110847172

image-20230302104816939

案例2-贯穿案例-二维码弹窗

image-20221214154823296

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

        .icon-ewm-box img{
            width: 80px;
            height: 80px; 
        }
        .ewm-fa{
            position: relative;
        }
        .icon-ewm-box{
            width: 80px;
            height: 80px;
            position: absolute;
            top: 20px;
            left: -30px;
            display: none;
        }
        /* 用伪元素画三角请 */
        .icon-ewm-box::before{
            content: "";
            display: block;
            width: 0px;
            border: 5px solid red;
            margin: 0 auto;
            border-left-color: transparent;
            border-right-color: transparent;
            border-top-color: transparent;
        }
        /* 移动鼠标 显示三角形 */
        .ewm-fa:hover .icon-ewm-box{
            display: block;
        }
    </style>
</head>
<body>
    <div class="icon">
        <img src="./images/grzx.png" alt="">
        <a class="ewm-fa" href="">
            <img src="./images/ewm.png" alt="">
            <div class="icon-ewm-box">
                <img src="./images/smewm.png" alt="">
            </div>
        </a>
        <img src="./images/gwc.png" alt="">
    </div>
</body>
</html>

案例3-二级下拉菜单

image-20230302144907866

<!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>
        /* 一级菜单 */
        .one-menu{
            position: relative;
        }

        .one-menu > li{
            /* 去除无序列表列表项的小圆点 */
            list-style: none;
            background-color: aqua;
            width: 50px;
            margin: 20px 0;
        }

        /* 二级菜单 */
        .two-menu {
            position: absolute;
            top: 0;
            left: 100px;
            /* 让二级菜单影藏 */
            display: none;
        }
        .two-menu li{
            width: 100px;
            background-color: pink;
            list-style: none;
        }

        .one-li:hover .two-menu{
            display: block;
        }
    </style>
</head>
<body>
    
    <ul class="one-menu">
        <li class="one-li">
            手机
            <ul class="two-menu">
                <li>红米手机</li>
                <li>oppo手机</li>
            </ul>
        </li>

        <li class="one-li">
            家电
            <ul class="two-menu">
                <li>小米电视</li>
                <li>格力空调</li>
            </ul>
        
        </li>
        <li class="one-li">
            粮油
            <ul class="two-menu">
                <li>大米</li>
                <li>食用油</li>
            </ul>
        </li>
    </ul>


</body>
</html>

案例4-贯穿案例-二级下拉菜单

image-20221129162450779

image-20230302145014745

image-20230302145059963

三 CSS动画

1 阴影效果

box-shadow: 水平偏移量 垂直偏移量 模糊度  阴影颜色 
box-shadow: 10px 10px 10px red 

image-20221215171117815

<!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>
        .box{
            width: 200px;
            height: 200px;
            border: 1px red solid;
            /*  box-shadow:水平偏移量  垂直偏移量  模糊度 颜色   */
            box-shadow: 10px 10px 10px red;
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

2 背景渐变

background: linear-gradient(red,green,blue);

基本案例

image-20221215115819738

    <style>
        .box{
            width: 300px;
            height: 200px;
            background: linear-gradient(red,green,blue);
        }
    </style>
    <div class="box"></div>

色标

image-20221129213050079

色标:在颜色的后面设置颜色的显示范围,控制每一个颜色到底占多少位置

    <style>
        .box{
            width: 300px;
            height: 200px;
            /* 0%~20%是红色,20%~40%是红色到绿色的渐变,40%~70%是绿色,70%~100%是蓝色 */
            background: linear-gradient(red 0% 20%,green 40% 70%,blue 70% 100%);
        }
    </style>
    <div class="box"></div>

方向

background:linear-gradient(角度,起始颜色,结束颜色)

方向可以用角度 30deg表示,也可以用如下英文单词表示

英文单词
to top从下到上
to bottom从上到下
to right从左到右
to left从右到左

如:

        /* 渐变方向 */
        .box3{
            width: 200px;
            height: 200px;
            border: 1px black solid;
            /* 渐变方向使用角度表示 */
            /* background: linear-gradient(45deg,red 0% 50%,green 60% 80%,blue); */
            /* 
                渐变方向还可以使用英文单词表示
                to top
                to bottom
                to left
                to right
             */
            background: linear-gradient(to right,red 0% 50%,green 60% 80%,blue); 
        }
        
        <div class="box3"></div>

案例-利用渐变色使文字显示的更清晰

<!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>
        .box{
            width: 100%;
            height: 400px;
            background-image: url("http://img.crawler.qq.com/lolwebschool/0/JAutoCMS_LOLWeb_7b19c73a1974944397b300ee3a739097/0");
        }
        .box div{
            height: 100%;
            color: white;
            text-align: center;
            font-size: 25px;
            background: linear-gradient(to bottom,rgba(0,0,0,0.5),rgba(0,0,0,0.1));
        }
    </style>
</head>
<body>
    <div class="box">
        <div>
            游戏下载
            新手指引
            资料库
            云顶之弈
            攻略中心
            开发者基地
            海克斯战利品库
            英雄联盟宇宙
            点券充值
        </div>
    </div>
</body>
</html>

3 过渡

  • css3给我们提供的某种动态的效果,当元素从一种样式转换成另一种样式时,使其平滑过渡
  • 一般情况下来说,过渡都是搭配hover来使用的

案例1-从背景过度到文字

image-20221215145802228

<!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>
        .top{
            width: 50px;
            height: 50px;
            border: 1px gray solid;
            background-image: url("./img/gt1.png");
            background-repeat: no-repeat;
            background-position: center;
        }

        .top div{
            width: 50px;
            height: 50px;
            background-color: #900000;
            color: white;
            opacity: 0;
            /* 过度 */
            /* 元素哪些属性过度 */
            transition-property: all;
            /* 过度时间 */
            transition-duration: 1s;
        }

        .top:hover div{
            opacity: 1;
        }

    </style>
</head>
<body>
    <div class="top">
        <div>去购物</div>
    </div>
</body>
</html>

案例2-贯穿项目-二级菜单

image-20221215152600333

<!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>
        ul{
            list-style: none;
            display: flex;
            position: relative;
        }
        li{
            margin: 0 20px;
        }
        /* 设置div的初始样式 */
        .list1,.list2{
            position: absolute;
            width: 400px;
            height: 0px;
            /* 溢出隐藏 */
            overflow: hidden;
            /* 过度 transition: 过度属性 过度时间  */
            transition: all 1s;
        }
        /* 搭配hover实现过度 */
        li:hover .list1{
            height: 300px;
        }
        li:hover .list2{
            height: 100px;
        }
    </style>
</head>
<body>

    <ul>
        <li>
            <a href="#">所有商品</a>
            <div class="list1">
                <img src="./images/nav1.jpg" alt="">  
                <img src="./images/nav2.jpg" alt="">  
            </div>
        </li>
        <li>
            <a href="#">装饰摆件</a>
            <div class="list2">
                插画花艺 千花花瓶
            </div>
        </li>
    </ul>
</body>
</html>

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

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

相关文章

WebAuthn无密码身份验证技术

背景WebAuthn全称是Web Authentication API&#xff0c;是由W3C和FIDO在 Google、Mozilla、Microsoft、Yubico 等公司的参与下编写的规范。WebAuthn是一组在服务器、浏览器和身份验证器之间启用无密码身份验证技术。一般使用非对称加密技术&#xff0c;用公钥代替传统的密码&am…

Vue实例的常用属性 Vue实例常用方法

vm.$ el和 vm.$ data 在new Vue()实例中经常设置el&#xff0c;data选项&#xff0c;data选项里面又可以定义很多属性&#xff08;常称为数据属性&#xff09;&#xff0c;Vue提供了一些有用的实例属性与方法&#xff0c;它们都有前缀$,以便与用户定义的属性相区别。 使用Vue…

Linux服务:LVS负载均衡+keepalived架构

目录 一、LVS 1、负载均衡的结构 2、LVS三种工作模式 3、LVS调度算法 5、ipvsadm工具 二、KEEPALIVED 1、KEEPALIVED作用 2、KEEPALIVED原理 3、KEEPALIVED工作模式 4、KEEPLIVED问题及优化 三、LVSKEEPALIVED架构实现 1、实验目的 2、实验拓扑 3、实验准备 4、…

关于几种求最短路算法的碎碎念(Dijkstra、spfa、floyd)

目录 一、求1号点到n号点的最短路 1、所有边都是正数——Dijkstra &#xff08;1&#xff09;朴素版dijkstra - 邻接矩阵 &#xff08;2&#xff09;堆优化版dijstra - 邻接表 2、存在负权边——spfa 3、dijkstra和spfa的区别 二、起点和终点未知&#xff0c;求某两点间…

【16】linux命令每日分享——chmod修改权限

大家好&#xff0c;这里是sdust-vrlab&#xff0c;Linux是一种免费使用和自由传播的类UNIX操作系统&#xff0c;Linux的基本思想有两点&#xff1a;一切都是文件&#xff1b;每个文件都有确定的用途&#xff1b;linux涉及到IT行业的方方面面&#xff0c;在我们日常的学习中&…

使用QIS(Quantum Image Sensor)图像重建总结(1)

最近看了不少使用QIS重建图像的文章&#xff0c;觉得比较完整详细的还是Abhiram Gnanasambandam的博士论文&#xff1a;https://hammer.purdue.edu/articles/thesis/Computer_vision_at_low_light/20057081 1 介绍 讲述了又墨子的小孔成像原理&#xff0c;到交卷相机&#xf…

[AI助力] 2022.3.3 考研英语学习 2012 英语二翻译

[AI助力] 2022.3.3 考研英语学习 2012 英语二翻译 文章目录[AI助力] 2022.3.3 考研英语学习 2012 英语二翻译2012年英语二翻译真题总结积累&#x1f9d0;来点好玩的想法~ 这次试试让AI做更多的事情它居然给出了流汗黄豆&#x1f605;让它评价一下参考答案让AI评价我的翻译让AI …

工具及方法 - Windows下出现“IPv4/IPv6 No Internet Access“错误

家里的PS4&#xff0c;突然用电信网刷新不了PS会员游戏了。同样的网&#xff0c;登录微软账号也登不上。难道是网络问题&#xff1f; 可我换成手机热点就是好的&#xff0c;而且PS4再用电信网络就恢复了。 让我郁闷了一下&#xff0c;开始怀疑人生。后来上网查了一下&#xf…

IM即时通讯开发用Netty实现心跳机制、断线重连机制

所谓心跳, 即在 TCP 长连接中, 客户端和服务器之间定期发送的一种特殊的数据包, 通知对方自己还在线, 以确保 TCP 连接的有效性。注&#xff1a;心跳包还有另一个作用&#xff0c;经常被忽略&#xff0c;即&#xff1a;一个连接如果长时间不用&#xff0c;防火墙或者路由器就会…

百天百题(1/100)Java创建线程的方式?

首先创建线程有四种种方式&#xff1a; 1.继承Thread类 缺点&#xff1a;1.Java是不支持多继承的&#xff0c;所以我们不能在继承其他的类了 2.不能通过线程池来此操作&#xff0c;每次创建一个线程都需要先创建一个类&#xff0c;创建和销毁线程对整体的资源开销是非常大的。…

Thread 类的基本用法

1.线程创建 Thread类&#xff1a;创建的线程都是一样的 1.继承Thread,重写run&#xff1b; 2.实现Runable,重写run&#xff1b; 3.使用匿名内部类&#xff0c;继承Thread; 4.使用匿名内部类&#xff0c;实现Runnable&#xff1b; 5.使用lambda表达式&#xff08;常用&#xff…

IDEA插件系列(3):Maven Helper插件

一、引言在写Java代码的时候&#xff0c;我们可能会出现Jar包的冲突的问题&#xff0c;这时候就需要我们去解决依赖冲突了&#xff0c;而解决依赖冲突就需要先找到是那些依赖发生了冲突&#xff0c;当项目比较小的时候&#xff0c;还比较依靠IEDA的【Diagrams】查看依赖关系&am…

嵌入式学习笔记——使用寄存器编程操作GPIO

使用寄存器编程操作GPIO前言GPIO相关的寄存器GPIO 端口模式寄存器 (GPIOx_MODER) (x A..I)位操作GPIO 端口输出类型寄存器 (GPIOx_OTYPER) (x A..I)GPIO 端口输出速度寄存器 (GPIOx_OSPEEDR) (x A..I/)GPIO 端口上拉/下拉寄存器 (GPIOx_PUPDR) (x A..I/)GPIO 端口输入数据寄…

Python bool 到底怎么用? 【源码拆解】

人生苦短 我用python 一、布尔类型描述 布尔类型是计算机中最基本的类型&#xff0c; 它是计算机二进制世界的体现&#xff0c;一切都是 0 和 1 。 Python中的布尔类型只有两种值&#xff1a;True 和 False 。 &#xff08;注意&#xff1a;首字母都是大写&#xff0c;与C、Ja…

女生学习大数据怎么样~有前景么

当前大数据发展前景非常不错&#xff0c;且大数据领域对于人才类型的需求比较多元化&#xff0c;女生学习大数据也会有比较多的工作机会。大数据是一个交叉学科涉及到的知识量比较大学习有一定的难度&#xff0c;女生则有女生的优势&#xff0c;只要认真学习了都是可以做大数据…

STM32定时器的编码器接口模式

MCU为STM32L431&#xff0c;通用定时器框图&#xff1a; 编码器接口模式一共有三种&#xff0c;通过TIMx_SMCR寄存器的SMS[3:0]位来选择。模式1计数器仅在TI1FP1的边沿根据TI2FP2的电平来判断向上/下计数&#xff1b;模式2计数器仅在TI2FP2的边沿根据TI1FP1的电平来判断向上/下…

Python面向对象的三大特征 - - 封装、继承、多态

目录 一、三大特征介绍 1、封装&#xff08;隐藏&#xff09; 2、继承 3、多态 二、继承 1、子类扩展父类 1.语法格式 2.构造函数 2、类成员的继承和重写 1. 成员继承 2. 方法重写 3、查看类的继承层次结构 4、object根类 1.描述 2. dir() 查看对象属性&#xff…

JVM-可达性分析算法

JVM是Java Virtual Machine&#xff08;Java虚拟机&#xff09;的缩写&#xff0c;JVM是一种用于计算设备的规范&#xff0c;它是一个虚构出来的计算机&#xff0c;是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈…

maven的学习

为啥要用maven 1、不用认为添加jar包所依赖的其他jar包 2、能在本地仓库只保留一份jar包&#xff0c;避免了多个工程使用相同jar包&#xff0c;需要重复导入的问题&#xff0c;减少冗余 3、能够规范添加jar包&#xff0c;在下载需要的jar包时有多种方法&#xff0c;但是不能保…

TeeChart VCL/FMX v2023 crack

TeeChart VCL/FMX v2023 crack TeeChart Pro VCL允许您为所有领域(包括商业、工程、金融、统计、科学、医疗、实时和网络)创建通用和专用图表和绘图应用程序。TeeChart Pro VCL具有多种图表类型的图表库&#xff0c;包括2D或3D线条、条形图、水平条、区域、点、饼图、箭头、气泡…