CSS - 盒子模型、图片模糊、过渡效果、2D图移动、放大缩小、CSS动画、flex布局

盒子模型

CSS盒子模型是指在网页布局中,每个元素都被看作是一个矩形的盒子,这个盒子由内容区域、内边距、边框和外边距组成。盒子模型在CSS中用于确定元素在页面中的尺寸、位置和边距。

盒子模型由以下几个部分组成:

  • 内容区域(Content):盒子的实际内容,例如文本、图像等。
  • 内边距(Padding):内容区域与边框之间的空白区域,用于控制内容与边框之间的距离。
  • 边框(Border):内边距和外边距之间的边界线,用于围绕内容区域和内边距。
  • 外边距(Margin):边框与相邻元素之间的空白区域,用于控制元素与其他元素之间的距离。

这些部分共同决定了元素在页面中的尺寸和布局。在CSS中,可以使用相关的属性来控制盒子模型的各个部分,例如:

  • width:设置元素的宽度,包括内容区域、内边距和边框。
  • height:设置元素的高度,包括内容区域、内边距和边框。
  • padding:设置元素的内边距,控制内容区域与边框之间的距离。
  • border:设置元素的边框样式、宽度和颜色。
  • margin:设置元素的外边距,控制元素与其他元素之间的距离。

通过调整这些属性的值,可以实现对元素的尺寸、间距和布局的精确控制,从而实现所需的页面布局效果。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>盒子模型</title>
    <style>
        .a {
            width: 100px;
            height: 100px;
            padding: 10px;
            margin: 10px;
            background-color: antiquewhite;
            box-sizing: content-box;
        }
        
        .b {
            width: 100px;
            height: 100px;
            padding: 10px;
            margin: 10px;
            background-color: antiquewhite;
            box-sizing: border-box;
        }
    </style>
</head>
<body>
    <div class="a"></div>
    <div class="b"></div>
</body>

</html>

在这里插入图片描述

实现图片模糊

要在CSS中实现图片模糊效果,可以使用filter属性和blur()函数。以下是一种常见的方法:

  • 使用filter属性和blur()函数:
.blur-image {
  filter: blur(5px);
}

将.blur-image类应用于图片元素,使用filter属性和blur()函数来指定模糊的程度。可以根据需要调整像素值。

  • 使用backdrop-filter属性:
.blur-image {
  backdrop-filter: blur(5px);
}

backdrop-filter属性可以应用于元素的背景和内容之间,实现模糊效果。但请注意,该属性在某些浏览器可能不一定支持,你会出现使用了该属性,导致效果无法展示的问题。

  • 使用CSS后处理工具:
    可以使用CSS后处理工具(如Sass、Less)或CSS库(如Bootstrap)中的内置类来实现图片模糊效果。这些工具和库通常提供了现成的类或混合器,可以轻松地将模糊效果应用于图片。

  • 使用模糊的图片副本:
    可以使用图像编辑软件(如Photoshop)将图片进行模糊处理,并将模糊的图片作为背景或替代品来显示。这种方法可以确保在所有浏览器中获得一致的模糊效果。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS图片模糊</title>

    <style>
        img {
            display: block;
            width: 50%;
            height: 50%;
            margin: 100px auto;
            /*图片模糊度,px值越大越模糊,到达100的时候几乎就看不到图片了,300的时候全白*/
            filter: blur(3px);
        }
        img:hover {
        /*鼠标移动上去让图片清晰*/
            filter: blur(0px);
        }
    </style>
</head>

<body>
    <img src="img/7bf51d9fa40156eccb6c7cec218996368dc72872.jpg">
</body>
</html>

过渡效果

CSS过渡效果(Transition)是一种在元素属性发生变化时,使其平滑过渡到新状态的效果。通过使用过渡效果,可以为元素的属性变化添加动画效果,例如颜色、尺寸、位置等。

要创建CSS过渡效果,需要使用transition属性,并指定要过渡的属性、过渡时间和过渡效果的类型。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>过渡</title>

    <style>
        .div {
            margin: 100px auto;
            width: 100px;
            height: 100px;
            background-color: antiquewhite;
            transition: height .5s, width 1s ease 1s;
        }
        .div:hover {
            margin: 100px auto;
            width: 500px;
            height: 500px;
            background-color: blueviolet;
        }
		.box {
		  width: 100px;
		  height: 100px;
		  background-color: red;
		  transition: width 1s ease-in-out;
		}
		.box:hover {
		  width: 200px;
		}
    </style>

