Responsive自适应网页设计与ResponsiveColumn自适应列实例
Responsive Web Design - 自适应网页设计概念
自适应网页设计是指自动识别屏幕宽度、并做出相应调整的网页设计。包括两方面:
- 页面可以根据不同终端的屏幕宽度自动调整,兼容电脑、手机等设备
- 根据浏览器窗口的大小自动调整。
“自适应网页设计”(Responsive Web Design)的概念是2010由Ethan Marcotte提出。
自适应网页在html中的实现
通过HTML中实现自适应的页面主要是使用HTML及CSS样式实现,具体包括
添加viewport的元信息标签
<meta name="viewport" content="width=device-width, initial-scale=1" />
对以上的标签说明如下:
- viewport - 指的是网页默认的宽度和高度
- width=device-width - 网页宽度默认等于屏幕宽度
- initial-scale=1 ,原始缩放比例,1表示网页初始大小占屏幕面积的100%
使用相对宽度
如果是绝对宽度,无法变化就谈不上自动适应了, 所以不能使用 px单位定义宽度。
可以使用百分比或是auto。
width: xx%;
width:auto;
使用相对字体大小
使用相对大小(em),不使用绝对大小(px)。
div {font: normal 100% Helvetica, Arial, sans-serif;}
字体大小是页面默认大小的100%,即16像素
{font-size: 1.5em;
}
h1的大小是默认大小的1.5倍,即24像素(24/16=1.5)
流动布局
使用CSS 的float来进行布局。
.main {float: right;width: 70%;?
}
.left {float: left;width: 22%;
}
根据屏幕大小加载不同的CSS文件
对应在HTML文件中导入CSS的两种不同方式,可以在标签导入不同CSS文件,也可以在CSS文件中直接定义。使用的都是CSS3 的Media特性。
在CSS导入标签中,使用media属性来进行选择, 比如:
<link rel="stylesheet" type="text/css" media="screen and (max-device-width: 500px)" href="tinyScreen.css" />
屏幕小于500像素(max-device-width: 500px)则加载这个CSS文件。
也可以在CSS文件中使用 @import
@import url("tinyScreen.css") screen and (max-device-width: 400px);
在CSS文件中定义不同频宽的样式
也可以根据屏幕宽度定义不同的CSS
@media screen and (max-device-width: 500px) {.column {float: none;width:auto;}#leftbar {display:none;}}
responsive布局原则与技巧
1,尽量避免使用无用的div
2, 不要使用内联元素
3, 尽量少用js
4, 不要使用没用的绝对定位,和浮动;
5,放弃100%设置
ResponsiveColumn自适应列实例
没有自适应的CSS样式
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
.grid4 {width: 960px;margin: 20px auto;
}.grid4 div {width: 225px;background: #ccc;margin: 10px;float: left;/*font style*/font-size: 50px;font-weight: bold;color: orange;text-align: center;line-height: 100px;
}.grid4 .first {margin-left: 0px;
}.grid4 .last {margin-right: 0px;
}
</style>
</head>
<body><div class="grid4"><!-- 第一行 --><div class="first">Cell1</div><div>Cell2</div><div>Cell3</div><div class="last">Cell4</div><!-- 第二行 --><div class="first">Cell5</div><div>Cell6</div><div>Cell7</div><div class="last">Cell8</div><!-- 第三行 --><div class="first">Cell9</div><div>Cell10</div><div>Cell11</div><div class="last">Cell12</div></div>
</body>
</html>
效果如下:
自适应的CSS样式
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
.col {background: #ccc;float: left;margin-left: 3.2%;margin-bottom: 30px;/*font style*/font-size: 50px;font-weight: bold;color: orange;text-align: center;line-height: 100px;
}/* grid4 col */
.grid4 .col {width: 20%;
}@media screen and (max-width: 740px) {.grid4 .col {width: 31.2%;}.grid4 .col:nth-of-type(4n+1) {margin-left: 3.2%;clear: none;}.grid4 .col:nth-of-type(3n+1) {margin-left: 0;clear: left;}
}@media screen and (max-width: 600px) {/* change grid4 to 2-column */.grid4 .col {width: 48.4%;}.grid4 .col:nth-of-type(3n+1) {margin-left: 3.2%;clear: none;}.grid4 .col:nth-of-type(2n+1) {margin-left: 0;clear: left;}
}
</style>
</head>
<body><div class="grid4"><!-- 第一行 --><div class="col">Cell1</div><div class="col">Cell2</div><div class="col">Cell3</div><div class="col">Cell4</div><!-- 第二行 --><div class="col">Cell5</div><div class="col">Cell6</div><div class="col">Cell7</div><div class="col">Cell8</div><!-- 第三行 --><div class="col">Cell9</div><div class="col">Cell10</div><div class="col">Cell11</div><div class="col">Cell12</div></div>
</body>
</html>
屏幕正常时和上面的效果类似。
屏幕变小,每行三个。
屏幕再小,每行2个
代码解析:
使用@media对不同的屏幕宽度定义不同的CSS样式
@media screen and (max-width: 740px)nth-of-type(3n+1)
:nth-of-type(n) 选择器匹配属于父元素的特定类型的第 N 个子元素的每个元素.
类似 div:nth-of-type(3n+1) , 当有12个div元素时,分别对应第1,4、7、10个元素clear属性的作用就是“清除”浮动,clear属性有种类型的值:both|left|right|none;
- clear:left;表示该元素左边不存在浮动元素
- clear:right;表示该元素右边不存在浮动元素
- clear:both;表示该元素两边都不存浮动元素。
- clear:none表示两边允许有浮动元素。
Responsive自适应网页设计与ResponsiveColumn自适应列实例相关推荐
- [转]自适应网页设计(Responsive Web Design)
本文转自:http://www.ruanyifeng.com/blog/2012/05/responsive_web_design.html 作者: 阮一峰 日期: 2012年5月 1日 随着3G的普 ...
- 摘抄 web 经 关于 自适应网页设计(Responsive Web Design)
一."自适应网页设计"的概念 2010年,Ethan Marcotte提出了"自适应网页设计"(Responsive Web Design)这个名词,指可以自动 ...
- 自适应网页设计/响应式Web设计 (Responsive Web Design)
随着3G的普及,越来越多的人使用手机上网. 移动设备正超过桌面设备,成为访问互联网的最常见终端.于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页? 手机的屏幕比较小,宽度通 ...
- 自适应网页设计(Responsive Web Design)响应式设计
随着3G的普及,越来越多的人使用手机上网. 移动设备正超过桌面设备,成为访问互联网的最常见终端.于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页? 手机的屏幕比较小,宽度通 ...
- 自适应网页设计(Responsive Web Design)(转)
随着3G的普及,越来越多的人使用手机上网. 移动设备正超过桌面设备,成为访问互联网的最常见终端.于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页? 手机的屏幕比较小,宽度通 ...
- 自适应网页设计(Responsive Web Design)别名(响应式web设计、响应式布局)
随着3G的普及,越来越多的人使用手机上网. 移动设备正超过桌面设备,成为访问互联网的最常见终端.于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页? 手机的屏幕比较小,宽度通 ...
- 自适应网页设计(Responsive Web Design)
随着3G的普及,越来越多的人使用手机上网. 移动设备正超过桌面设备,成为访问互联网的最常见终端.于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页? 手机的屏幕比较小,宽度通 ...
- (转)自适应网页设计(或称为响应式web设计)(Responsive Web Design)
随着3G的普及,越来越多的人使用手机上网. 移动设备正超过桌面设备,成为访问互联网的最常见终端.于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页? 手机的屏幕比较小,宽度通 ...
- 自适应网页设计(Responsive Web Design)转自阮一峰
二.允许网页宽度自动调整 "自适应网页设计"到底是怎么做到的?其实并不难. 首先,在网页代码的头部,加入一行viewport元标签. <meta name="vie ...
最新文章
- 创建BDC域控制器时,提示“出站复制验证失败。在复制源域控制器上未启用出站复制”的解决办法...
- table中tr使用toggle不好,选择换一张方式
- 在C#程序中实现插件架构
- 关于父窗口获取跨域iframe子窗口中的元素
- (4)pyspark---dataframe清理
- 个人的web开发心得(八)----------非常适合入门新手,都是常识
- 数据分析中的统计概率_了解统计和概率:成为专家数据科学家
- zabbix内网安装部署_zabbix2.4.8升级3.0.31操作部署记录
- matplotlib动画入门(1):基本概念
- 浅谈win10修复系统文件的方法
- python 安卓库_Android高级面试题资料(持续更新)
- APP安全——反编译分析(反编译、再编译、签名)
- 18款口碑爆棚手机浏览器,被一网打尽了
- 寄人东篱下,愤然见南山
- 数据比赛资料(杂合)
- 达人评测 r7 7730u和i5 12500h差距 锐龙r77730u和酷睿i512500h对比
- AMD XILINX宣布2023年产品涨价8%
- 论文摘要部分如何撰写
- Linux系统NAT实现机制的升级改进
- taro: 如何使用编译配置中定义的常量defineConstants
热门文章
- React 错误Each child in an array or iterator should have a unique “key” prop
- C++ 中list、vector和deque比较[转]
- Selenium自动化测试IE
- 如何修改wampserver中mysql中字符编码的解决方案
- 算法工程师面试备战笔记9_支持向量机(SVM)中的支持向量是什么意思
- 未定义标识符CV_HAAR_SCALE_IMAGE
- DeepFM: A Factorization-Machine based Neural Network for CTR Prediction
- 为什么BERT在商业环境碰壁?
- c++中queue用法
- 吴恩达深度学习神经网络基础编程作业Building your Deep Neural Network Step by Step