纯html5+css能写出什么惊人的效果?

鄙人最近学习css,发现纯html5+css可以实现这般效果: 一棵跳舞的树 纯HTML5+CSS3实现一棵自己跳舞的树 想请大家晒一下自己搜集到的各种华丽效果,谢谢啦。 (是只靠纯html5+css,没有js代码)
关注者
2447
被浏览
85597

31 个回答

贴个自己做的:Cats

用纯CSS实现图片的即不变形拉伸,同时又占满容器宽度的布局。
几乎所有的网站在实现这样的布局时都是使用JS计算实现,我在最早看到这种布局时也是觉得CSS没办法实现这样的布局,直到我看了《CSS Secrets》这本书,开始思考能否用纯CSS实现这种布局,没有想到最终真的只用CSS做出来了。如果想了解具体如何实现可以阅读我博客的文章:使用纯 CSS 实现 Google Photos 照片列表布局 · Issue #4 · xieranmaya/blog · GitHub
刚在简书上看到一篇文章【用 HTML 和 CSS 来打造一个自己的「大白(●—●)」】,然后去实验楼看了原来的课程内容,很赞啊:

Web - 打造网页版「大白」


而且实验楼上也有很多比较好玩的前端项目:

Web - JavaScript实现玫瑰花
Web - SCSS(SASS)画小黄人
Web - 一起来抽奖吧
Web - 网页版扫雷
Web - Ajax歌词同步播放器
……
……


我把内容也转载过来了,给作者说过,可以看看:

文/小柑(简书作者)
原文链接:用 HTML 和 CSS 来打造一个自己的「大白(●
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

注:本文转载自实验楼课程【打造网页版「大白」】,转载请注明出处~


还记得《超能陆战队》里的 “暖男” -「大白」 么?是不是很想拥有一个?我们就利用 HTML 和 CSS 来打造一个自己的「大白」吧!


最终的成果是这样滴,是不是萌萌哒……




PS:您最好对 HTML 和 CSS 有一定的了解,但如果你是小白也没关系,小白见「大白」也是可以的!


再PS:这个「大白」的教程步骤是基于实验楼环境制作的,你也可以上实验楼在线查看该课程~


一、准备工作

进入到 /home/shiyanlou/ 目录下,新建空白文档:




命名为 Baymax.html (其它名字也可以,但后缀名必须是 .html):




使用 gedit 打开,准备编辑代码:




二、编写 HTML

填写以下代码:

<!doctype html>
<html>
   <head><meta charset="utf-8"><title>Baymax</title></head>
<body>

     <div id="baymax">

        <!-- 定义头部,包括两个眼睛、嘴 -->
        <div id="head">
            <div id="eye"></div>
            <div id="eye2"></div>
            <div id="mouth"></div>
        </div>

        <!-- 定义躯干,包括心脏 -->
        <div id="torso">
            <div id="heart"></div>
        </div>

        <!-- 定义肚子腹部,包括 cover(和躯干的连接处) -->
        <div id="belly">
            <div id="cover"></div>
        </div>

        <!-- 定义左臂,包括一大一小两个手指 -->
        <div id="left-arm">
            <div id="l-bigfinger"></div>
            <div id="l-smallfinger"></div>
        </div>

        <!-- 定义右臂,同样包括一大一小两个手指 -->
        <div id="right-arm">
            <div id="r-bigfinger"></div>
            <div id="r-smallfinger"></div>
        </div>

        <!-- 定义左腿 -->
        <div id="left-leg"></div>

        <!-- 定义右腿 -->
        <div id="right-leg"></div>

    </div>
</body>
<html>

三、添加 CSS 样式

我们已经使用 HTML 定义好「大白」的各个元素,现在就需要利用到 CSS 来绘制它的样式外表。

由于「大白」是白色的,为了更容易辨识,我们把背景设为深色。

然后首先是头部:

body {
    background: #595959;
}

#baymax{
    /*设置为 居中*/    
    margin: 0 auto;

    /*高度*/   
    height: 600px;

    /*隐藏溢出*/    
    overflow: hidden;
}

