响应式布局,流体布局,自适应布局,静态布局等等,这是移动设备的飞速发展,前端人员不得不跟上潮流的一个方向。实际上各种设备尺寸,分辨率大都不同,真的适应各种设备依旧是不现实的,首先是浏览器差异化,让我们去hack,现在是终端问题,让我展现出不同的设备不同的样式,折腾来折腾去,终于我们走进了热火朝天的响应式布局,自适应只能算是响应式布局的一个子集吧,对于流体个栅格后面会再次提到,有兴趣可以关注。

首先讲讲实现原理吧,css3的媒体查询功能的确帮了我们很大一个忙,@media query,它的出现也带出了响应式布局的一连串东西,经典的是来自国外伟人的布局这里就不多阐述,我待会儿会提出一个实际的例子,本人测试过有效。@media query它可以检查我们的设备的分辨率,但是我们往往是设置一个区间,这样一个区间一个区间的去布局代码,让我们在手机端打开是一个效果,pc端一个效果,平板一种样式。

注意一点,手机网站不等于在手机端打开网页,这是两个不同的概念。手机网站我一直是使用jquery mobile 实现的前端设计,话不多说看代码:

html:

<div class="navBox">
<div class="nav">
<ul>
<li class="current"><a href="#" target="_blank">首页<small>home</small></a></li>
<li><a href="#" target="_blank">电影<small>movie</small></a></li>
<li><a href="#" target="_blank">电视剧<small>tv play</small></a></li>
<li><a href="#" target="_blank">动漫<small>comic</small></a></li>
<li><a href="#" target="_blank">综艺<small>variety</small></a></li>
<li><a href="#" target="_blank">纪录片<small>documentary</small></a></li>
<li><a href="#" target="_blank">公开课<small>public resourse</small></a></li>
</ul>
<!--match IE9,IE10 or not ie-->
<!--[if (get IE 8) | ! (IE)]><!-->
<h1 class="title"><a href="#">腾讯视频</a><span class="btn"><img src="data:image/btn.png" width="34" height="34" alt=""/></span></h1>
<!--<![endif]-->
</div>

这里识别了一次ie,但是我并没有设置其IE6-8的样式,就测试玩玩。

css:

@charset "utf-8";
/* CSS Document */
*{
padding:0px;
margin:0px;
border:0px;
}
.navBox {
width:100%;
height:40px;
background:#333;
}
.nav{
margin:0 auto;
border:0px solid #ccc;
}
.nav ul {
list-style:none;
width:auto;
}
.nav ul li {
height:40px;
text-align:center;
}
.nav ul li a {
display:block;
font-size:16px;
text-decoration:none;
line-height:39px;
color:rgba(103,204,247,1.00);
}
@media screen and (min-width: 1000px) {
.nav{
width:1000px;
height:40px;
}
.nav ul li {
float:left;
width:auto;
min-width:120px;
margin-left:10px;
}
.nav ul li.current {
background:#f60;
}
.nav ul li:hover a {
background-color:#f60;
}
.nav ul li.current:hover a {
color:#fff;
}
.nav .title {
display:none;
}
}
@media screen and (min-width: 640px) and (max-width: 1000px) {
.nav {
width:auto;
height:40px;
}
.nav ul li {
float:left;
width:14%;
min-width:80px;
font-size:12px;
line-height:20px;
}
.nav ul li.current {
background-color:#f60;
}
.nav ul li:hover a {
background-color:#f60;
}
.nav ul li.current:hover a {
color:#fff;
}
small {
display:none;
}
.nav .title {
display:none;
}
}
@media screen and (max-width: 640px) {
.navBox {
height:auto;
background:#444;
}
.nav {
width:auto;
height:auto;
}
.nav ul {
position:relative;
display:none;
}
.nav ul li {
width:100%;
min-width:100px;
background:#333;
}
.nav ul li a:active,
.nav ul li a:hover {
background-color:#f60;
transition:all ease-in 0.3s;
}
.nav ul li.current{
background-color:#f60;
}
.nav .title {
position:relative;
width:100%;
height:40px;
border-top:1px solid #444;
background:#333;
text-align:center;
letter-spacing:1px;
font-size:24px;
line-height:40px;
}
.nav .title a {
color:#f60;
text-decoration:none;
}
.nav .title .btn {
position:absolute;
right:10px;
top:0px;
width:34px;
cursor:pointer;
}
}