</head>

<body>

    <div class="div"></div>
	
	<div class="box"></div>
</body>

</html>

.box类定义了一个正方形的红色盒子。通过将transition属性应用于.box类,指定了要过渡的属性为width,过渡时间为1秒,过渡效果为ease-in-out(渐进进出)。

当鼠标悬停在盒子上时,.box:hover选择器将width属性的值从100px过渡到200px。由于已经定义了过渡效果,所以过渡将以平滑的动画形式进行。

除了transition属性,还可以使用transition-property、transition-duration、transition-timing-function和transition-delay等单独的属性来控制过渡的不同方面。
在这里插入图片描述

在这里插入图片描述

2D图的移动

使用transform属性和translate()函数来实现2D图形的移动效果。translate()函数用于沿着X轴和Y轴移动元素。

.square {
  width: 100px;
  height: 100px;
  background-color: red;
  transition: transform 0.3s ease-in-out;
}

.square:hover {
  transform: translate(50px, 50px);
}

.square类定义了一个红色正方形。通过将transition属性应用于.square类,指定了要过渡的属性为transform,过渡时间为0.3秒,过渡效果为ease-in-out(渐进进出)。

当鼠标悬停在正方形上时,.square:hover选择器将transform属性的值设置为translate(50px, 50px),即将正方形沿X轴和Y轴分别向右和向下移动50像素。

你可以根据需要调整translate()函数中的像素值,使元素沿着X轴和Y轴移动到所需的位置。正值表示向右或向下移动,负值表示向左或向上移动。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>2D移动</title>

    <style>
        * {
            margin: 0;
            padding: 0;
        }
        
        img {
            border-radius: 50%;
            border: 2px skyblue solid;
            display: block;
            margin: 100px auto;
            width: 300px;
            height: 220px;
            transition: all .5s ease;
        }
        
        img:hover {
            /* 移动 */
            transform: translateY(-50px);
            /* 旋转 */
           /* transform: rotate(180deg) translate(100px, 100px) scale(1.2); */
        }
        
        .box {
            position: relative;
            margin: 10px auto;
            width: 400px;
            height: 50px;
            background-color: antiquewhite;
        }
        
        .box::after {
            position: absolute;
            content: "";
            width: 20px;
            height: 20px;
            right: 10px;
            top: 13px;
            border-bottom: 2px solid black;
            border-left: 2px solid black;
            transform: rotate(315deg);
            transition: all 0.5s ease;
        }
        
        .box:hover::after {
            transform: rotate(495deg);
        }
		
		.square {
		  width: 100px;
		  height: 100px;
		  background-color: red;
		  transition: transform 0.3s ease-in-out;
		}
		
		.square:hover {
		  transform: translate(50px, 50px);
		}
    </style>

</head>

<body>
    <div>
        <img src="img/7f2a07a215964b19ed2244df5c00bbf163683e1c.jpg">
    </div>
    
	<div class="box"></div>
	
	<div class="square"></div>
</body>

</html>

在这里插入图片描述

放大缩小

在CSS中实现元素的放大和缩小效果,可以使用transform属性和scale()函数。

.zoom {
  transition: transform 0.3s ease-in-out;
}
.zoom:hover {
  transform: scale(1.2);
}

.zoom类定义了一个元素,并应用了过渡效果。通过将transition属性应用于.zoom类,指定了要过渡的属性为transform,过渡时间为0.3秒,过渡效果为ease-in-out(渐进进出)。
当鼠标悬停在元素上时,.zoom:hover选择器将transform属性的值从默认的1缩放到1.2,实现了元素的放大效果。
你可以根据需要调整scale()函数中的缩放比例,使元素放大或缩小到所需的大小。值大于1表示放大,值小于1表示缩小。
除了scale()函数,transform属性还可以与其他变换函数(如rotate()translate()等)一起使用,可以实现更多的变换效果。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>放大缩小</title>

    <style>
        .box {
            margin: 100px auto;
            width: 100px;
            height: 100px;
            background-color: blue;
            transition: all 1s ease;
        }
        .box:hover {
            transform: scale(2);
        }
        .box1 {
            margin: 100px auto;
            width: 100px;
            height: 100px;
            background-color: blue;
            transition: all 1s ease;
        }
        .box1:hover {
            transform: scale(.5);
        }
		
		.zoom {
			margin: 100px auto;
			width: 100px;
			height: 100px;
			background-color: red;
		    transition: transform 0.3s ease-in-out;
		}
		.zoom:hover {
		  transform: scale(1.2);
		}
    </style>

