CSS篇.day04-单位,流式布局,弹性布局(flex),网格布局,渐变,变形与过渡

news2024/11/24 19:28:13

目录

1. 单位

2.流式布局

3.弹性布局(flex)

4.网格布局

5.渐变

6.变形与过渡


1. 单位

  • px:  绝对单位  像素
  • em:  相对单位  基准点为父节点字体大小  若自身定义了font-size按自身来计算(一般浏览器默认16px)
  • rem: 相对单位  相对根节点html的字体大小, css3新增属性, 根元素相对设备尺寸自动变换,Chrome/firefox/ie9+支持
  • 注意: Chrome强制最小字体为12px, 当html的字体大小设置为10px时, 显示12px, rem计算还是以12px为准

宽高:

  • vw/vh: viewpoint width/height, 视窗的宽/高度,  1vw/vh 等于视窗宽度的1%
  • vmin/vmax: vw和vh中较小/大的那个
  • vw兼容性: ie9-11,opera浏览器不支持

2.流式布局

  •  一种等比例缩放布局方式, 在CSS代码中使用百分比来设置宽度, 也称百分比自适应的布局
  • 实现方法是将CSS固定像素宽度换算为百分比宽度。换算公式如下: 目标元素宽度 / 父盒子宽度 = 百分数宽度
<style type="text/css">
    *{
      margin: 0;
      padding: 0;
    }
    header{
      width: 100%;
      height: 10vh;
      background-color: rgb(250, 223, 223);
    }
    nav{
      height: 5vh;
      background-color: rgb(244, 197, 197);
    }
    section{
      overflow: hidden;
    }
    main{
      float: right;
      width: 80%;
      height: 80vh;
      background-color: rgb(235, 175, 175);
    }
    aside{
      float: left;
      width: 15%;
      height: 80vh;
      background-color: rgb(248, 164, 164);
    }
    footer{
      height: 5vh;
      background-color: rgb(249, 161, 161);
    }
  </style>

<body>
  <!-- 流式布局 
  一种等比例缩放布局方式,在CSS代码中使用百分比来设置宽度,也称百分比自适应的布局。 
  实现方法是将CSS固定像素宽度换算为百分比宽度。换算公式如下: 目标元素宽度 / 父盒子宽度 = 百分数宽度-->

  <header>header</header>
  <nav>nav</nav>
  <section>
    <main>main</main>
    <aside>aside</aside>
  </section>
  <footer>footer</footer>
</body>

