CSS(二)——Flex布局 边框 渐变 过渡 动画

简介: 容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。 项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。

学习CSS第二周的总结

一. Flex布局

     容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。
项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。

1. flex-direction 设置容器主轴的方向

  • flex-direction:row 沿水平方向,由左到右
  • flex-direction:row -reverse 沿水平方向,由右到左
  • flex-direction: column 主轴沿垂直方向,由上到下
  • flex-direction:column-reverse 主轴沿垂直方向,由下到上

2.flex-wrap 当项目在一行无法显示时如何换行

  • flex-wrap:nowrap(默认),不换行
  • flex-wrap:wrap,换行,第一行在上方
  • flex-wrap:wrap-reverse,换行,第一行在下方

3.flex-flow是flex-direction属性和flex-wrap属性的简写形式

4.justify-content设置项目在容器中的对齐方式

具体对齐方式与主轴的方向有关
  • flex-start (默认值):左对齐
  • flex-end : 右对齐
  • center : 居中
  • space-between : 两端对齐,项目之间的间隔相等
  • space-around : 每个项目两侧的间隔相等,且项目之间的间隔比项目与边框的间隔大一倍

5.align-items定义项目在交叉轴上如何对齐显示

具体对齐方式与交叉轴的方向有关
  • flex-start : 交叉轴的起点对齐
  • flex-end : 交叉轴的终点对齐
  • center : 居中对齐
  • baseline : 项目的第一行文字的基线对齐
  • stretch :若项目未设置高度或设为auto,将占满整个容器的高度

6、其他的属性

  • order:设置项目的排列方式,默认值为零,数值越小越靠前
  • flex-grow: 控制当前项目是否放大显示
  • flex-shrink: 可缩小比例
  • flex-basis: 设置项目占据主轴空间的位置
  • align-self: 当前项目与其他拥有不一样的对齐方式

二.CSS3边框

1.border-radius:css3圆角 (单位是:px)

如果你在 border-radius 属性中只指定一个值,那么将生成 4 个 圆角。

但是,如果你要在四个角上一一指定,可以使用以下规则:

四个值: 第一个值为左上角,第二个值为右上角,第三个值为右下角,第四个值为左下角。
三个值: 第一个值为左上角, 第二个值为右上角和左下角,第三个值为右下角
两个值: 第一个值为左上角与右下角,第二个值为右上角与左下角
一个值: 四个圆角值相同


CSS3 圆角属性

border-radius: 所有四个边角 border---radius 属性的缩写
border-top-left-radius :定义了左上角的弧度
border-top-right-radius: 定义了右上角的弧度
border-bottom-right-radius: 定义了右下角的弧度
border-bottom-left-radius :定义了左下角的弧度

2.box-shadow: css3阴影

3.border-image: css3边界图片

     有了 CSS3 的 border-image 属性,你可以使用图像创建一个边框:
border-image 属性允许你指定一个图片作为边框! 用于创建上文边框的原始图像:
在 div 中使用图片创建边框:

三.CSS3背景属性

  1. background-image属性

CSS3中可以通过background-image属性添加背景图片。

不同的背景图像和图像用逗号隔开,所有的图片中显示在最顶端的为第一张

2.background-size属性

 指定背景图像的大小
 

CSS3以前,背景图像大小由图像的实际大小决定。

CSS3中可以指定背景图片,在不同的环境中指定背景图片的大小。您可以指定像素或百分比大小。
你指定的大小是相对于父元素的宽度和高度的百分比的大小。

3.background-origin属性

指定了背景图像的位置区域。

content-box, padding-box,和 border-box区域内可以放置背景图像。

在这里插入图片描述

4.background-clip属性

从指定位置开始绘制,规定背景的绘制区域

四.CSS3渐变

  • 线性渐变(Linear Gradients)- 向下/向上/向左/向右/对角方向

1.线性渐变 - 从上到下(默认情况下)

2.线性渐变--从左到右

3.线性渐变 - 对角

你可以通过指定水平和垂直的起始位置来制作一个对角渐变。

4.使用角度

如果你想要在渐变的方向上做更多的控制,你可以定义一个角度,而不用预定义方向          (to bottom、to top、to right、to left、to bottom right,等等)。

  • 径向渐变(Radial Gradients)- 由它们的中心定义

1.径向渐变 - 颜色节点均匀分布(默认情况下)

2.径向渐变 - 颜色节点不均匀分布

   设置形状

shape 参数定义了形状。它可以是值 circle 或 ellipse。其中,circle 表示圆形,ellipse   表示椭圆形。默认值是 ellipse。

