CSS弹性盒模型(学习笔记)

一、厂商前缀

    1.1 作用

    解决浏览器对C3新特性的兼容,不同的浏览器厂商,定义了自己的厂商前缀

    1.2 语法      

浏览器  厂商前缀内核(渲染引擎):解析html+css+js
谷歌  -webkit-blink
苹果-webkit-webkit
欧朋-o-blink
火狐  -moz-gecko
IE-ms- trident

    1.3 例子

五个浏览器都要去兼容,也就是以下语句都要写,顺序无所谓(因为无法确定用户使用哪个浏览器)

    /* 兼容谷歌和苹果 */

    background-image:-webkit-radial-gradient(top,red,orange,yellow,green,blue) ;

    /* 兼容欧朋 */

    background-image: -o-radial-gradient(top,red,orange,yellow,green,blue);

    /* 兼容IE */

    background-image: -ms-radial-gradient(top,red,orange,yellow,green,blue);

    /* 兼容火狐 */

    background-image: -moz-radial-gradient(top,red,orange,yellow,green,blue);

    background-image: radial-gradient(top,red,orange,yellow,green,blue);

二、 css hack (了解)

    2.1 作用

    解决IE不同版本的兼容性问题

    2.2 语法

    1)条件hack

    位置同HTML

    <!--[if 条件]>

        代码块

    <![endif]-->

    条件:

    IE 版本号  指定版本

    gt IE 版本号  大于

    gte IE 版本号  大于等于

    lt IE 版本号  小于

    lte IE 版本号  小于等于

    2)属性hack

    在属性前面或者后面加符号

    前缀:* + - _ #  例如:*color:;

    后缀:\0  \9  \9\0  !important  例如:color:red !important;

三、 动画

    3.1 作用

    使元素从一种样式逐渐变为另外一种样式

    3.2 过渡和动画的区别

    过渡:简单的动画

    1)必须有触发事件  :hover,没法在页面加载时自动执行

    2)过渡是一次性的

    3)过渡只有开始状态和结束状态,没有中间的过程

    动画:复杂的动画

    1)定义动画的过程  @keyframes name{}

    2)可以没有触发事件,可以在网页加载时自动执行

    3)可以执行任意多次

    3.3 语法

<!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>
        /* 
        过渡:简单的动画
        1)必须有触发事件  :hover,没法在页面加载时自动执行
        2)过渡是一次性的
        3)过渡只有开始状态和结束状态,没有中间的过程
        
        */
        .box1 {
            width: 200px;
            height: 200px;
            /* 开始状态 */
            background-color: red;
            transition: all 1s;
        }

        /* 鼠标悬停触发过渡 */
        .box1:hover {
            /* 结束状态 */
            background-color: yellow;
        }

        /* 
        动画:复杂的动画
        1)定义动画的过程  @keyframes name{}
        2)可以没有触发事件,可以在网页加载时自动执行
        3)可以执行任意多次

        
        */

        .box2 {
            width: 200px;
            height: 200px;
            background-color: red;
            margin-top: 20px;
            /* 2.触发动画 */
            /* 
            animation: name duration timing-function delay iteration-count direction fill-mode;
                       必须   必须          可选       可选        可选        可选     可选
                       名称  持续时间    速度变化类型  延迟时间    播放次数      方向   动画是否停在最后一帧
            */
            /* animation: dh 3s linear 1s 3 alternate forwards; */

            /* 单个属性 */
            animation-name: dh;
            animation-duration: 3s;
            animation-timing-function: linear;
            animation-delay: 1s;
            animation-iteration-count: infinite;
            animation-direction: alternate;
            animation-fill-mode: forwards;
        }
        .box2:hover{
            /* 暂停动画 */
            animation-play-state: paused;
        }

        /* 1.定义动画的过程  状态 */
        @keyframes dh {

            /* 开始的状态 */
            0% {
                background-color: red;
            }

            /* 任意的百分比  动画的过程 */
            20% {
                background-color: orange;
                width: 1200px;
            }

            50% {
                background-color: blue;
                width: 600px;
                transform: rotate(360deg);
            }

            75% {
                background-color: green;
                width: 200px;
            }

            /* 结束的状态 */
            100% {
                background-color: yellow;
                border-radius: 50%;
            }

        }
    </style>