3.弹性布局(flex)

  • 采用flex布局的元素, 为 flex容器    
  • display属性: flex(块级flex容器)或 inline-flex(类似 inline-block的行内块级flex容器)
  • 容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)
  • 项目(子元素)默认沿主轴排列
  • 当一个元素设置了Flex布局以后,其子元素的 float、clear 和 vertical-align 等属性将失效
 <style type="text/css">
    .main{
      /* width: 700px; */
      height: 700px;
      background-color: rgb(246, 133, 133);

      /* flex布局  弹性布局
          采用flex布局的元素, 为 flex容器     
          display属性: flex(块级flex容器)或 inline-flex(类似 inline-block的行内块级flex容器)
          容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)
          项目(子元素)默认沿主轴排列
          当一个元素设置了Flex布局以后,其子元素的 float、clear 和 vertical-align 等属性将失效
      */
      display: flex;

      /* 主轴项目排列方式 默认row从左往右  */
      flex-direction: row ;   /* row-reverse 水平方向从右往左  column沿垂直方向从上到下   column-reverse沿垂直方向从下到上*/

      /* 换行方式  */
      flex-wrap: wrap;  /* 默认nowrap不换行   wrap换行 */

      /* 排列及换行简写 */
      /* flex-flow: column wrap; */

      /* 元素主轴对齐方式 */
      /* 
          flex-start 	默认值,左对齐
          flex-end 	右对齐
          center 	居中
          space-between 	两端对齐,项目之间的间隔是相等的
          space-around 	每个项目两侧的间隔相等
          initial 	将此属性设置为属性的默认值
          inherit 	从父元素继承属性的值
      */ 
      justify-content: space-between; 

      /* 元素侧轴(纵轴)对齐方式 */
      /*     
          stretch 	默认值,项目将被拉伸以适合容器
          center 	项目位于容器的中央
          flex-start 	项目位于容器的顶部
          flex-end 	项目位于容器的底部
          initial 	将此属性设置为属性的默认值
          inherit 	从父元素继承属性的值
       */
      align-items: center;

      /* 与justify-content属性类似   在弹性盒子的侧轴还有多余空间时调整容器内项目的对齐方式   */
      /* 
        stretch 	默认值,将项目拉伸以占据剩余空间
        center 	项目在容器内居中排布
        flex-start 	项目在容器的顶部排列  (如果翻转换行, 则底部对齐 )
        flex-end 	项目在容器的底部排列
        space-between 	多行项目均匀分布在容器中,其中第一行分布在容器的顶部,最后一行分布在容器的底部
        space-around 	多行项目均匀分布在容器中,并且每行的间距(包括离容器边缘的间距)都相等
        initial 	将此属性设置为属性的默认值
        inherit 	从父元素继承该属性的值
      */
      /* align-content: center; */

    }
    .main div{
      width: 250px;
      height: 250px;
      background-color: rgb(238, 172, 172);
    }
    .main div:first-child{
      /* 设置项目在容器中出现的顺序  默认为 0*/
      order: 0;
      /*  为某个项目设置不同于其它项目的对齐方式,可以覆盖 align-items 属性的值*/
      /* 
        auto 	默认值,表示元素将继承其父容器的 align-items 属性值,如果没有父容器,则为“stretch”
        stretch 	项目将被拉伸以适合容器
        center 	项目位于容器的中央
        flex-start 	项目位于容器的顶部
        flex-end 	项目位于容器的底部
        baseline 	项目与容器的基线对齐
        initial 	将此属性设置为属性的默认值
        inherit 	从父元素继承属性的值
      */
      align-self: auto;

      /*  flex-grow、flex-shrink 和 flex-basis 三个属性的简写 */
      /* 
          flex-grow:(必填参数)一个数字,用来设置项目相对于其他项目的增长量,默认值为 0;
          flex-shrink:(选填参数)一个数字,用来设置项目相对于其他项目的收缩量,默认值为 1;
          flex-basis:(选填参数)项目的长度,合法值为 auto(默认值,表示自动)、inherit(表示从父元素继承该属性的值) 或者以具体的值加 "%"、"px"、"em" 等单位的形式。

          另外,flex 属性还有两个快捷值,分别为 auto(1 1 auto)和 none(0 0 auto
      */
      flex: 1;  /* 可设置占多少份 */
    }
    
  </style>

4.网格布局

display: grid;

    <style type="text/css">
        *{
            margin: 0;
            padding: 0;
        }
        div.gridCls {
            display: grid;
            /* 设置每一列的宽度  fr占几份 */
            grid-template-columns: 1fr 2fr 2fr 1fr;
            /* 设置每一行的高度 */
            grid-template-rows: 200px 100px;  
        }

        div.gridCls div {
            background-color: rgb(240, 178, 178);
            text-align: center;
            padding: 20px;
            border: 2px solid rgb(239, 239, 161);
        }     
    </style>

5.渐变

  <style>
    div{
      width: 500px;
      height: 200px;
      border: 1px solid bisque;
    }

    div.div1{
      /* 线性渐变 */
      background-image: linear-gradient(to right, pink, skyblue, rgb(243, 243, 177));
    }
    div.div2{
      /* 对角线渐变 */
      background-image: linear-gradient(to top right, pink, skyblue, rgb(243, 243, 177));
    }
    div.div3{
      /* 角度渐变   水平线与渐变线之间的角度, 逆时针计算 */
      background-image: linear-gradient(175deg, pink, skyblue, rgb(243, 243, 177));
    }
    div.div4{
      /* 重复性线性渐变   百分比 确定重复多少次*/
      background-image: repeating-linear-gradient(75deg, pink, skyblue, rgb(243, 243, 177) 25%);
    }
    div.div5{
      /* 径向渐变   默认情况下,渐变的中心是 center(表示在中心点),渐变的形状是 ellipse(表示椭圆形),渐变的大小是 farthest-corner(表示到最远的角落)  */
      background-image: radial-gradient(circle at 40px, pink 20%, skyblue 60%, rgb(243, 243, 177) 20%)
    }
  </style>

放一个效果图叭(其实我是想拥有一封面嘿嘿嘿~~~)

6.变形与过渡