五.CSS3    2D转换

   CSS3 转换 可以对元素进行移动、缩放、转动、拉长或拉伸。

转换的效果是让某个元素改变形状,大小和位置。

您可以使用 2D 或 3D 转换来转换您的元素。

鼠标移动到以下元素上,查看 2D 和 3D 的转换效果

1. translate() 方法

translate()方法,根据左(X轴)和顶部(Y轴)位置给定的参数,从当前元素位置移动。

2. rotate() 方法

rotate()方法,在一个给定度数顺时针旋转的元素。负值是允许的,这样是元素逆时针旋转。

3. scale() 方法

scale()方法,该元素增加或减少的大小,取决于宽度(X轴)和高度(Y轴)的参数:


4. skew() 方法

 语法
transform:skew(<angle> [,<angle>]);

包含两个参数值,分别表示X轴和Y轴倾斜的角度,如果第二个参数为空,则默认为0,参数为负表示向相反方向倾斜。

  • skewX();表示只在X轴(水平方向)倾斜。
  • skewY();表示只在Y轴(垂直方向)倾斜。

5. matrix() 方法

matrix()方法和2D变换方法合并成一个。

matrix 方法有六个参数,包含旋转,缩放,移动(平移)和倾斜功能。

这6个参数,(转载CSDN博主「sophiaYang517」的)
暂且先取名abcdef也就是matrix(a,b,c,d,e,f)。

  • e是x轴的平移。
  • f是y轴的平移。
  • a是x轴对的缩放,以倍数的方式控制。
  • d是y轴对的缩放,以倍数的方式控制。
  • a,b,c,d是共同控制旋转角度的,以cosθ,sinθ,-sinθ,cosθ的方式共同控制,bc处是sinθ-sinθ就是顺时针旋转

        其实就是:matrix(倍数·cosθ,sinθ,-sinθ,倍数·cosθ,0,0);
    

六.CSS3过渡

CSS3中,我们为了添加某种效果可以从一种样式转变到另一个的时候,无需使用Flash动画或JavaScript。

1.要实现这一点,必须规定两项内容:

  • 指定要添加效果的CSS属性
  • 指定效果的持续时间。

2.过渡属性

属性               描述                                             CSS
transition       简写属性,用于在一个属性中设置四个过渡属性。            3
transition-property    规定应用过渡的 CSS 属性的名称。                      3
transition-duration    定义过渡效果花费的时间。默认是 0。                3
transition-timing-function    规定过渡效果的时间曲线。默认是 "ease"。    3
transition-delay    规定过渡效果何时开始。默认是 0。                    3

七.CSS3动画

` @keyframes 规则是创建动画。
@keyframes 规则内指定一个 CSS 样式和动画将逐步从目前的样式更改为新的样式。`

当在 @keyframes 创建动画,把它绑定到一个选择器,否则动画不会有任何效果。
1. 指定至少这两个CSS3的动画属性绑定向一个选择器:

  • 规定动画的名称
  • 规定动画的时长

2. CSS3动画是什么?

    动画是使元素从一种样式逐渐变化为另一种样式的效果。

可以改变任意多的样式任意多的次数。

请用百分比来规定变化发生的时间,或用关键词 "from" 和 "to",等同于 0% 和 100%。

    0% 是动画的开始,100% 是动画的完成。

为了得到最佳的浏览器支持,您应该始终定义 0% 和 100% 选择器。

八.css作业

<!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>
        body {
            margin: 0;
            padding: 0;
            background-color: #333;
            min-height: 100vh;
            align-items: center;
        }
        .cards {
            height: 480px;
            margin: 133px 0;
            position: relative;
            display: flex;
            flex-wrap: wrap;
            justify-content: space-around;
        }
        .card {
            width: 240px;
            height: 240px;
            position: relative;
            background-color: #333;
            align-items: center;
            margin: 115px;
        } 
        .cardbox1 {
            position: absolute;
            background-color: #333;
            font-size: 40px;
            text-align: center;
            width: 240px;
            height: 240px;
            transition: transform 0.6s;
            z-index: 1;
        }
       .card:hover .cardbox1 {
            background-color: #ff0037;
            color: #fff;
            font-size: 50px;
            transform: translateY(-100px);
            transition: 0.8s;
        }
       .card:hover .cardbox1>h3 {
            opacity: 1;
        }
         h3 {
            text-align: center;
            color: #fff;
            font-size: 50px;
            line-height: 140px;
            opacity: 0.5;
        }

        .card:hover .cardbox1 h3 {
            font-size: 65px;
            line-height: 50px;
        }
        .cardbox2 {
            width: 240px;
            height: 240px;
            position: absolute;
            background-color: #fff;
            font-size: 20px;
            transition: transform 0.6s;
            box-sizing: border-box;
            box-shadow: 0 20px 50px rgba(0, 0, 0, 0.8);
        }
        .card:hover .cardbox2 {
            background-color: #fff;
            color: black;
            transform: translateY(100px);

        }
        p {
            padding: 45px;
            font-weight: 800;
        }
        a {
            position: absolute;
            color: #333;
            background-color: #fff;
            text-decoration: none;
            top: 170px;
            left: 50px;
            border: 2px solid black;
            border-radius: 12px;
        }
       a:hover {
            position: absolute;
            display: inline-block;
            background-color: black;
            color: #fff;
            transition: 0.8s;
        }
    </style>
