纯CSS + 媒体查询实现网页导航效果

所属分类: 网页制作 / CSS 阅读数: 1243
收藏 0 赞 0 分享

附上效果图,如果大家感觉不错,请参考实现代码:

 代码如下,复制即可使用:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        body {
            background: #801638;
        }
        body,
        body > * {
            margin: 0;
            padding: 0;
            font-family: 'Roboto', sans-serif;
            font-weight: normal;
        }
        * {
            transition: all .3s ease 0s;
        }
        /* Background colours */
        div + div article:nth-child(1) {
            background: #c22326;
        }
        div + div article:nth-child(2) {
            background: #f37338;
        }
        div + div article:nth-child(3) {
            background: #fdb632;
        }
        div + div article:nth-child(4) {
            background: #027878;
        }
        div + div article:nth-child(5),
        div + div {
            background: #801638;
        }
        /* Main layout */
        html,
        body,
        div + div {
            width: 100vw;
            height: 100vh;
        }
        div + div {
            list-style: none;
            position: relative;
            display: flex;
            flex-direction: row;
            flex-wrap: nowrap;
            align-items: stretch;
            overflow: hidden;
        }
        /* Articles */
        div + div article {
            flex: initial;
            width: 20%;
            height: 100%;
            text-align: center;
            color: #fff;
            text-decoration: none;
            vertical-align: bottom;
            box-sizing: border-box;
            padding: 2vh 1vw;
            position: relative;
        }
        /* Big Headings */
        body > div:first-child {
            position: fixed;
            bottom: 8vh;
            background: #fff;
            width: 100%;
            text-align: center;
            padding: .5rem;
            z-index: 2;
        }
        body > div:first-child h1,
        body > div:first-child h2 {
            margin: 0;
            padding: 0;
        }
        /* Hover interaction */
        div + div:hover article {
            flex: initial;
            width: 10%;
        }
        div + div article:hover {
            width: 60%;
        }
        article > div {
            opacity: 0;
            transition: opacity .2s ease 0;
        }
        div + div article:hover > div {
            opacity: 1;
            transition: opacity .3s ease .3s;
        }
        /* navigation */
        div + div article > h2 {
            bottom: 2vh;
            position: absolute;
            text-align: center;
            width: 100%;
            margin: 0;
            font-size: 3vh;
        }
        /* Article layouts */
        article div {
            text-align: left;
            width: 58vw;
        }
        article div p,
        article div div h2,
        article div h3 {
            margin: 0 0 1em 0;
        }
        article div p {
            width: 40vw;
        }
        @media (max-width: 900px) {
            div + div article {
                padding: 2vh 3vw;
            }
            div + div article > h2 {
                transform: rotate(90deg);
                bottom: 23vh;
                min-width: 12em;
                text-align: left;
                transform: rotate(-90deg);
                transform-origin: 0 0 0;
                opacity: 1;
            }
            div + div article:hover > h2 {
                opacity: 0;
            }
            article div p {
                width: 50vw;
            }
            article div {
                max-height: calc(72%);
                overflow-y: auto;
            }
        }
    </style>
</head>
<body>
    <div>
        <h1>我在这,谁敢动我。</h1>
        <h2>我是你们大哥的头</h2>
    </div>
    <div>
        <article>
            <h2>大哥的小弟一</h2>
            <div>
                <h3>大哥的小弟一</h3>
                <p>身高180</p>
                <p>体重120</p>
            </div>
         </article>
         <article>
           <h2>大哥的小弟二</h2>
            <div>
               <h3>大哥的小弟二</h3>
               <p>身高160</p>
               <p>体重100</p>
            </div>
          </article>
          <article>
             <h2>大哥的小弟三</h2>
             <div>
               <h3>大哥的小弟三</h3>
               <p>身高175</p>
               <p>体重180</p>
             </div>
          </article>
          <article>
             <h2>大哥的小弟四</h2>
             <div>
               <h3>大哥的小弟四</h3>
                 <p>身高180</p>
                 <p>体重110</p>
             </div>
          </article>
          <article>
             <h2>大哥的小弟五</h2>
             <div>
               <h3>大哥的小弟五</h3>
               <p>身高180</p>
               <p>体重150</p>
             </div>
          </article>
     </div>
  </body>
</html>

 

更多精彩内容其他人还在看

CSS伪类对象before和after的用法实例详解

这两个伪类对象只有在清楚浮动clearfix的时候会用到哈,最近在研究css3的时候觉得它两个的搭配不仅能够减少代码量并且能整出很巴适的效果
收藏 0 赞 0 分享

CSS3 实用技巧:实现黑白图像效果示例代码

本文为大家详细介绍下CSS3实现黑白图像效果的具体思路及代码,感兴趣的朋友可以看下截图,希望对大家有所帮助
收藏 0 赞 0 分享

IE.JS解决IE兼容性问题方法汇总

正如标题所言它修复了许多的HTML和CSS问题,并使得透明PNG在IE5、IE6下正确显示,下面为大家介绍下具体针对不同浏览器的调用方法,感兴趣的朋友可以参考下哈
收藏 0 赞 0 分享

实现CSS3中的border-radius(边框圆角)示例代码

本文为大家详细介绍下如何实现CSS3中的border-radius(圆角),具体代码如下,感兴趣的朋友可以参考下哈,希望对大家有所帮助
收藏 0 赞 0 分享

CSS line-height行高上下居中垂直居中样式属性

我们在css编写中需要对大篇幅的内容显示的更好看,有些间隔,不要在挤在一起难看,就可以使用Line-Height属性进行控制
收藏 0 赞 0 分享

CSS Float布局过程与老生常谈的三栏布局

这篇文章就是总结一下怎样使用CSS中的float属性进行布局,其实网上有很多讨论这个话题的文章了,但我觉得都没说到点子上。那就来老生常谈一次吧,CSS之Float布局
收藏 0 赞 0 分享

邮箱css加载失败怎么办 网站css加载异常原因分析

造成css加载失败的原因有很多,脚本之家也遇到过,这可能跟你代码出错,浏览器、路径、编码等等都是有关联的。所以在具体情况具体分析。下面看看具体的方案
收藏 0 赞 0 分享

CSS控制样式的三种方式(优先级对比验证)

大家都知道,CSS的中文名叫做层叠样式表,而CSS在控制样式的时候,有三种引入方式,这里简单介绍下CSS控制样式的三种方式
收藏 0 赞 0 分享

meta http-equiv="X-UA-Compatible" content="IE=7" 意思是将IE8用IE7进行渲染

X-UA-Compatible是针对ie8新加的一个设置,对于ie8之外的浏览器是不识别的,这个区别与content=
收藏 0 赞 0 分享

Discuz7.2 IE9兼容性写法 杜工完全修补方案

因为Discuz7.2在IE9浏览器中有一系列的问题,所有要在以后的开发中考虑到ie9浏览器的一些问题了,这里简单介绍下,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多