#head{
    height: 64px;
    width: 100px;

    /*以百分比定义圆角的形状*/    
    border-radius: 50%;

    /*背景*/    
    background: #fff;
    margin: 0 auto;
    margin-bottom: -20px;

    /*设置下边框的样式*/    
    border-bottom: 5px solid #e0e0e0;

    /*属性设置元素的堆叠顺序;    拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面*/    
    z-index: 100;

    /*生成相对定位的元素*/    
    position: relative;
}

效果预览:




赶紧再来添加眼睛和嘴吧!

#eye,
#eye2{
    width: 11px;
    height: 13px;
    background: #282828;
    border-radius: 50%;
    position: relative;
    top: 30px;
    left: 27px;

    /*旋转该元素*/    
    transform: rotate(8deg);
}

#eye2{
    /*使其旋转对称*/    
    transform: rotate(-8deg);
    left: 69px;    top: 17px;
}

#mouth{
    width: 38px;
    height: 1.5px;
    background: #282828;
    position: relative;
    left: 34px;
    top: 10px;
}

一个 mini 的「大白」,雏形初现:




接下来是躯干和腹部:

#torso,
#belly{
    margin: 0 auto;
    height: 200px;
    width: 180px;
    background: #fff;
    border-radius: 47%;

    /*设置边框*/    
    border: 5px solid #e0e0e0;
    border-top: none;
    z-index: 1;
}

#belly{
    height: 300px;
    width: 245px;
    margin-top: -140px;
    z-index: 5;
}

#cover{
    width: 190px;
    background: #fff;
    height: 150px;
    margin: 0 auto;
    position: relative;
    top: -20px;
    border-radius: 50%;
}

赋予「大白」象征生命的心脏:

#heart{  
  width:25px; 
  height:25px; 
  border-radius:50%; 
  position:relative; 

  /*向边框四周添加阴影效果*/
  box-shadow:2px 5px 2px #ccc inset; 

  right:-115px; 
  top:40px; 
  z-index:111; 
  border:1px solid #ccc;
}

现在的「大白」是这个样子的了:




还没有手和脚,怪萌怪萌的...「大白」需要温暖的手臂:

#left-arm,
#right-arm{
    height: 270px;
    width: 120px;
    border-radius: 50%;
    background: #fff;
    margin: 0 auto;
    position: relative;
    top: -350px;
    left: -100px;
    transform: rotate(20deg);
    z-index: -1;
}

#right-arm{
    transform: rotate(-20deg);
    left: 100px;
    top: -620px;
}

还没有手指头呢:

#l-bigfinger,
#r-bigfinger{
    height: 50px;
    width: 20px;
    border-radius: 50%;
    background: #fff;
    position: relative;
    top: 250px;
    left: 50px;
    transform: rotate(-50deg);
}

#r-bigfinger{
    left: 50px;
    transform: rotate(50deg);
}

#l-smallfinger,
#r-smallfinger{
    height: 35px;
    width: 15px;
    border-radius: 50%;
    background: #fff;
    position: relative;
    top: 195px;
    left: 66px;
    transform: rotate(-40deg);
}

#r-smallfinger{
    background: #fff;
    transform: rotate(40deg);
    top: 195px;
    left: 37px;
}

有点意思了:




迫不及待要给「大白」加上腿了吧:

#left-leg,
#right-leg{
    height: 170px;
    width: 90px;
    border-radius: 40% 30% 10px 45%;
    background: #fff;
    position: relative;
    top: -640px;
    left: -45px;
    transform: rotate(-1deg);
    z-index: -2;
    margin: 0 auto;
}

#right-leg{
    background: #fff;
    border-radius:30% 40% 45% 10px;
    margin: 0 auto;
    top: -810px;
    left: 50px;
    transform: rotate(1deg);
}

duang~ duang~ duang~ 特技完成!

为什么?