</head>

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

</html>

    1)定义动画的过程

    @-webkit-keyframes name{

        <!-- 开始的状态 -->

        0%|from{

            css样式

        }

        <!-- 任意百分比 过程 -->

        百分比{

            css样式    

        }

        <!-- 结束的状态 -->

        100%|to{

            css样式

        }

    }

    2)触发动画

    -webkit-animation: name duration timing-function delay iteration-count direction fill-mode;

                       必须   必须          可选       可选        可选        可选     可选

                       名称  持续时间    速度变化类型  延迟时间    播放次数      方向   动画是否停在最后一帧

    3.4 属性

    animation-name: ;动画名称  必须属性

    animation-duration: ;动画持续时间  必须属性  取值s|ms

    animation-timing-function: ;动画速度变化类型  可选属性  ease ease-in ease-out ease-in-out linear

    animation-delay: ;延迟时间  可选属性  取值s|ms 可以取负值

    animation-iteration-count: ;动画播放次数 可选属性 数字|infinite(无限循环)

    animation-direction: ;动画播放方向 可选属性 alternate(偶数次倒序播放)

    animation-fill-mode: ;动画是否停在最后一帧 可选属性 forwards(动画停在最后一帧)

    animation-paly-state:;动画的状态 可选属性 running:默认值,运行 paused:暂停

四、 媒体查询  media query

    4.1 响应式布局

    1)概念

    写一次样式,适配所有终端

    2)优缺点

    优点:能够快速的适配所有的终端

    缺点:代码量大,浏览器加载时间长

    4.2 实现响应式布局的方法

    1)媒体查询

    2)bootstrap

    3)rem+js

    4)vw

    4.3 媒体查询

    1)设置meta标签

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

                  视口                      设备宽度       初始化缩放比例

    2)不同的设置宽度显示不同的样式

    ①行内引入(所有的终端样式写在一个css文件中)

    移动端

    @media screen and (max-width:768px){

        移动端的样式

    }

    平板

    @media screen and (min-width:768px) and (max-width:992px){

        平板的样式

    }

    pc端

    @media screen and (min-width:992px){

        pc端的样式

    }

    ②外部引入(各自终端写在各自的css文件中)

    移动端

    <link rel="stylesheet" href="样式文件" media="screen and (max-width:768px)">

    平板端

    <link rel="stylesheet" href="样式文件" media="screen and (min-width:768px) and (max-width:992px)">

    pc端

    <link rel="stylesheet" href="样式文件" media="screen and (min-width:992px)">

五、 弹性盒模型  伸缩盒模型  flex box

    5.1 介绍

    Css3新增的布局模式,主要用于移动端布局

    主要是控制容器中的子元素在容器中的排列方式、对齐方式、分配容器剩余空间等

    5.2 名词

    弹性容器:父元素

    弹性项目:子元素

    注意:弹性布局只对弹性容器中的弹性项目生效

    5.3 弹性容器上的属性

    1)转换为弹性盒模型

    display:flex;  把元素转换为弹性容器

    父元素开启弹性盒模型,子元素默认水平排列,子元素默认宽度变为由内容撑开

    2)设置子元素在父元素中的排列方式

    flex-direction:;

    row:默认值  从左往右水平排列

    row-reverse:从右往左水平排列

    column:从上往下垂直排列

    column-reverse:从下往上垂直排列

    3)设置子元素在主轴的对齐方式

    默认子元素水平排列,水平方向为主轴,垂直方向为侧轴

    当子元素垂直排列,垂直方向为主轴,水平方向为侧轴

    justify-content:;

    flex-start:默认值  弹性盒的开始

    flex-end:弹性盒的结束

    center:居中

    space-between:在子元素之间平均分配父元素剩余的空间

    space-around:在子元素四周分配父元素剩余的空间,两端是中间的一半

    4)设置子元素在侧轴的对齐方式

    align-items:;

    flex-start:默认值  弹性盒的开始

    flex-end:弹性盒的结束

    center:居中

    5)设置子元素是否换行

    flex-wrap:;

    nowrap:默认值 不换行

    wrap:换行


 

    5.4 弹性项目上的属性

    1)flex

    ①作用

    设置弹性盒模型中的子元素如果分配父元素的剩余空间

    ②语法

    flex:flex-grow flex-shrink flex-basis;

    默认值   0          1          auto

    ③flex-grow

    设置子元素的扩展比率(子元素宽度的比例)

    默认值为0,取值为数值

    ②flex-shrink

    设置子元素的收缩比例

    默认值为1,取值为数值

    ③flex-basis

    设置子元素的基准值

    默认值为auto,取值px

   

 

 

 

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

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

