CSS3媒体查询入门,制作自己的响应式导航

现今每天都有更多的手机和平板电脑问市。消费者能够拥有可想象到的各种规格和形状的设备,但是网站开发人员却面临一个挑战:如何使他们的网站在传统浏览器、手机和平板电脑浏览器上有很好的效果,如何在各种大小的屏幕上提供一流的用户体验,答案是:采用响应式设计。响应式设计可以随所显示的屏幕大小而改变。实现响应式设计的主要方法是使用 CSS 媒体查询。--摘自IBMdeveloperworks

相信大家很多人都了解Bootsrap这个响应式框架,简单来说,该框架根据不同的分辨率提供非常友好的浏览体验,里面的核心就是媒体查询@media。

如何使用?

@media (min-width:800px) { ... }

这是一条基本的媒体查询语句,@media可以看成 if

如果@media后面的条件满足,则执行后面的花括号的语句。

简单尝试

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<style>
    *{
        margin: 0;
        padding: 0;
    }
    .header{
        background-color: red;
        width: 100%;
        height: 40px;
    }
    @media ( min-width: 500px) {
        .header{
            background-color: blue;
        }
    }
</style>
<body>

<div class="header"></div>

</body>
</html>
@media ( min-width: 500px) 这里开始判断当前的分辨率,如果最小分辨率为500px(分辨率在500px以上)则.header 的背景色变为蓝色,相当于重写了background-color属性。请多尝试其他属性如width,block等等。

制作响应式导航

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>媒体查询</title>
    <script rel="script" src="jquery.min.js"></script>
    <script>
        $(document).ready(function () {
            $("a").click(function(){
                $("li").toggle();
            })
        })
    </script>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        #header{
            width: 100%;
            background-color: #4db14d;
            height: 40px;
        }
        ul{
        }
        li{
            float: left;
            list-style: none;
            width: 80px;
            display: block;
            padding-top: 10px;
            color: #fff;
            background-color: #4db14d;
            text-align: center;
        }
        a{
            padding-top: 10px;
            padding-bottom: 10px;
            color: #fff;
            display: none;
            width: 100%;
            text-align: center;
        }
        @media ( max-width: 520px ) {
            li{
                width: 100%;
                border-top: 1px solid #1b961b;
                padding-bottom: 10px;
                display: none;
            }
            a{
                display: block;
            }
        }
    </style>
</head>
<body>

<div id="header">
    <a>Fuck</a>
    <ul>
        <li>测试1</li>
        <li>测试2</li>
        <li>测试3</li>
        <li>测试4</li>
        <li>测试5</li>
        <li>测试6</li>
    </ul>
</div>
</body>
</html>

在导航中,除了菜单以外肯定还有展开菜单的图标(低分辨率下),所以我们制作的时候可以先写上,并将它隐藏。

我们做的仅是判断分辨率,如果分辨率小余某个值,则隐藏菜单,使用菜单突变将它显示。

注意的是我这里将小分辨率下,菜单的宽度设置到了100%,方便使用体验。可以尝试更好地方法。

然后使用jQuery显示/隐藏菜单or菜单图标

除此之外,还可以有更多的判断,如:分辨率在800-1200之间(min-width:800px)and (max-width:1200px)

@media (min-width:800px) and (max-width:1200px) { ... }

更多关于媒体查询请点击查看

时间: 2024-10-05 23:10:58

CSS3媒体查询入门,制作自己的响应式导航的相关文章

关于css3媒体查询和响应式布局

响应式设计 响应式设计可根据所显示的屏幕大小而改变, 它呈现的每个屏幕看起来并不相同.按照可用的屏幕属性,响应式设计提供了 UI 的最佳效果. 例如,如果网站布局上有一个占据 25% 的屏幕宽度的侧边栏,那么该侧边栏在不同大小的屏幕上的呈现是不同的.该侧边栏在较大的桌面监控器上是宽屏的,在较小的 智能手机屏幕上是极其窄的.而在最高的或最小的屏幕上,侧边栏很可能不再是可用的 UI 组件. 有了媒体查询,您就可以编写 CSS,自动将设计更改为提供不同屏幕大小的最佳 UI 体验. 媒体查询 从 CSS