</head>

<body>

    <div class="box">
    </div>
    <div class="box1">
    </div>
	
	<div class="zoom"></div>
</body>

</html>

CSS动画

CSS动画是一种通过CSS样式表来控制元素在页面上产生动态效果的技术。通过@keyframes规则定义动画的关键帧,然后将动画应用到元素上。可以控制动画的持续时间、速度曲线、重复次数等属性,实现各种各样的动画效果,比如淡入淡出、旋转、缩放、平移等。CSS动画可以让网页更加生动和吸引人,提升用户体验。

  • animation: 用于定义动画的属性,包括动画名称、持续时间、速度曲线、延迟时间等。
  • @keyframes: 用于定义关键帧动画,指定动画在不同阶段的样式。
  • transition: 用于在元素状态改变时平滑过渡样式的属性,包括过渡的属性、持续时间、速度曲线等。
  • transform: 用于对元素进行旋转、缩放、平移等变换,可以结合动画属性实现复杂的动画效果。
  • transition-property: 指定哪些CSS属性应用过渡效果。
  • transition-duration: 指定过渡效果持续的时间。
  • transition-timing-function: 指定过渡效果的速度曲线,比如线性、缓入缓出等。
  • transition-delay: 指定过渡效果开始的延迟时间。
  • transform-origin: 指定元素变换的原点,可以影响旋转和缩放的中心点。
  • perspective: 用于创建透视效果,使得元素看起来更加立体。

在CSS中创建一个3D字体效果,可以使用CSS的text-shadow属性和transform属性来实现。通过text-shadow属性添加文字的阴影效果,然后使用transform属性的rotateXrotateY等函数来实现文字的旋转效果。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>动画学习</title>
    <style>
       @keyframes test {
            0% {
                transform: translate(0, 0);
            }
            25% {
                transform: translate(1000px, 0px)
            }
            50% {
                transform: translate(1000px, 500px)
            }
            75% {
                transform: translate(0px, 500px)
            }
            100% {
                transform: translateY(0px, 0px);
            }
       }
		
		@keyframes rotate {
		  from {
		    transform: perspective(500px) rotateY(0deg);
		  }
		  to {
		    transform: perspective(500px) rotateY(360deg);
		  }
		}
		
		.text-3d {
		  font-size: 48px;
		  color: #fff;
		  text-shadow: 2px 2px 0 #333, 4px 4px 0 #666, 6px 6px 0 #999;
		  animation: rotate 5s linear infinite;
		}
       
        .box {
            width: 200px;
            height: 200px;
            background-color: black;
            animation-name: test;
            animation-duration: 15s;
        }
    </style>
</head>

<body>

    <div class="box"></div>
  <div class="text-3d">3D</div>

</body>

</html>

在这里插入图片描述

flex布局

Flex布局是一种用于设计网页布局的现代CSS布局技术,它基于弹性盒子模型(Flexible Box Model),可以让元素在容器中以灵活的方式布局和对齐。换句话讲,他就是弹性盒子模型的变种。

  • display: 设置容器为Flex布局,可以通过设置display: flex;或display: inline-flex;来启用Flex布局。

  • flex-direction: 定义主轴的方向,可以是row(水平方向)、row-reverse(水平方向,反向排列)、column(垂直方向)、column-reverse(垂直方向,反向排列)。

  • flex-wrap: 定义是否换行,可以是nowrap(不换行)、wrap(换行)、wrap-reverse(反向换行)。

  • justify-content: 定义主轴上的对齐方式,可以是flex-start(起点对齐)、flex-end(终点对齐)、center(居中对齐)、space-between(两端对齐,项目之间间隔相等)、space-around(项目周围间隔相等)。

  • align-items: 定义交叉轴上的对齐方式,可以是flex-start(起点对齐)、flex-end(终点对齐)、center(居中对齐)、baseline(基线对齐)、stretch(拉伸填充)。

  • align-content: 定义多根轴线的对齐方式,当项目换行时生效,可以是flex-start、flex-end、center、space-between、space-around、stretch。

  • flex: 设置项目的放大比例、缩小比例和初始尺寸,可以简写为flex: <flex-grow> <flex-shrink> <flex-basis>

  • align-self: 单独设置某个项目在交叉轴上的对齐方式,覆盖align-items属性。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .css {
            margin: 0 auto;
            display: flex;
            width: 500px;
            height: 500px;
            background-color: aqua;
            /* 排序格式  row默认从左到右  row-reverse翻转 */
            flex-direction: row-reverse;
            justify-content: center;
            align-items: center;
            flex-wrap: wrap;
            align-content: space-between;
        }
        
        .s1 {
            background-color: seashell;
            width: 100px;
            height: 100px;
        }
        
        .s2 {
            background-color: red;
            width: 100px;
            height: 100px;
        }
        
        .s3 {
            background-color: salmon;
            width: 100px;
            height: 100px;
        }
    </style>