相关文章

OpenCV4.9.0开源计算机视觉库安装教程

返回&#xff1a;OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 引言&#xff1a;OpenCV系列文章中的安装部分今天全部完成了&#xff0c;为了读者更方便阅读&#xff0c;大家可以按下列索引前往&#xff0c;成文较为仓促有错漏在所难免&#xff0c;欢迎大家指正…

服务器运行一段时间后

自己记录一下。 一、查看目录占用情况 df -h 命令查看磁盘空间 du -ah --max-depth=1 / 查看根目录下各个文件占用情况 二、mysql日志清空 这个日志是可以清空的 echo > /usr/local/mysql/data/syzl-db2.log #将文件清空 说明: 这个文件这么大是因为,开启 …

将OpenCV与gdb驱动的IDE结合使用

返回&#xff1a;OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;OpenCV4.9.0开源计算机视觉库在 Linux 中安装 下一篇&#xff1a;将OpenCV与gcc和CMake结合使用 ​ 能力 这个漂亮的打印机可以显示元素类型、、标志is_continuous和is_subm…

微信小程序分销返佣模式--小程序1-3级分销插件--小程序分销--

团购小程序是一种基于社区团购模式的电商平台&#xff0c;主要面向社区居民用户。 如果你想要开发一款分销团购小程序可以参考以下功能需求进行开发制作。 1、用户注册和登录 提供用户注册和登录功能&#xff0c;使用户能够创建和管理他们的账户。 2、会员管理 包括会员注…

springboot网站开发-诡异的static/images读取故障

springboot网站开发-诡异的static/images读取故障!我在本地环境测试代码&#xff0c;一切正常。可以读取到该路径下的图片模板&#xff0c;正常生成图片存储在本地D盘下面的文件夹。但是改成服务器linux环境后就不行了。打包发布后&#xff0c;死活读取不到图片模板。 这个故障…

HTML(一)

一、网页 1.1 什么是网页 网站是指在因特网上根据一定的规则&#xff0c;使用 HTML 等制作的用于展示特定内容相关的网页集合。 网页是网站中的一“页”&#xff0c;通常是 HTML 格式的文件&#xff0c;它要通过浏览器来阅读。 网页是构成网站的基本元素&#xff0c;它通常由…

基于python+vue智慧农业小程序flask-django-php-nodejs

传统智慧农业采取了人工的管理方法&#xff0c;但这种管理方法存在着许多弊端&#xff0c;比如效率低下、安全性低以及信息传输的不准确等&#xff0c;同时由于智慧农业中会形成众多的个人文档和信息系统数据&#xff0c;通过人工方法对知识科普、土壤信息、水质信息、购物商城…

FreeRTOS任务相关API函数

1. FreeRTOS任务相关API函数介绍 函数描述uxTaskPriorityGet()获取任务优先级vTaskPrioritySet()设置任务优先级uxTaskGetNumberOfTasks()获取系统中任务的数量uxTaskGetSystemState()获取所有任务状态信息vTaskGetInfo()获取指定单个的任务信息xTaskGetCurrentTaskHandle()获…

解决1130-Host‘ ‘is not allowed to connect to this MySQL server,实现远程连接本地数据库

