网站响应式布局/网站自适应问题+rem、em、px、pt及网站字体大小设配


  • Bootstrap 网格系统;
  • Bootstrap CSS
  • Bootstrap 组件及插件

1、什么是响应式布局?

      响应式布局是Ethan Marcotte在2010年5月份提出的一个概念,简而言之,就是一个网站可以兼容多个终端——而不是为每一个终端作一个特定的版本。css

      这个概念是为解决移动互联网浏览而诞生的。响应式布局能够为不一样终端的用户提供更加温馨的界面和更好的用户体验,并且随着目前大屏幕移动设备的普及,用大势所趋来形容也不为过。
 随着愈来愈多的设计师采用这个技术,咱们不只看到不少的创新,还看到了一些成形的模式。html

2、响应式布局有哪些优势和缺点?

优势:

面对不一样分辨率设备灵活性强
可以快捷解决多设备显示适应问题
 ####缺点:java

兼容各类设备工做量大,效率低下;jquery

代码累赘,会出现隐藏无用的元素,加载时间加长;css3

其实这是一种折衷性质的设计解决方案,多方面因素影响而达不到最佳效果;web

必定程度上改变了网站原有的布局结构,会出现用户混淆的状况;
 
 ####响应式布局该怎么设计?
/* 超小设备(手机,小于 768px) // Bootstrap 中默认状况下没有媒体查询 /
/
小型设备(平板电脑,768px 起) /@media (min-width: @screen-sm-min) { ... }
/
中型设备(台式电脑,992px 起) /@media (min-width: @screen-md-min) { ... }
/
大型设备(大台式电脑,1200px 起) */@media (min-width: @screen-lg-min) { ... }bootstrap

Bootstrap 网格系统:

一个响应式的、移动设备优先的、不固定的网格系统,能够随着设备或视口大小的增长而适当地扩展最多 12 列.api

<!-- 新 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) 小型设备平板电脑(≥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:宽度等于当前设备的宽度ide

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样式..}//最小和最大宽度之间时

boostrap可视化布局工具 在线

屏幕适配原理及实现

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>

px rem em 在线换算工具


纯属我的观点,仅供参考!

相关文章
相关标签/搜索