2D时,通常设置x,y轴两个方向的变化.

  <style>
    div{
      width: 200px;
      height: 200px;
      background-color: pink;
    }
    div:hover{
        width: 400px;
        /* 移动 */
        transform: translate(0, 200px);
        /* 旋转 */
        transform: rotate(30deg);
        /* 放大或缩小 */
        transform: scale(2,3);
        /* 倾斜 */
        transform: skew(30deg, 50deg);
        /* 过渡 */
        transition: transform 2s, width 4s;  /* 转换效果, 2s内完成,  宽度变化4s完成*/
    }
  </style>

PreviousNotes:

https://mp.csdn.net/mp_blog/creation/editor/124712091

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

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

相关文章

【Python百日进阶-数据分析】Day139 - plotly甘特图:plotly.figure_factory.create_gantt()

文章目录一、语法二、参数三、返回值四、实例4.1 普通ff甘特图4.2 将任务组合在一起4.3 按数值变量着色4.4 create_gantt4.5具有数字条目的按列索引4.6 具有字符串条目的按列索引4.7 使用颜色字典4.8一、语法 已弃用&#xff0c;请用plotly.express.timeline()代替。 plotly.…

LeetCode88. 合并两个有序数组

题目 给你两个按非递减顺序排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。请你合并 nums2 到 nums1 中&#xff0c;使合并后的数组同样按非递减顺序排列。 注意&#xff1a;最终&#xff0c;合并后数组不…

统一观测|如何使用 Prometheus 监控 Windows

作者&#xff1a; 颍川 引言 微软 Windows 是当前主流操作系统之一&#xff0c;在桌面和服务端均有较大市场份额。 对于 Linux 操作系统&#xff0c;Prometheus 可以通过 Node Exporter 来进行基础资源&#xff08;CPU、内存、磁盘、网络等&#xff09;监控&#xff0c;类似…

吴恩达的2022年终盘点:生成式AI、ViT、大模型

昨日&#xff0c;**吴恩达在圣诞节的《The Batch》特刊上发布了一年一度的年终盘点。**在过去的一年&#xff0c;生成式AI迎来爆发式增长&#xff0c;由人工智能生成的图片在社交平台疯狂传播&#xff0c;引发大量争议的同时也推动了投资&#xff1b;视觉 Transformer(ViT) 的工…

【nowcoder】笔试强训Day8

目录 一、选择题 二、编程题 2.1两种排序方法 2.2最小公倍数 一、选择题 1.下列选项中关于Java中super关键字的说法正确的是&#xff08;&#xff09; A super关键字是在子类对象内部指代其父类对象的引用 B super关键字不仅可以指代子类的直接父类&#xff0c;还可以直…

SpreadJS 16新建文件格式,Data Manager中的层次结构

SpreadJS 16新建文件格式,Data Manager中的层次结构 为TableSheet、Designer、Calculation、Shape和Workbook添加增强功能。 2022年12月22日-16:53新版本 特征 新建文件格式 新的.sjs文件格式使ExcelIO进程更快、更小。 表页增强功能 Data Manager中的层次结构。 Data Manager字…

【代码随想录】链表-golang

链表 from 代码随想录 移除链表元素 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 思路&#xff1a;设置一个新的节点&#xff0c;节点的下一个是链表的第一个节点 /*** Definition f…

阿根廷夺冠早已预判,梅西经济爆火,这款产品在跨境电商卖断货了

2022年12月18日23:00&#xff0c;世界杯的决赛将举行&#xff0c;阿根廷会战法国&#xff1b;期间&#xff0c;梅西和姆巴佩也将会在绿茵场上狭路相逢。而作为现役名声最为响亮的球星之一&#xff0c;此次卡塔尔也是梅西最后一次征战世界杯赛场&#xff0c;同时&#xff0c;随着…

基于Python实现电影推荐系统【100010052】

电影推荐系统 标签&#xff1a;Tensorflow、矩阵分解、Surprise、PySpark 1、用Tensorflow实现矩阵分解 1.1、定义one_batch模块 import numpy as np import pandas as pddef read_and_process(filename, sep ::):col_names [user, item, rate, timestamp]df pd.read_cs…

IP判断.库函数复习.数组.C

