CSS学习笔记
本文最后更新于8 天前,其中的信息可能已经过时,如有错误请发送邮件到1077511618@qq.com

CSS学习笔记

CSS————想让界面更好看吗?他来啦!!!

初识CSS————CSS的引入方式

引入方式有三:
· 内部样式表:(学习使用)CSS代码写在style标签中;
· 外部样式表:(开发使用)CSS代码写在单独的CSS文件中(.css),在HTML中使用标签引入;
示例:

<link rel="stylesheet" href="./my.css">

·行内样式:(配合Javascript使用)CSS代码写在标签的style属性值里。
示例:

<div style="color:red;font-size:20px;">这是div标签</div>

选择器

标签选择器

顾名思义就是使用标签名来当作选择器,会选中同名标签设置相同的样式。
例如:p , div , img , a …
示例:

<style>
    p{
        color:red;
    }
</style>
<body>
    <p>测试文字</p>
</body>
//会看到测试文字颜色变为红色!

类选择器

作用:查找标签,差异化设置标签的显示效果。
使用步骤:定义类选择器–>.类名( . 不可忽略!) ; 使用类选择器–>标签添加class=”类名”。
一个类选择器可以给多个标签使用!一个标签只可以加一个class属性,如果要加多个,请看示例:

<style>
    .red{
        color:red;
    }
    .size{
        font-size:50px;
    }
</style>
<body>
    <p class="red size">测试文本</p>
    //在要使用的不同的选择器名中间打空格
</body>

类名取名方式:名字有多个单词可以用-连接!!!

id选择器

作用:查找标签,差异化设置标签的显示效果;
场景:一般配合JavaScript使用。
使用步骤:
定义id选择器–#id名字 ;使用id选择器–标签添加id=”id名”。

<style>
    #red{
        color:red;
    }
</style>
<body>
    <p id="red">测试文本</p>
</body>

通配符选择器

作用:查找页面所有标签,设置相同样式;
特点:* , 不需要调用,浏览器自动查找页面所有标签,设置相同的样式;

<style>
    *{
        color:green;
        font-size:30px;
    }
</style>
<body>
    <p>测试文本</p>
</body>

选择器的应用实践————画盒子(给文字添加背景)

需要掌握的三个新的属性:
width — 宽;
height — 高;
background-color — 背景颜色。
示例:

<style>
    .redbox{
        font-size:30px;
        color:white;
        background-color:red;
        width:100;
        height:100;
    }
</style>
<body>
    <p class="redbox">红色的盒子</p>
</body>

文字控制属性