</head>

<body>
    <div class="css">
        <div class="s1"></div>
        <div class="s2"></div>
        <div class="s3"></div>
        <div class="s1"></div>
        <div class="s1"></div>
        <div class="s1"></div>
        <div class="s1"></div>
        <div class="s1"></div>
        <div class="s1"></div>
    </div>
    <strong>adwadaw</strong>

</body>

</html>

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

行云堡垒国密算法应用与信创支持

一、 国密算法和信创的介绍 1.1 什么是国密算法 国密算法是国家密码管理局制定颁布的一系列的密码标准&#xff0c;即已经被国家密码局认定的国产密码算法&#xff0c;又称商用密码&#xff08;是指能够实现商用密码算法的加密&#xff0c;解密和认证等功能的技术&#xff09;…

Qlik Sense : Crosstable在数据加载脚本中使用交叉表

什么是Crosstable&#xff1f; 交叉表是常见的表格类型&#xff0c;特点是在两个标题数据正交列表之间显示值矩阵。如果要将数据关联到其他数据表格&#xff0c;交叉表通常不是最佳数据格式。 本主题介绍了如何逆透视交叉表&#xff0c;即&#xff0c;在数据加载脚本中使用 L…

批归一化(BN)在神经网络中的作用与原理

文章目录 1. 批归一化&#xff08;BN&#xff09;在神经网络中的作用与原理1.1 作用与优势1.2 原理与推导 2. 将BN应用于神经网络的方法2.1 训练时的BN 2. 将BN应用于神经网络的方法2.1 训练时的BN2.2 测试时的BN代码示例&#xff08;Python&#xff09;&#xff1a; 3. BN的优…

机器学习-09-图像处理01-理论

总结 本系列是机器学习课程的系列课程&#xff0c;主要介绍机器学习中图像处理技术。 参考 02图像知识 色彩基础知识整理-色相、饱和度、明度、色调 图像特征提取&#xff08;VGG和Resnet特征提取卷积过程详解&#xff09; Python图像处理入门 【人工智能】PythonOpenCV…

基于python的天气数据可视化系统、Flask框架,爬虫采集天气数据,可视化分析

系统介绍 基于Python的天气预测可视化分析系统&#xff0c;该项目的主要流程和功能包括&#xff1a; 数据获取&#xff1a; 使用Python的pandas库从2345天气网&#xff08;http://tianqi.2345.com/Pc/GetHistory&#xff09;抓取山东省各市区县在2021年至2023年间的天气历史数…

【方法】PDF密码如何取消?

对于重要的PDF文件&#xff0c;很多人会设置密码保护&#xff0c;那后续不需要保护了&#xff0c;如何取消密码呢&#xff1f; 今天我们来看看&#xff0c;PDF的两种密码&#xff0c;即“限制密码”和“打开密码”&#xff0c;是如何取消的&#xff0c;以及忘记密码的情况要怎…

文献学习-33-一个用于生成手术视频摘要的python库

VideoSum: A Python Library for Surgical Video Summarization Authors: Luis C. Garcia-Peraza-Herrera, Sebastien Ourselin, and Tom Vercauteren Source: https://arxiv.org/pdf/2303.10173.pdf 这篇文章主要关注的是如何通过视频摘要来简化和可视化手术视频&#xff0c…

计算机基础知识-第4章-真值表和逻辑运算、位运算

一、真值表与逻辑运算 真值表 真值表是什么呢&#xff1f;我们来看百度百科的定义。表征逻辑事件输入和输出之间全部可能状态的表格。列出命题公式真假值的表。通常以1表示真&#xff0c;0 表示假。命题公式的取值由组成命题公式的命题变元的取值和命题联结词决定&#xff0c;…