参考:https://blog.csdn.net/CoCo629vanilla/article/details/129008644 在使用Navicat远程连接本地数据库时&#xff0c;遇到了这样一个问题&#xff0c; 我使用 本地主机的地址&#xff0c;连接本地的数据库&#xff0c;报错host ‘’ is not allowed to connect to this my…

转座子插入序列分析2-自制分析流程

我们先观察一下测序的结果&#xff0c;是否有一些什么规律&#xff0c;因为使用的靶向富集法的测序&#xff0c;我们使用了特殊序列将插入了转座子的部分钓了出来&#xff0c;然后进行的测序&#xff0c;所以理论上富集到的所有序列都应该存在一段与我们钓鱼序列互补的“靶点序…

Redis实战:缓存穿透及其解决思路 实战演示

&#x1f389;&#x1f389;欢迎光临&#xff0c;终于等到你啦&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;持续更新的专栏Redis实战与进阶 本专栏讲解Redis从原理到实践 …

YOLOv5改进 | 图像去雾 | 利用图像去雾网络AOD-PONO-Net网络增改进图像物体检测(全网独家首发)

一、本文介绍 本文给大家带来的改进机制是利用AODNet图像去雾网络结合PONO机制实现二次增强&#xff0c;我将该网络结合YOLOv5针对图像进行去雾检测&#xff08;也适用于一些模糊场景&#xff0c;图片不清晰的检测&#xff09;&#xff0c;同时本文的内容不影响其它的模块改进…

【嵌入式硬件】步进电机

1.步进电机简介 1.1步进电机基本原理 步进电机的英文是stepping motor。step的中文意思是行走、迈步。所以仅从字面上我们就可以得知,步进电机就是一步一步移动的电动机。说的官方一点儿,步进电机是一种将电脉冲信号转换成相应角位移或者线位移的电动机(直线电机)。下图为…

交通事故档案管理系统|基于JSP技术+ Mysql+Java+Tomcat的交通事故档案管理系统设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java&#xff0c;ssm&#xff0c;springboot的平台设计与实现项目系统开发资源&#xff08;可…

AI程序员的崛起还是人类程序员的消亡?

最近有个对互联网行业影响极大的爆炸新闻&#xff1a; 我们这个圈子里有了个新玩家——AI程序员。 没错&#xff0c;就是那种用人工智能技术驱动的编程助手。你可能听说过Devin&#xff0c;这家伙不是一般的程序员&#xff0c;它能迅速学习新技术&#xff0c;还能在编码、找bug…

【.net/.net core】后台生成echarts图片解决方案及.net core html转word方法

工具环境下载&#xff1a; EChartsConvert&#xff1a;https://gitee.com/saintlee/echartsconvert EChartsConvert为生成echarts图片的服务端&#xff0c;用于接收参数和生成echarts图表图片BASE64编码 PhantomJS:Download PhantomJS PhantomJS用来发布EChartsConvert服务…

媒资管理模块之文件预览

文件预览 图片和视频上传成功后&#xff0c;可以通过预览按钮查看文件内容(如图片和MP4格式视频),对于浏览器不支持查看的文件提示错误信息(如avi格式视频) 接口定义 根据上传文件的ID获取文件对应的可访问URL,对于图片或MP4格式的视频可通过浏览器直接预览,对于其他文件如.a…

WEB 表单练习题

任务如图&#xff1a; <html><head><meta charest"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head><body><table width"…

Flink GateWay、HiveServer2 和 hive on spark

Flink SQL Gateway简介 从官网的资料可以知道Flink SQL Gateway是一个服务&#xff0c;这个服务支持多个客户端并发的从远程提交任务。Flink SQL Gateway使任务的提交、元数据的查询、在线数据分析变得更简单。 Flink SQL Gateway的架构如下图&#xff0c;它由插件化的Endpoi…

将本地的项目上传到gitee,

场景&#xff1a;在本地有一个项目&#xff0c;想要把这个项目上传到gitee&#xff0c;且在gitee中已经创建好仓库 依次执行下图中的命令&#xff1a;