网站响应式布局/网站自适应问题+rem、em、px、pt及网站字体大小设配
- Bootstrap 网格系统;
- Bootstrap CSS;
- Bootstrap 组件及插件;
一、什么是响应式布局?
响应式布局是Ethan Marcotte在2010年5月份提出的一个概念,简而言之,就是一个网站能够兼容多个终端——而不是为每个终端做一个特定的版本。
这个概念是为解决移动互联网浏览而诞生的。响应式布局可以为不同终端的用户提供更加舒适的界面和更好的用户体验,而且随着目前大屏幕移动设备的普及,用大势所趋来形容也不为过。
随着越来越多的设计师采用这个技术,我们不仅看到很多的创新,还看到了一些成形的模式。
二、响应式布局有哪些优点和缺点?
优点:
面对不同分辨率设备灵活性强
能够快捷解决多设备显示适应问题
####缺点:
兼容各种设备工作量大,效率低下;
代码累赘,会出现隐藏无用的元素,加载时间加长;
其实这是一种折衷性质的设计解决方案,多方面因素影响而达不到最佳效果;
一定程度上改变了网站原有的布局结构,会出现用户混淆的情况;
####响应式布局该怎么设计?
/* 超小设备(手机,小于 768px) // Bootstrap 中默认情况下没有媒体查询 /
/ 小型设备(平板电脑,768px 起) /@media (min-width: @screen-sm-min) { ... }
/ 中型设备(台式电脑,992px 起) /@media (min-width: @screen-md-min) { ... }
/ 大型设备(大台式电脑,1200px 起) */@media (min-width: @screen-lg-min) { ... }
Bootstrap 网格系统:
一个响应式的、移动设备优先的、不固定的网格系统,可以随着设备或视口大小的增加而适当地扩展最多 12 列.
<!-- 新 Bootstrap 核心 CSS 文件 -->
<link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css">
<!-- 可选的Bootstrap主题文件(一般不用引入) -->
<link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap-theme.min.css">
<!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
<script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>
<!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script src="http://cdn.bootcss.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
<div class="container">
<div class="row">
<div class="col-md-1 col-sm-1"></div>
<div class="col-md-10 col-sm-10">
<div class="col-md-4 col-sm-4"></div>
<div class="col-md-4 col-sm-4"></div>
<div class="col-md-4 col-sm-4"></div>
</div>
<div class="col-md-1 col-sm-1"></div>
</div>
<div class="row">...</div>
</div>
| 超小设备收集( | 小型设备平板电脑(≥768px) | 中型设备台式电脑(≥992px) | 大型设备台式电脑(≥1200px) |
|---|---|---|---|
| .col-xs-num | .col-sm-num | .col-md-num | .col-lg-num |
|
列排序:.col-md-push-num || 偏移列:.col-md-offset-num || 嵌套列:.col-md-num 内嵌套.col-md-num12 || 可见\隐藏:.visible-xs-bloc || 打印机隐藏.hidden-print |
|||
媒体查询(自适应):
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
width = device-width:宽度等于当前设备的宽度
initial-scale: 初始的缩放比例(默认设置为1.0)
minimum-scale:允许用户缩放到的最小比例(默认设置为1.0)
maximum-scale:允许用户缩放到的最大比例(默认设置为1.0)
user-scalable:用户是否可以手动缩放(默认设置为no,因为我们不希望用户放大缩小页面)
不同大小显示屏(响应式):
@media only screen and (max-width:768px){..css样式..}
@media (max-width: @screen-xs-max) {..css样式.. }//最大宽度时
@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { ..css样式..}//最小和最大宽度之间时
rem、em、px、pt及网站字体大小设配
- rem:相对的只是HTML根元素字体尺寸;
- em:相对于当前对象内文本的字体尺寸(值不是固定且继承父级元素的字体大小);
- px像素(Pixel):对于显示器屏幕分辨率而言的;
- pt:point,是印刷行业常用单位,等于1/72英寸100%=100pt。
- %:类似em。
使用 rem 实现 适配各种屏幕布局
方法一:用JS来动态的设置html的font-size:
(function (doc, win) {
/*初始化 默认宽度、字体、最小最大比例*/
var init_w = 640,
init_fs = 10,
max_scale = 1,
min_scale = 0.5;
var docEl = doc.documentElement,
resizeEvt = ‘orientationchange‘ in window ? ‘orientationchange‘ : ‘resize‘,
recalc = function () {
var clientWidth = docEl.clientWidth;
if (!clientWidth) return;
var percentage = clientWidth / init_w;
percentage = percentage > max_scale?max_scale: percentage <min_scale?min_scale: percentage ;
docEl.style.fontSize = init_fs * percentage + ‘px‘;
};
if (!doc.addEventListener) return;
win.addEventListener(resizeEvt, recalc, false);
doc.addEventListener(‘DOMContentLoaded‘, recalc, false);
})(document, window);
另外一种利用css3中的 媒体查询来根据不同的屏幕大小来写定html的font-size:
html {font-size : 10px;}
@media only screen and (min-width: 401px){
html {font-size: 6px !important;}
}
@media only screen and (min-width: 428px){
html {font-size: 6.5px !important;}
}
@media only screen and (min-width: 481px){
html {font-size: 7.25px !important; }
}
@media only screen and (min-width: 569px){
html {font-size: 8.625px !important; }
}
@media only screen and (min-width: 641px){
html {font-size: 10px !important; }
}
注意:
谷歌下css设置字体最小为12px,所以HTML根元素font-size字体尺寸基数尽量大:25px 40px 50px 75px 100px
<style>
p{font-size:10px;-webkit-transform:scale(0.8);}
/*这里的数字0.8,... 0.1是缩放比例,可以根据情况变化。*/
</style>
<p>字体10px</p>
纯属个人观点,仅供参考!
网站响应式布局/网站自适应问题+rem、em、px、pt及网站字体大小设配的更多相关文章
- css3媒体查询实现网站响应式布局
最常见的办法就是基类(最常用的网站布局)+扩展类(几种不同的网站布局类)来实现不同的布局. <!–使用说明:网站基本布局,使用class="layout";使用ipad访问时 ...
- 响应式布局中为什么要使用em设置字体大小而不用px
px像素(Pixel).相对长度单位.像素px是相对于不同设备显示器屏幕分辨率(pad/phone/pc)而言的.(引自CSS2.0手册) 1em指的是一个字体的大小,它会继承父级元素的字体大小,因此 ...
- rem、em、px、pt及网站字体大小设配
rem:相对的只是HTML根元素字体尺寸; em:相对于当前对象内文本的字体尺寸(值不是固定且继承父级元素的字体大小); px像素(Pixel):对于显示器屏幕分辨率而言的; pt:point,是印刷 ...
- [移动端WEB] 移动端网站响应式布局之"rem",CSS3 rem使用方式
(function(doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientationchange' in window ? ' ...
- web前端响应式布局,自适应全部分辨率
写phpd的我. 近期公司要弄个app关键是没有web开发,而我有比較闲,那就扛枪上阵吧. 响应式布局,web端的?php我一直都是用tp框架,对于web首先想到的是bootstrap框架.仅仅是简单 ...
- 响应式布局rem的使用
在如今移动端,响应式布局的时代,用rem作为单位已经是非常普及的一门小技巧了..rem的单位根据html的font-size来进行换算! 1.rem的兼容性: 如下图所示IE9以上就支持了rem这个属 ...
- rem在响应式布局中的应用
rem/em/px/pt的基友关系 px 像素相对长度单位,相对于显示器屏幕分辨率而言 em 相对长度单位,根据其父元素来设置字体大小 pt point,是印刷行业常用单位,等于1/72英寸 rem ...
- html5+css3+jquery完成响应式布局
响应式布局,流体布局,自适应布局,静态布局等等,这是移动设备的飞速发展,前端人员不得不跟上潮流的一个方向.实际上各种设备尺寸,分辨率大都不同,真的适应各种设备依旧是不现实的,首先是浏览器差异化,让我们 ...
- css实现响应式布局的相关内容
所以我就在做自适应的时候查了一些资料 首先我发现一个问题:有响应式布局和自适应布局两种布局效果 简单来说,响应式布局就是不同的设备无论大小 布局都自动调整大小 页面布局都一样 可以保证无论什么设备 用 ...
随机推荐
- JavaScript高级特性-创建对象的九种方式
1. 对象字面量 通过这种方式创建对象极为简单,将属性名用引号括起来,再将属性名和属性值之间以冒号分隔,各属性名值对之后用逗号隔开,最后一个属性不用逗号隔开,所有的属性名值对用大括号括起来,像这样: ...
- apache 访问权限出错,apache selinux 权限问题, (13) Permission Denied
今天在使用 httpd 做文件服务器的时候,发现 png 图像没有打开,但是原本www/html 文件夹内部的文件就可以打开.后来猜测是selinux 的问题,之前一直想写一篇关于selinux 的博 ...
- 路由交换04-----STP
路由交换-----STP STP协议(生成树协议)逻辑上断开环路,防止二层网络的广播风暴的产生. 为什么需要STP协议? 假设有这样一个拓扑: 现在PC1ping网关192.168.1.3,而这个网关 ...
- 随机生成&部门匹配
整体概况 1.完整程序概况 (1)程序整体构架 (2)生成程序模型 (3)匹配算法模型 (4)生成结果评估 (5)命名规范 (6)先期和后期分工 2.心路历程与对全新的java认识(心得体会篇) (1 ...
- iframe无刷新跨域上传文件并获得返回值
原文:http://geeksun.iteye.com/blog/1070607 需求:从S平台上传文件到R平台,上传成功后R平台返回给S平台一个值,S平台是在一个页面弹出的浮窗里上传文件,所以不能用 ...
- Spring AOP的实现研究
1. 背景 在前文Spring IOC容器创建bean过程浅析已经介绍了Spring IOC创建初始化bean的大致过程.现在对Spring的AOP实现机制进行研究分析. 2. 名词与概念 名词 概念 ...
- socket 总结
网络编程之进程:http://www.cnblogs.com/1a2a/p/7428759.html 网络编程之进阶:http://www.cnblogs.com/1a2a/p/7444446.htm ...
- 快速排序 Java实现的快速排序
快速排序 Java实现的快速排序: package xc; import java.util.Arrays; import java.util.Random; /** * * @author dax ...
- js 数组的操作
js数组的操作 用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多,自以为js高手的自己居然无从下手,一 ...
- jvm内存模型中-栈,方法区,程序计数器是线程安全的
文章转自 https://www.cnblogs.com/myna/p/7567889.html 引文 JDK7及之前版本的方法区(Method Area)和Java堆一样,是各个线程共享的内存区域 ...