CSS3+Js制作的一款响应式导航条

今天制作了一个响应式导航条,能够自动随着不同的屏幕分辨率或浏览器窗口大小的不同而改变导航条的样式,这里主要用到的就是CSS3的Media Query.具体可以查看浅谈响应式布局这篇文章,这里就不花费大量的篇幅介绍了,主要看一下这个导航条该怎么做. 另外需要提到的是,ie6-ie8是不支持CSS3的Media Query的,因此对于ie6-ie8我们需要特殊处理,就让他们保持默认样式,这对于布局及样式上都要考虑到这一点. 首先看一下布局这一块,html代码如下: 1 2 3 4 5 6 7 8 9

iPhone6的CSS3媒体查询

@media only screen and (min-device-width: 375px) and (max-device-width: 667px) and (orientation : portrait) { /*iPhone 6 Portrait*/ } @media only screen and (min-device-width: 375px) and (max-device-width: 667px) and (orientation : landscape) { /*iPh

CSS3 媒体查询移动设备尺寸 Media Queries for Standard Devices (包括 苹果手表 apple watch)

/* ----------- iPhone 4 and 4S ----------- */ /* Portrait and Landscape */ @media only screen and (min-device-width: 320px) and (max-device-width: 480px) and (-webkit-min-device-pixel-ratio: 2) { } /* Portrait */ @media only screen and (min-device-wi

iPhone的CSS3媒体查询

iPhone的CSS3媒体查询: 各版本的iPhone媒体查询是根据其分辨率和一些CSS3媒体查询的特性来实现媒体查询的...详见下: iPhone6的媒体查询: @media only screen and (min-device-width: 375px) and (max-device-width: 667px) and (orientation : portrait) { /*iPhone 6 Portrait*/ } @media only screen and (min-device

CSS3实战开发: 弹性盒模型之响应式WEB界面设计

各位网友大家好,如果你已经阅读过我先前写的关于CSS3弹性盒模型的实例演示,相信你对CSS3弹性盒模型属性知识点应该已经有了一个非常深刻的映像. 从本篇文章开始,我将带领大家,手把手地教大家如何来开发一个适合移动端浏览器的弹性盒模型的响应式页面.同时实战开发中的案例代码可以作为你项目中的精简框架了. 当你学习完成<CSS3实战开发: 弹性盒模型之响应式WEB界面设计>这个系列教程之后,相信你对目前比较流行的前端轻量级框架 Bootstrap等会有一个深刻的认识. Bootstrap(弹性流体布

2.制作响应式导航条

制作响应式导航条 一.设置主结构元素 下面开始准备页面内容.打开Project Template 1中的index.html文件,里面目前只有一下基本的内容 我们会添加如下内容完成主结构元素 包含Logo和导航的页头区: 包含页面内容的内容区: 包含版权和社交媒体链接的页脚区: <header role="banner"> <nav role="navigation"> </nav> </header> <mai

如何利用CSS3与jQuery实现响应式导航

在前端开发中,我们常常需要利用CSS3 media queries + jQuery来实现响应式导航,那它的具体实现步骤和方法到底是怎样的呢?一起来看看吧,希望可以帮助大家更好地学习CSS3. 目的: 实现一个响应式导航,当屏幕宽度大于700px时,效果如下: 当屏幕宽度小于700px时,导航变成一个小按钮,点击之后有一个菜单慢慢拉下来: 思路: 1.为了之后在菜单上绑定事件,并且不向DOM中添加多余的节点,在大屏幕中出现的导航和小屏幕中的下拉导航必须是一个. 所以我选择了将导航绝对定位. 2.

一款纯css3实现的响应式导航

之前为大家介绍了好几款响应式导航.今天再给大家带来一款纯css3实现的响应式导航.这款导航还有个响应式的搜索框.废话少说,直接上图: 在线预览   源码下载 实现的代码. html代码: <div class="navbar"> <a class="brand" href="#"> <img src="logo.png" /></a> <!--MOBILE--> &l