</head>

<body>
    <div class="cards">
        <div class="card">
            <div class="cardbox1 ">
                <h3>one</h3>
            </div>
            <div class="cardbox2">
                <p>This is one.</p>
                <a href="#">one</a>
            </div>
        </div>
        <div class="card">
            <div class="cardbox1">
                <h3>two</h3>
            </div>
            <div class="cardbox2">
                <p>This is two.</p>
                <a href="#">two</a>
            </div>
        </div>
        <div class="card">
            <div class="cardbox1">
                <h3>three</h3>
            </div>
            <div class="cardbox2">
                <p>This is three.</p>
                <a href="#">three</a>
            </div>
        </div>
    </div>
</body>
</html>
目录
相关文章
|
15天前
|
前端开发 算法 Java
(CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
(CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
57 1
|
15天前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
Flex 布局 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。 2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。 一、Flex 布局是什么? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。
147 0
|
4月前
|
前端开发
用 CSS Grid 轻松构建复杂布局
用 CSS Grid 轻松构建复杂布局
268 83
|
3月前
|
自然语言处理 前端开发 JavaScript
用 通义灵码 一键生成“水波纹按钮”,连 CSS 动画都不用自己写了!
通义灵码是一款智能编程辅助工具,它可以根据自然语言指令自动生成高质量的代码。例如,只需输入“生成一个按钮,点击时带水波纹动画,模拟 Material Ripple 效果”,它就能生成具备完整交互逻辑、CSS 动画和良好性能的按钮组件。不仅如此,它还支持拓展功能,如长按触发提示、添加图标等,并能自动优化样式适配不同场景。通过通义灵码,开发者可以大幅提升效率,专注于创意实现,而不必纠结于繁琐的代码细节。
|
4月前
|
设计模式 容器
13.HarmonyOS流式卡片列表实现指南:Flex多行布局详解
在现代移动应用开发中,流式卡片列表是一种常见且实用的UI设计模式。它能够自适应屏幕宽度,在有限空间内高效展示多个内容项。本教程将详细讲解如何使用HarmonyOS的ArkUI框架中的Flex组件实现一个灵活的流式卡片列表,重点关注多行布局与对齐策略的应用。
120 2
|
15天前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
Animation属性 css3为Animation动画提供的几个属性如下: 属性名 属性值 animation-name 指定动画名称,该属性指定一个已有的关键帧定义。 animation-duration 指定动画持续时间。 animation-timing-funtion 指定动画变化速度。 animation-delay 指定动画延迟多长时间才开始执行。 animation-iteration-count 指定动画的循环执行次数。 animation:这是一个复合属性。
45 1
|
3月前
|
Web App开发 前端开发 数据可视化
用 CSS Grid 实现高效布局的 3 个实战技巧
用 CSS Grid 实现高效布局的 3 个实战技巧
|
4月前
|
UED 容器
10.HarmonyOS Next布局进阶:嵌套Flex容器与空间分配策略
在HarmonyOS Next的ArkUI框架中,Flex布局是构建用户界面的核心技术之一。通过嵌套使用Flex容器,我们可以创建复杂而灵活的界面结构,满足各种应用场景的需求。本教程将深入探讨如何在HarmonyOS Next中使用嵌套Flex容器实现复杂布局,以及如何合理分配和控制空间。
124 0
CSS3 flex的使用方法
display:flex; align-items://水平对齐方式 justify-content://垂直对齐方式 flex://盒子所占大小(如果你盒子里面只有两个div,那么你设置其中之一个flex,那么另外一个会自动填充)
659 0

热门文章

最新文章

  • 1
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
  • 4
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
  • 7
    (CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改