开源监控zabbix对接可视化工具grafana教程

今天要给大家介绍的是开源监控工具zabbix对接可视化工具grafana问题。 有一定运维经验的小伙伴大抵都或多或少使用过、至少也听说过开源监控工具zabbix&#xff0c;更进一步的小伙伴可能知道zabbix在数据呈现方面有着明显的短板&#xff0c;因此需要搭配使用第三方的可视化工具…

Qlik Sense :use Peek function to Group by and Get Rowno

Question Row number based on groups of data Calculate row number for groups 有时候我们需要基于分组来对数据进行内部排序&#xff0c;例如一个iddate&#xff0c;把不同的属性的记录标记为123&#xff0c;又或者把重复记录标记出来 Solved: Calculate row number for…

MacOS安装openMP报错【已解决】

error: Target “WLBG” links to: OpenMP::OpenMP_CXX but the target was not found. Possible reasons include: * There is a typo in the target name. * A find_package call is missing for an IMPORTED target. * An ALIAS target is missing. 最开始是报这个错&#x…

云上配置Hadoop环境

Hadoop概述 Hadoop技术主要是由下面这三个组件组合而成的&#xff1a; HDFS是一个典型的主从模式架构。 HDFS的基础架构 HDFS的集群搭建 一点准备工作 其实这一块没啥内容&#xff0c;就是将Hadoop官网下载下来的Hadoop的tar包上传到我们服务器上的文件目录下&#xff1a; …

2024考研调剂须知

----------------------------------------------------------------------------------------------------- 考研复试科研背景提升班 教你快速深入了解掌握考研复试面试中的常见问题以及注意事项&#xff0c;系统的教你如何在短期内快速提升自己的专业知识水平和编程以及英语…

Vue ElementUI el-input-number 改变控制按钮 icon 箭头为三角形

el-input-number 属性 controls-position 值为 right 时&#xff1b; <el-input-number v-model"num" controls-position"right" :min"1" :max"10"></el-input-number>原生效果 修改后效果 CSS 修改 .el-input-number…

点亮一颗 LED: 单片机 ch32v003 (RISC-V) 使用 rust 编写固件

首发日期 2024-04-09, 以下为原文内容: 使用 rust 编写单片机的程序 ? 很新, 但没问题. 使用 RISC-V CPU 的单片机 (比如 ch32v003) ? 也没问题. 同时使用 ? 哦嚯, 问题出现了 !! ch32v003 是一款使用 rv32ec 指令集的国产单片机, 很便宜 (某宝零卖只要 0.4 元一个, 在同档…

学习JavaEE的日子 Day33 File类,IO流

Day33 1.File类 File是文件和目录路径名的抽象表示 File类的对象可以表示文件&#xff1a;C:\Users\Desktop\hhy.txt File类的对象可以表示目录路径名&#xff1a;C:\Users\Desktop File只关注文件本身的信息&#xff08;文件名、是否可读、是否可写…&#xff09;&#xff0c…

基于SSM的电影网站(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的电影网站&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring SpringMv…

MySQL 全文检索

不是所有的数据表都支持全文检索 MySQL支持多种底层数据库引擎&#xff0c;但是并非所有的引擎支持全文检索 &#xff0c;目前最常用引擎是是MyISAM和InnoDB&#xff1b;前者支持全文检索&#xff0c;后者不支持。 booolean模式操作符 操作符含义必须有-必须不包含>包含对应…

Linux系统使用Docker部署Dashy导航页服务并实现公网环境访问

文章目录 简介1. 安装Dashy2. 安装cpolar3.配置公网访问地址4. 固定域名访问 简介 Dashy 是一个开源的自托管的导航页配置服务&#xff0c;具有易于使用的可视化编辑器、状态检查、小工具和主题等功能。你可以将自己常用的一些网站聚合起来放在一起&#xff0c;形成自己的导航…

如何使用pgvector为RDS PostgreSQL构建专属ChatBot?

背景 越来越多的企业和个人希望能够利用LLM和生成式人工智能来构建专注于其特定领域的具备AI能力的产品。目前&#xff0c;大语言模型在处理通用问题方面表现较好&#xff0c;但由于训练语料和大模型的生成限制&#xff0c;对于专业知识和时效性方面存在一些局限。在信息时代&…