我把屏幕区间设置成三个不同的区间,@media screen and (min-width: 1000px){//放置像素1000+屏幕的css样式渲染网页,这里是做的导航菜单}

@media screen and (min-width: 640px) and (max-width: 1000px){//这里放置屏幕像素640到1000的css样式}

@media screen and (max-width: 400px) {//这里放置小于等于640像素的样式}

三个区间可以按照你的兴趣或者要求设置成不同的样式,不过大体样式建议相同,不然用户一打开了发现傻缺了,咋个不是这个网站了哇,于是果断关闭那就尴尬了。

jquery代码:

<script type="text/javascript">
$(document).ready(function (){
$(".btn").on("click",function(){
$(".nav").find("ul").slideToggle(400);
});
})
</script>

脚本代码很简单了,我就简单不去分辨他在那个区间了,因为他只有在屏幕像素小于640像素的时候才会出现并且被看到,其他的情况我都将其display隐藏了,完成这一步就可以看到我点击旁边的缩放标签弹出UL标签,下滑上拉的效果,总体来说还是非常简单的,下面附上三张对应不同尺寸的效果图。

像素位于1000+的时候:

像素位于640到1000时:

像素小于640时:

点击下拉收起:

就完成了这次的导航响应式布局操作,后面还会分享更多内容,在这里我个人觉得dwcc2015+版本的软件对于前端来说有一定的好处,就是可以调整屏幕像素进行布局,当然了其中的bootstrap组件也可以完成相应的内容啦,而且还有精致的魔板提供给你,当然了纯属个人爱好,有兴趣的朋友可以下载去玩玩。

后面我还会分享更多,包括html5的canvas动画,和transform的关键帧动画,以实际例子来分享吧,也是自己在用的比如什么点水动画,地图效果。

新人一枚希望和大家一起学习交流啦。

html5+css3+jquery完成响应式布局的更多相关文章

  1. HTML5+CSS3实现的响应式垂直时间轴

    <!DOCTYPE HTML><html><head><meta charset="utf-8"><meta name=&qu ...

  2. 超棒的HTML5/CSS3单页面响应式模板(支持Bootstrap)

    在线演示 使用Bootstrap实现的响应式单页面模板. 桌面效果: 移动设备效果: 阅读全文:超棒的HTML5/CSS3单页面响应式模板(支持Bootstrap)

  3. Css3中的响应式布局的应用

    Media Queries直译过来就是“媒体查询”,在我们平时的Web页面中head部分常看到这样的一段代码: <link href="css/reset.css" rel= ...

  4. css3 @media 实现响应式布局

    使用css3的@media,可以实现针对不同媒体.不同分辨率的响应式布局. 方法1:根据不同分辨率使用不同css文件 <link rel="stylesheet" media ...

  5. java springmvc +spring+ mybaits 模块化开发框架 HTML5+css3.0+bootstrap响应式开发界面

    需要源码,请加QQ:858-048-581 系统模块 1.   权限管理:点开二级菜单进入三级菜单显示 角色(基础权限)和按钮权限       角色(基础权限): 分角色组和角色,独立分配菜单权限和增 ...

  6. CSS3 Media Queries(响应式布局可以让你定制不同的分辨率和设备)

    点评:Media Queries这功能是非常强大的,他可以让你定制不同的分辨率和设备,并在不改变内容的情况下,让你制作的web页面在不同的分辨率和设备下都能显示正常,并且不会因此而丢失样式   Med ...

  7. html5 + css3 + jQuery + 响应式布局设计

    1. [代码][HTML]代码     <!DOCTYPE html><html dir="ltr" lang="zh-CN">< ...

  8. html5/css3响应式布局介绍及设计流程

    html5/css3响应式布局介绍 html5/css3响应式布局介绍及设计流程,利用css3的media query媒体查询功能.移动终端一般都是对css3支持比较好的高级浏览器不需要考虑响应式布局 ...

  9. CSS3与页面布局学习笔记(四)——页面布局大全(负边距、双飞翼、多栏、弹性、流式、瀑布流、响应式布局)

    一.负边距与浮动布局 1.1.负边距 所谓的负边距就是margin取负值的情况,如margin:-100px,margin:-100%.当一个元素与另一个元素margin取负值时将拉近距离.常见的功能 ...

随机推荐

  1. Python绘图

    1.二维绘图 a. 一维数据集 用 Numpy ndarray 作为数据传入 ply 1. import numpy as np import matplotlib as mpl import mat ...

  2. C#高级编程笔记 2016年10月26日 MVC入门 Controller

    1.MVC的定义:   Models: Classes that represent the data of the application  and that use validation logi ...

  3. Linux kernel4.4.12 添加make menuconfig 可选项

    Linux kernel 源码添加可选项 闲来无事,顺便记录一篇在Linux kernel make menuconfig 内添加一个可选项. 说不定将来就要用到这个东西呢. linux kernel ...

  4. ms08-067漏洞--初识渗透测试--想必很多初学者都会遇到我文中提及的各种问题

    最近读了一本书--<<渗透测试实践指南>>,测试了书中的一些例子后,开始拿ms08-067这个经典的严重漏洞练手,实践当中遇到诸多问题,好在一一解决了,获益匪浅. 在谷歌搜索的 ...

  5. php的memcache安装,在window10下面

    1.memcached-win对应得安装包 2.解压,可以放到任意目录,以管理员身份打开cmd 3.在安装的目录下面,执行如下命令 memcached.exe -d install 安装 Memcac ...

  6. ubuntu-docker-consul-swarm-shipyard-portainer

    --- env --- root@node1:~# cat /etc/issueUbuntu 12.04.4 LTS \n \l root@node1:~# docker -vDocker versi ...

  7. CentOS系统中基于Apache+php+mysql的许愿墙网站的搭建

    1.首先,我们需要两台虚拟机(CentOS7,Linux文本). 2.给两台虚拟机配置网络环境分别为桥接模式 CentOS7 ip为192.168.100.139.24,linux文本ip为192.1 ...

  8. C# Stream

    转载:C# 温故而知新:Stream篇(一.二) http://www.cnblogs.com/JimmyZheng/archive/2012/03/17/2402814.html#no2 http: ...

  9. Web前端之jQuery 的10大操作技巧

    不管是做什么事情,人们习惯在工作中去找方法.找技巧,来帮助提高效率,在软件开发中更是如此.jQuery作为前端开发必学技术之一,在使用中也有各种各样的小技巧,今天小编为大家分享10条必知会的技巧,希望 ...

  10. Html 5 Web Storage

    HTML5 中使用Web Storage 技术进行本地存储,能够在Web 客户端进行数据存储.WebStorage 曾今属于HTML5的规范,目前已经被独立出来形成单独的规范体系.简单来说使用Web本 ...