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

news2024/9/21 22:25:49

一、厂商前缀

    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

   

 

 

 

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

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

相关文章

sentinel流控规则详解(图形化界面)

1、QPS 每秒的请求数&#xff0c;超过这个请求数&#xff0c;直接流控。 2、BlockException统一异常处理 2.1、创建异常返回类 Result.class public class Result<T> {private Integer code;private String msg;private T data;public Result(Integer code, String ms…

算法设计与分析-贪心算法的应用动态规划算法的应用——沐雨先生

1&#xff0e; 理解贪心算法的概念&#xff1b; 2&#xff0e;掌握贪心算法的基本思想。 &#xff08;1&#xff09;删数问题 问题描述&#xff1a;给定 n 位正整数 a &#xff0c;去掉其中任意 k ≤ n 个数字后&#xff0c;剩下的数字按原次序排列组成一个新的正整数。对于…

Eclipse For ABAP:安装依赖报错

1.安装好Eclipse后需要添加依赖,这里的地址: https://tools.hana.ondemand.com/latest 全部勾选等待安装结束; 重启后报错:ABAP communication layer is not configured properly. This might be caused by missing Microsoft Visual C++ 2013 (x64) Runtime DLLs. Consu…

【面试经典150 | 数组】分发糖果

文章目录 写在前面Tag题目来源解题思路方法一&#xff1a;贪心两次遍历 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对于本题涉及到的数据结构等内容…

STM32最小核心板使用HAL库实现CAN接口通讯(轮询方式)

这里使用了CAN1的接口&#xff0c;具体使用MX创建项目就不放了 需要注意的是&#xff0c;由于是最小核心没有CAN的收发模块需要外接一个 STM32核心板接CAN收发模块不需要交叉 /**CAN GPIO ConfigurationPA11 ------> CAN_RXPA12 ------> CAN_TX */ CAN收发模块…

数据结构知识总结

二叉树 满二叉树 特性 所有叶子结点都集中在二叉树的最下面一层上&#xff0c;而且结点总数为&#xff1a;2^n-1 (n为层数 / 高度&#xff09; 完全二叉树 特性 若设二叉树的高度为h&#xff0c;除第h层外&#xff0c;其他各层的节点数都达到最大个数&#xff0c;第h层有…

Windows 设置多显示器显示

Windows 设置多显示器显示 1. Windows 7 设置 HDMI 输出2. Windows 11 设置多显示器显示References 1. Windows 7 设置 HDMI 输出 2. Windows 11 设置多显示器显示 ​​​ References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

MAC本安装telnet

Linux运维工具-ywtool 目录 1.打开终端1.先安装brew命令2.写入环境变量4.安装telnet 1.打开终端 访达 - 应用程序(左侧) - 实用工具(右侧) - 终端 #注意:登入终端用普通用户,不要用MAC的root用户1.先安装brew命令 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/H…

Android Studio实现内容丰富的安卓校园助手班级成绩天气管理

获取源码请点击文章末尾QQ名片联系&#xff0c;源码不免费&#xff0c;尊重创作&#xff0c;尊重劳动 1.开发环境 android stuido3.6 jak1.8 eclipse mysql tomcat 2.功能介绍 安卓端&#xff1a; 1.注册登录 2.校园公告 3.课程列表 4.成绩列表&#xff0c;天气列表 5.个人中心…

python + tensorflow 开局托儿所自动点击脚本

python开局托儿所自动点击脚本 屏幕截图图片数字识别消除算法自动点击 屏幕截图 python 屏幕截图可以使用pyautogui或者PIL。我使用的是PIL中的ImageGrab(要授权)。 image ImageGrab.grab(bbox(0, 0, tool.static_window_width, tool.static_window_height)) image np.arra…

人脸表情识别系统项目完整实现详解——(三)训练MobileNet深度神经网络识别表情

摘要&#xff1a;之前的表情识别系统升级到v3.0版本&#xff0c;本篇博客详细介绍使用PyTorch框架来构建并训练MobileNet V3模型以进行实现表情识别&#xff0c;给出了完整实现代码和数据集可供下载。从构建数据集、搭建深度学习模型、数据增强、早停等多种技术&#xff0c;到模…

Django日志(一)

一、概念与配置 1.1、概述 日志是程序员经常在代码中使用快速和方便的调试工具。它在调试方面比print更加的优雅和灵活 而且日志记录对于调试很有用,可以提供更多,更好的结构化,有关应用程序的状态和运行状况的信息 Django框架的日志通过python内置的logging模块实现的,可…

inputStream.avaliable()方法网络操作读取不全BUG

一、问题描述 公司有个需求&#xff0c;就是调用方&#xff08;我&#xff09;需要把pdf文件转为Base64字符串作为参数传递为被调用方&#xff0c;以下是大致转换过程&#xff1a; URL url new URL("http://xxxx.pdf");HttpURLConnection uc (HttpURLConnection) …

XR“黑话”

MTP&#xff08;Motion-To-Photon Latency&#xff09;&#xff1a;实际人体发生运动到图像显示到屏幕上的时间延迟。早期一些vr产生晕动症的主要原因。 ATW&#xff08;Asynchronous Timewarp&#xff09;&#xff1a;主要解决两个问题&#xff0c;一是延迟&#xff0c;二是补…

R语言Meta分析核心技术:回归诊断与模型验证

R语言作为一种强大的统计分析和绘图语言&#xff0c;在科研领域发挥着日益重要的作用。其中&#xff0c;Meta分析作为一种整合多个独立研究结果的统计方法&#xff0c;在R语言中得到了广泛的应用。通过R语言进行Meta分析&#xff0c;研究者能够更为准确、全面地评估某一研究问题…

Django日志(三)

内置TimedRotatingFileHandler 按时间自动切分的log文件,文件后缀 %Y-%m-%d_%H-%M-%S , 初始化参数: 注意 发送邮件的邮箱,开启SMTP服务 filename when=h 时间间隔类型,不区分大小写 S:秒 M:分钟 H:小时 D:天 W0-W6:星期几(0 = 星期一) midnight:如果atTime未指定,…

Avue框架实现图表的基本知识 | 附Demo(全)

目录 前言1. 柱状图2. 折线图3. 饼图4. 刻度盘6. 仪表盘7. 象形图8. 彩蛋8.1 饼图8.2 柱状图8.3 折线图8.4 温度仪表盘8.5 进度条 前言 以下Demo&#xff0c;作为初学者来说&#xff0c;会相应给出一些代码注释&#xff0c;可相应选择你所想要的款式 对于以下Demo&#xff0c…

管理类联考–复试–英文面试–问题–WhatWhyHow--纯英文汇总版

文章目录 Do you have any hobbies? What are you interested in? What do you usually do in your spare time? Could you tell me something about your family&#xff1f; Could you briefly introduce your family? What is your hometown like? Please tell me so…

HTTPS 协议原理

目录 HTTPS VS HTTP HTTPS是什么 概念准备 常见的加密方式 对称加密 一个简单的对称加密例子 非对称加密 数据摘要&&数据指纹 数字签名 HTTPS 的工作过程探究 方案1-只使用对称加密 方案2-只使用非对称加密 方案3-双方都使用非对称加密 方案4-非对称加密…

01、Lua 入门教程

Lua 入门教程 Lua是一种轻量小巧的脚本语言&#xff0c;用标准C语言编写并以源代码形式开放&#xff0c; 其设计目的是为了嵌入应用程序中&#xff0c;从而为应用程序提供灵活的扩展和定制功能。 Lua是巴西里约热内卢天主教大学&#xff08;Pontifical Catholic University of…