strtok(在string.h库里&#xff09;函数以"."为分隔符对IP字符串进行切分. atoi函数&#xff08;在stdlib.h里&#xff09;将切分的一部分字符串转换为十进制数字. 描述 C 库函数 char *strtok(char *str, const char *delim) 分解字符串 str 为一组字符串&#xf…

LeetCode题目笔记——1759. 统计同构子字符串的数目

文章目录题目描述题目难度——中等方法一&#xff1a;数学代码/C代码/Python总结题目描述 给你一个字符串 s &#xff0c;返回 s 中 同构子字符串 的数目。由于答案可能很大&#xff0c;只需返回对 109 7 取余 后的结果。 同构字符串 的定义为&#xff1a;如果一个字符串中的…

300道网络安全工程师面试题(附答案解析)冲刺金三银四

2022年马上就要过去了&#xff0c;先来灵魂三连问&#xff0c;年初定的目标完成多少了&#xff1f;薪资涨了吗&#xff1f;女朋友找到了吗&#xff1f; 好了&#xff0c;不扎大家的心了&#xff0c;接下来进入正文。 由于我之前写了不少网络安全技术相关的文章和回答&#xff…

nginx 报400_nginx 400 Bad request

记录一次自己写出来的bug. 首先自己在gateway中做了filter,操作了header 操作中返回的报错400 nginx, 所以一直将矛头指向了nginx配置,但是各种查询和修改后,错误依旧. 静下心来一步步的看,发现请求实际上已经通过nginx发送到了gateway中,并且gateway日志中也清楚的记录了lo…

[普及练习场]失踪的7

本专辑上篇&#xff1a; [普及练习场] 生活大爆炸版石头剪刀布 看得都爽&#xff0c;对吧&#xff01;感谢hydro的页面和浴谷的搬运。 目录 一.读题 失踪的7 题意 二 .做题 算法原理 算法实现 全篇代码分解讲解 输入 中心 一.读题 失踪的7 题目描述 远古的 Pascal 人也…

FIT2CLOUD飞致云荣膺“2022年度OSCHINA优秀开源技术团队”奖项

2022年12月&#xff0c;知名开源技术社区OSCHINA&#xff08;开源中国&#xff09;公布了“2022年度OSCHINA优秀开源技术团队”入选名单。凭借在开源软件研发和开源社区运营方面的优秀表现&#xff0c;FIT2CLOUD飞致云获得了OSCHINA社区的认可&#xff0c;荣膺“2022年度优秀开…

基于人脸关键点检测的驾驶员睡意检测系统

摘要 驾驶员注意力不集中或者分心是道路交通事故的主要原因。 为了减少道路交通事故&#xff0c;设计开发驾驶员疲劳检测系统至关重要。 本研究利用人脸关键点检测方法提出了驾驶员睡意检测系统&#xff0c;目的是使驾驶更安全。 一.人类检测方法 人脸关键点检测是人脸识别任…

B. Array Walk(贪心)

Problem - 1389B - Codeforces 给你一个数组a1,a2,...,an&#xff0c;由n个正整数组成。 最初&#xff0c;你站在索引1处&#xff0c;分数等于a1。你可以进行两种移动。 向右移动--从你当前的索引x走到x1&#xff0c;并将ax1加入你的分数。这个动作只有在x<n时才能进行。 …

黑客窃取 4 亿 Twitter 用户记录,勒索马斯克破财消灾

整理 | 何苗 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 上周五&#xff0c;一个用户名为 Ryushi 的用户在黑客论坛 Breached 上发布了一个帖子声称&#xff0c;已成功利用漏洞抓取了超 4 亿 Twitter 用户数据并在线出售。 为了证明数据的真实性&am…

spring cloud gateway网关转发websocket请求

springcloud gateway网关是所有微服务的统一入口。 1、springcloud gateway关键术语 Route&#xff1a;路由&#xff0c;网关配置的基本组成模块。一个Route模块由一个 ID&#xff0c;一个目标 URI&#xff0c;一组断言和一组过滤器定义。如果断言为真&#xff0c;则路由匹配…

经营报表-FineReport配置Oracle外接数据库(2)

1. 配置外接数据库 1.1 外接数据库配置入口 外接数据库的配置入口&#xff0c;有三种形式&#xff1a; 1&#xff09;超级管理员第一次登录数据决策系统时&#xff0c;即可为系统配置外接数据库。如下图所示&#xff1a; 2&#xff09;对于使用内置数据库的系统&#xff0c;管…