常见的有:
font-size :字体大小;(带上单位px!一定要有单位!

font-weight : 字体粗细;(属性值:正常–400 or normal ; 加粗–700 or bold 。开发中多用数字写法。)

font-style : 字体倾斜; (属性值:正常–normal ; 倾斜–italic)

line-height : 行高; (属性值:数字+px单位 & 数字(当前font-size属性值的倍数))
行高 = 上间距+文字、文本高度+下间距
(这个属性可以设置文字在上面画的盒子中的位置!!!)

font-family : 字体族(字体样式);(属性值:字体名)

font : 字体复合属性;

*{
    font:italic 700 30px/2 楷体;
    //font属性可以同时添加多个不同的属性,但要注意按照顺序:字体是否倾斜 字体是否加粗 字号/行高 字体; 
}

注意!字号和字体属性必须书写,否则font属性不生效!

text-indent : 文本缩进;(属性值:数字+px or 数字+em(1em=当前标签字号的大小))

text-align ; 文本对齐;(属性值:;left 、 center 、 right)
只改变文本位置,不改变标签位置!!!
还可以设置图片对其位置!!!请看示例:

<style>
    div {
        text-align:center;
    }
</style>
<body>
    <div>
        <img src="./test.png" alt="测试图片" target="这是一张测试用的图片">
    </div>
</body>

text-decoration : 修饰线;(属性值:none–无修饰线 ; underline–修饰线 ; line-through–删除线 ; overline–上划线)

color : 字体颜色。 (补充写法:rgba(r,g,b,a),其中a的取值范围是0-1,代表透明度! ; 十六进制写法:实际开发中一般从设计稿中复制)

复合选择器

特点:由多个基础选择器通过不同的方式组合而成;
作用:更准确、更高校的选择目标元素(标签)。

后代选择器

作用:选中某元素的后代元素;
写法:父选择器 (空格) 子选择器 {CSS属性};
示例:

<style>
    div span{
        color:red;
    }
</style>
<body>
    <div>
        <span>测试文本</span>
        <p>
            <span>测试文本2</span>
        </p>
    </div>
</body>

可以看到,div标签下带有span标签的内容都变成了红色————所有的后代都会被选中!!!

子代选择器

作用:只选中子代(距离最近的元素);
写法:父选择器>子选择器 {CSS属性};
示例:

<style>
    div > span{
        color:red;
    }
</style>
<body>
    <div>
        <span>测试文本</span>   //变红(儿子)
        <p>
            <span>测试文本2</span> //不会变红(孙子)
        </p>
    </div>
</body>

并集选择器

作用:选择多组标签,设置相同的样式;
写法:选择器1,选择器2,选择器3,…,选择器N {CSS属性} (选择器之间用,隔开);
示例:

<style>
    div,span,p{
        color:red;
    }
</style>
<body>
    <div>测试文本1</div>
    <span>测试文本2</span>
    <p>测试文本3</p>
</body>

可以看到,div、span、p标签包裹的内容都变红了!!!

交集选择器

作用:选中同时满足多个条件的元素;
写法:选择器1选择器2…{CSS属性} (选择器之间没有符号!如果有标签选择器,必须要放在最前面!!!)
示例:

<style>
    p.box{
        color:red;
    }
</style>
<body>
    <p class="box">测试文本</p>
</body>

伪类选择器

作用:表示元素状态,选中元素的某个状态设计样式。
状态有:

鼠标悬停状态

写法:选择器:hover{CSS属性}
示例:

<style>
    p:hover{
        color:yellow;
    }
</style>
<body>
    <p>测试文本</p>
</body>
拓展————伪类之超链接的状态

超链接有以下几个状态:
:link – 访问前;
:visited – 访问后;
:hover – 鼠标悬停;
:active – 点击时(激活)。
如果要给超链接设置以上几个状态的话,要严格按照link、visited、hover、active的顺序来写!!!

背景属性

常用的背景属性一览:
背景色 — background-color ;
背景图 — background-image ;
背景图平铺方式 — background-repeat ;
背景图位置 — background-position ;
背景图缩放 — background-size ;
背景图固定 — background-attachment ;
背景复合属性 — background ;
示例:

<style>
    div { 
        width : 400px;   //先设置盒子的大小
        height : 400px;

        background-image : url(./images/1.png);

        //注意!背景图默认平铺效果,且在文字下方
        background-repeat : no-repeat;

        background-position : -50px 0; //正数向左/下 , 负数向右/上。
        //Or background-position :  left top;

        background-size : 100px;

        background-attachment : fixed;  //设置背景图不跟随元素内容滚动
    }
</style>

背景图平铺方式:
no-repeat — 不平铺 ;
repeat — 平铺 ;
repeat-x — 水平方向平铺 ;
repeat-y — 竖直方向平铺 。

背景图位置:
关键词设置:
left — 左侧 ;
right — 右侧 ;
center — 居中 ;
top — 顶部 ;
bottom — 底部 ;
坐标设置:
数字 + px (正负都可以)。

背景图大小:
关键词设置:
cover — 等比例缩放背景图片以完全覆盖背景区;
contain — 等比例缩放背景图片以完全放入盒子中;
百分比设置:
根据盒子的大小来计算图片尺寸;
数字设置:
数字 + 单位(例如:px)。

背景图复合属性写法:
background : 背景色 背景图 背景图平铺方式 背景图位置/背景图缩放 背景图固定(一定要用空格隔开!!!位置写法(示例):center/top)

显示模式

块级元素

特点:
①独占一行;
②宽度默认为父级的100%;
③添加宽高属性可生效。
示例:

<style>
    div{
        width : 100px;
        height : 100px;
    }
    .div1{
        background-color : red;
    }
    .div2{
        background-color ; yellow;
    }
</style>
<body>
    <div class="div1">块级元素1</div>
    <div class="div2">块级元素2</div>
</body>

行内元素

特点:
①一行可共存多个;
②尺寸由内容多少来决定;
③添加宽高属性不生效。
示例:

<style>
    span{
        background-color : green;
    }
</style>
<body>
    <span>行内元素114514</span>
</body>

行内块元素

特点:
①一行共存多个;
②默认尺寸由内容撑开;
③添加宽高属性可生效。
示例:

<style>
    img{
        width : 100px;
        height : 100px;
    }
</style>
<body>
    <img src="./images/1.png" alt="">
    <img src="./images/2.png" alt="">
</body>

转换显示模式

属性名:display
属性值:
block – 块级;
inline-blokc – 行内块;
inline – 行内。
示例:

<style>
    div{
        height : 100px;
        width : 100px;

        display : inline-block;
    }
</style>

结构伪类选择器

作用:根据结构的元素关系查找元素。
写法:
E:first-child{} – 查找第一个E元素;
E:last-child{} – 查找最后一个E元素;
E:nth-child(N){} – 查找第N个E元素。

示例:

<style>
    p:first-child {
        background-color : red;
    }
    p:last-child{
        background-color : green;
    }
    p:nth-child(4){
        background-color : orange;
    }
</style>

<body>
    <p>第一个p元素</p>
    <p>第二个p元素</p>
    <p>第三个p元素</p>
    <p>第四个p元素</p>
    <p>第五个p元素</p>
    <p>第六个p元素</p>
</body>

伪元素选择器

作用:创建虚拟元素(伪元素),用来摆放装饰性的内容。

写法:
常用的有两个:
E::before — 在E元素里面最前面添加一个伪元素;
E::after — 在E元素里面最后面添加一个伪元素。

注意:
必须设置content:”” 属性,用来设置伪元素的内容,如果没有内容,则引号留空即可;
伪元素默认是行内显示模式;
权重和标签选择器相同。

示例:

<style>
    div{
        width:30px;
        height:30px;
        background-color:white;
    }

    div::before{
        content:"I ";    //必须设置content属性!否则伪元素选择器不生效!!!
        background-color:pink;

        display:block;   //默认为行内显示!!!!
    }

    div::after{
        content:" You!";
        background-color:red;
    }
</style>
<body>
    <div>Love</div>
</body>

运行代码我们就可以看到,显示内容是:I Love You!

盒子模型

作用:布局网页,摆放盒子和内容。

重要组成部分:
内容区域 – width & height;
内边距 – padding(出现在内容与盒子边缘之间);
边框线 – border;
外边距 – margin(出现在盒子外面);

示例:

<style>
    div{
        width:200px;
        height:200px;
        background-color:blue;

        padding: 50px;
        border: 1px solid red;
        margin: 50px;
    }
</style>

盒子模型 – 边框线

属性名:border;
属性值:边框线粗细 、 线条样式 、 颜色(不区分顺序!);

设置单方向边框线:
属性名:border-方位名词;
属性值:边框线粗细 、 线条样式 、 颜色(不区分顺序);

盒子模型 – 内边距

作用:设置内容与盒子边缘之间的距离;
属性名:padding/padding-方位名词;
多值写法:
四个值:10px 20px 10px 20px (分别对应上右下左);
三个值:上 左右(一样) 下;
两值: 上下 左右;

盒子模型 – 外边距

属性名:margin;
提示:与padding的写法相同,这里不再赘述。

清除默认样式

清除标签默认的样式,比如:默认的内外边距。

示例:

<style>
    //清除默认内外边距
    * {
        margin : 0;
        padding : 0;
    }

    //去掉列表的项目符号
    li {
        list-style: none;
    }
</style>

盒子模型 – 元素溢出

作用:控制溢出元素的内容的显示方式。
属性名:overflow;
属性值 以及 效果:
hidden – 溢出隐藏;
scroll – 溢出滚动(无论是否溢出,都显示滚动条位置);
auto – 溢出滚动(溢出才显示滚动条位置);

外边距问题

合并现象

场景:垂直排列的兄弟元素,上下margin会合并;
现象:取两个margin中的较大值生效;

塌陷问题

场景:父子级的标签,子级的添加上外边距会产生塌陷问题;
现象:导致父级一起向下移动;
解决方法:取消子级margin , 父级设置padding;
或者:父级设置overflow:hidden 、 父级设置border-top;

行内元素 – 内外边距问题

行内元素(span)无法改变内容位置,解决方法是:添加line-height(行高)属性。

盒子模型 – 圆角

作用:设置元素的外边框为圆角;
属性名:border-radius;
属性值:数字+px/百分比;
提示:属性值是圆角半径;

示例:

<style>
    div{
        border-radius : 20px 20px 20px 20px; //跟padding的多值写法差不多
    }
</style>

盒子模型 – 阴影

作用:给元素设置阴影效果;
属性名:box-shadow;
属性值:X轴偏移量 Y轴偏移量 模糊半径 扩散半径 颜色
注意:
· X轴和Y轴偏移量必须书写;
·默认是外阴影,内阴影要加inset;

示例:

<style>
    div {
        box-shadow: 2px 5px 10px 1px black inset;  //内阴影
    }
</style>

书写相关注意事项

CSS书写顺序:
1·盒子模型属性;
2·文字样式;
3·圆角、阴影等修饰属性。

标准流

什么是标准流?
标准流也叫文档流,指的是标签在网页中默认的排布规则,例如:块元素独占一行,行内元素可以一行显示多个。

浮动

作用:让块元素水平排列。

属性名:float;

属性值:
· left – 左对齐;
· right – 右对齐;

浮动的盒子之特点:
· 顶对其;
· 具备行内块特点;
· 脱标。

示例:

<!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>
        /* 清除默认样式 */
        * {
            margin: 0;
            padding: 0;
        }

        li {
            list-style: none;
        }

        .product {
            margin: 50px auto;
            width: 1226px;
            height: 628px;
            background-color: goldenrod;
        }

        .left {
            float: left;
            width: 234px;
            height: 628px;
            background-color: skyblue;
        }

        .right {
            float: right;
            width: 978px;
            height: 628px;
            background-color: brown;
        }
        .right li {
            margin-right: 14px;
            margin-bottom: 14px;
            width: 234px;
            height: 300px;
            background-color: orange;
            float: left;
        }
        .right li:nth-child(4n) {
            margin-right: 0;
        }
    </style>
</head>
<body>
    <div class = "product">
        <div class="left"></div>
        <div class="right">
            <ul>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
            </ul>
        </div>
    </div>
</body>
</html>

清除浮动

场景:浮动元素会脱标,如果父级没有高度,子级无法撑开父级高度(可能导致页面布局错乱);
解决方法:清除浮动(清除浮动带来的影响)。

具体清除方法:
一 – 额外标签法:在父元素内容的最后添加一个块级元素,设置CSS属性clear: both;

.clearfix {
    clear: both;
}

二 – 单伪元素法:

.clearfix::after {
    content: "";        /*伪元素要生效必须要配合content属性才可以实现!*/
    display: block;
    clear: both;
}

三 – 双伪元素法:

.clearfix::before,
.clearfix::after {
    content: "";        /*伪元素要生效必须要配合content属性才可以实现!*/
    display: table;
}
.clearfix::after {
    clear: both;
}

四 – overflow方法:
父元素添加CSS属性overflow: hidden。
注意是加给浮动的父级!!!

flex布局

Flex – 认识

Flex布局也叫弹性布局,是浏览器提倡的布局模型,非常适合结构化布局,提供了强大的空间分布和对其能力;
Flex模型不会产生浮动布局中脱标的现象(当父级元素没有高度时,子级内容依旧可以撑开父级的高度),布局网页更灵活、简单(更适合结构化的布局)。

Flex – 组成

设置方式:给父元素设置display:flex,子元素可以自动挤压或拉伸。
组成部分:
· 弹性容器;
· 弹性盒子;
· 主轴:默认在水平方向;(弹性盒子沿着主轴方向排列)
· 侧轴/交叉轴:默认在垂直方向。

Flex – 布局

(描述 – 属性)

创建flex容器 – display: flex;
主轴对齐方式 – justify-content;

(属性值 – 效果)
flex-start – 默认值,弹性盒子从起点开始依次排列;
flex-end – 弹性盒子从终点开始依次排列;
center – 弹性盒子沿主轴居中排列;
space-between – 弹性盒子沿主轴均匀排列,空白间距均分在弹性盒子之间;
space-around – 弹性盒子沿主轴均匀排列,空白间距均分在弹性盒子之间;
space-evenly – 弹性盒子沿主轴均匀排列,弹性盒子与容器之间间距相等。

侧轴对齐方式 – align-items;
某个弹性盒子侧轴对齐方式 – align-self;
修改主轴方向 – flex-direction;
弹性伸缩比 – flex;
弹性盒子换行 – flex-wrap;

弹性盒子可以自动挤压或拉伸,默认情况下,所有弹性盒子都在这一行显示。
属性名:flex-wrap;
属性值:wrap – 换行;nowrap – 不换行;

行对齐方式 – align-content;

属性名:align-content; 对单行弹性盒子不生效(nowrap)
属性值: flex-start : 默认值,弹性盒子从起点开始依次排列;
flex-end : 弹性盒子从终点开始依次排列;
center :弹性盒子沿主轴居中排列;
space-between :弹性盒子沿主轴均匀排列,空白间距均分在弹性盒子之间;
space-around :弹性盒子沿主轴均匀排列,空白间距均分在弹性盒子两侧;
space-evenly :弹性盒子沿主轴均匀排列,弹性盒子与容器之间间距相等。

CSS案例项目

准备工作 – 项目目录与版心

项目目录

项目目录指的是存放网站的第一层文件夹,内部包含当前网站的所有素材,包含HTML、CSS、图片、JavaScript等。
· images文件夹:存放固定使用的图片素材;
· uploads文件夹:存放非固定使用的图片素材;
· css文件夹:存放CSS文件(link 标签引入)
base.css:基础公共样式(清楚默认样式、设置网页基本样式等);
index.css:首页CSS样式;
index.html:首页HTML文件。

版心效果

版心样式示例:

.wrapper {
    margin: 0 auto;
    width: 1200px;
}

网页制作思路

1 – 布局思路:先整体再局部,从外到内,从上到下,从左到右;
2 – CSS实现思路:①画盒子,调整盒子范围→宽高背景色;
②调整盒子位置→flex布局内外边距;
③控制图片、文字内容样式。

后续就不记录了,可以跟着一步步做

定位

作用:灵活的改变盒子在网页中的位置。

实现:
1 – 定位模式:position;
2 – 边偏移:设置盒子的位置。(left , right , top , bottom)

相对定位

示例:

div {
    position: relative;  /* 定位模式:相对定位 */
    top: 100px;  /* 边偏移属性 - (相对于原来的位置下移100px距离) */
    left: 20px;
}

相对定位并不会脱标,会保持占位,改变位置的参考坐标是元素自身原先的坐标,且标签显示模式在相对定位后不会改变。

绝对定位

使用场景:子级绝对定位,父级相对定位。(子绝父相)
示例:

div {
    position: relative;
    top: 100px;
    left: 100px;
}
div .block {
    position: absolute;
    top: 0px;
    right: 0px;  /* 移动到父级的右上角 */
}

相对定位的特点:
1 – 脱标,不占位;
2 – 参照物:先找最近的已经定位的祖先元素;如果所有祖先元素都没有定位,参照浏览器可视区改变位置;
3 – 显示模式在绝对定位后会发生变化:宽高生效(具备了行内块的特点)。

固定定位

div {
    position: fixed;
}

特点:
1 – 脱标,不占位;
2 – 参照物:浏览器窗口;
3 – 显示模式特点:具备行内块的特点。

字体图标

字体图标:展示的是图标本质是字体
作用:在网页中添加简单的、颜色单一的小图标。

优点:
灵活性:灵活地修改样式,例如:颜色、尺寸等;
轻量级:体积小、渲染快、降低服务器请求次数;
兼容性:几乎兼容所有主流浏览器。
使用方法:先下载再使用。

字体图标 – 下载字体

· iconfont 图标库:https://www.iconfont.cn/ (国内常用图标库);
· 下载字体。

字体图标 – 使用

· 引入字体样式表(inconfont.css);
· 标签使用字体图标类名:

  1. iconfont: 字体图标基本样式(字体名、字体大小等);
  2. icon-xxx: 图标对应的类名:
    <span class="iconfont icon-xxx"></span>

完整示例:

<head>
    <link rel="stylesheet" href="./iconfont/iconfont.css">
    <style>
        .iconfont {  /* 用文字的属性就可以控制(字体)图标的外观 */
            font-size: 200px;
            color: blue;
        }
    </style>
</head>
<body>
    <span class="iconfont icon-xxx"></span>
</body>

注意:字体样式自身自带的css样式使用类选择器,有些情况优先级更高,在调整图标属性时要注意选择器的优先级。

垂直对齐方式

属性名:vertical-align;
属性值:
baseline – 基线对齐(默认);
top – 顶部对齐;
middle – 居中对齐;
bottom – 底部对齐.

过渡属性

作用:可以为一个元素在不同状态之间切换的时候添加过渡效果。

属性名:transition(复合属性);
属性值:过度的属性 花费时间(s)。

提示:
· 过渡的属性可以是具体的CSS属性;
· 也可以为all(两个状态属性值不同的所有属性)都产生过渡效果;
· transition设置给元素本身

示例:

img {
    height: 100px;
    width: 100px;
    transition: all 1s;  /* transition属性添加给标签本身! */
}
img:hover {
    width: 200px;
    height: 200px;
}

/* 效果:鼠标悬浮到img标签的元素(图片)上后,图片会再1s的时间内变大,当鼠标离开,再以相同时间进行缩小 */

修饰属性 – 透明度(opacity)

作用:设置整个元素的透明度(包含背景和内容)。

属性名:opacity;
属性值:0 – 1;

示例:

img {
    width: 100px;
    height: 100px;
    opacity: 1;
    transition: opacity 1s;
}
img:hover {
    opacity: 0.5;
}

修饰属性 – 光标类型(cursor)

作用:改变鼠标悬停在元素上时指针显示样式。

属性名:cursor;
属性值:
· default – 默认值,通常是箭头;
· pointer – 小手效果,提示用户可以点击;
· text – 工字形,提示用户可以选择文字;
· move – 十字光标,提示用户可以移动。

示例:

div {
    width: 200px;
    height: 200px;

    cursor: pointer; /* 鼠标移动到此div元素上后就会变为小手喵~ */
}

平面转换 – transform

作用:为元素添加动态效果,一般与过渡配合使用;
概念:改变盒子在平面内的形态(位移、旋转、缩放、倾斜);
属性:
· 平移:transform:translate(x轴移动距离,y轴移动距离); translate只写一个值,表示沿着x轴移动;单独设置x或y轴移动距离:translateX()或translateY();
· 旋转:transform:rotate(正数 – 顺时针 / 负数 – 逆时针 deg);
· 改变转换原点:
默认下原点为盒子的中心点(center);
属性:transform-origin: 水平原点位置 垂直原点位置;
取值:
①方位名词(left , top , right , bottom , center);
②像素单位数值;
③百分比。
` 缩放:transform:scale(缩放倍数);
transform:scale(X轴缩放倍数, Y轴缩放倍数);
· 倾斜:transform:skew(角度度数deg);

示例:

div {
    width: 100px;
    height: 100px;

    transition: all 1s;
}
div:hover {
    transform: translate(800px) rotate(180deg) scale(2) skew(90);
    /* 移动800px 旋转180度 缩放放大2倍 翻转90度 */
}

渐变

定义:多个颜色逐渐变化的效果,一般用于设置盒子背景。
分类:线性渐变 & 径向渐变。

线性渐变

属性:background-image: linear-gradient(
渐变方向,
颜色1 终点位置,
眼色2 终点位置,
……
);

取值:
渐变方向:
to 方位名词
角度度数
终点位置:
百分比

如果要设置透明色:transparent!

示例:

div {
    width: 200px;
    height: 200px;
    background-color: green;
    background-image: linear-gradient(
        to right,  /* 实现从左到右的红到绿的渐变 */
        /* 45deg 也可以用度数哦! */
        red 80%,  /* 增大红色占用面积的占比 */
        green
    );
}

径向渐变

颜色从中间开始向外逐步变化,可以给按钮添加高光效果!~

属性:
background-image: radial-gradient(
半径 at 圆心位置,
颜色1 终点位置,
颜色2 终点位置,
……
);

取值:
半径可以是2条,则为椭圆;
圆心位置取值:像素单位数值/百分比/方位名词。

示例:

div {
    background-image: radial-gradient(
        50px at center center,
        red,
        pink 50%,
        transparent
    );
}

空间转换

属性:transform

空间转换 – 平移

属性:
transform: translate3d(x, y, z);
transform: translateX();
transform: translateY();
transform: translateZ();

视距 perspective

作用:指定了观察者与z=0平面的距离,为元素添加透视效果;
透视效果:近大远小、近实远虚。

写法:

div {
    perspective: 1000px;   /* 建议取值范围:800-1200px */
}

空间转换 – 旋转

属性:
transform: rotateZ();
transform: rotateX();
transform: rotateY();
transform: rotate3d(x, y, z, 角度度数) : 用来设置自定义轴的位置及旋转角度;
(其中xyz取值为0-1之间的数字)。

立体呈现

作用:设置元素的子元素是位于3D空间中还是平面中。
属性名:transform-style。
属性值:
flat:子级处于平面中;
preserve-3d:子级处于3D空间。

示例(这里先只加前后两个面):

.cube {
    width: 200px;
    height: 200px;
    margin: 100px auto;
    background-color: pink;
    transition: all 2s;

    transform-style: preserve-3d;  /* 设置子级元素处于3D空间中 */

    transform: rotateY(80);
}

.cube div {
    position: absolute;
    left: 0;
    top: 0;
    width: 200px;
    height: 200px;
}

.front {
    background-color: orange;
    transform: translateZ(100px);
}

.back {
    background-color: green;
    transform: translateZ(-100px);
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