响应式布局和自适应布局详解

响应式布局等于流动网格布局,而自适应布局等于使用固定分割点来进行布局。

自适应布局给了你更多设计的空间,因为你只用考虑几种不同的状态。而在响应式布局中你却得考虑上百种不同的状态。虽然绝大部分状态差异较小,但仍然也算做差异。它使得把握设计最终效果变得更难,同样让响应式布局更加的难以测试和预测。但同时说难,这也算是响应式布局美的所在。在考虑到表层级别不确定因素的过程中,你也会因此更好的掌握一些基础知识。当然,要做到精确到像素级别的去预测设943*684像素视区里的样子是很难的,但是你至少可以很轻松的确定它是能够正常工作的,因为页面的基本特性和布局结构都是根据语义结构来部署的。

响应式布局概念

Responsive design,意在实现不同屏幕分辨率的终端上浏览网页的不同展示方式。通过响应式设计能使网站在手机和平板电脑上有更好的浏览阅读体验。

经过不停地学习和实践,如今总结响应式设计的方法和注意点。其实很简单。

响应式设计的步骤

1. 设置 Meta 标签

大多数移动浏览器将HTML页面放大为宽的视图(viewport)以符合屏幕分辨率。你可以使用视图的meta标签来进行重置。下面的视图标签告诉浏览器,使用设备的宽度作为视图宽度并禁止初始的缩放。在标签里加入这个meta标签。

[1](user-scalable = no 属性能够解决 iPad 切换横屏之后触摸才能回到具体尺寸的问题。 )

3. 通过媒介查询来设置样式 Media Queries

Media Queries 是响应式设计的核心。

它根据条件告诉浏览器如何为指定视图宽度渲染页面。假如一个终端的分辨率小于 980px,那么可以这样写:

@media screen and (max-width: 980px) {  #head { … }  #content { … }  #footer { … }}

这里的样式就会覆盖上面已经定义好的样式。

4. 设置多种试图宽度

假如我们要设定兼容 iPad 和 iphone 的视图,那么可以这样设置:

/** iPad **/@media only screen and (min-width: 768px) and (max-width: 1024px) {}/** iPhone **/@media only screen and (min-width: 320px) and (max-width: 767px) {}

恩,差不多就这样的一个原理。

一些注意的

1. 宽度需要使用百分比

例如这样:

#head { width: 100% }#content { width: 50%; }

2. 处理图片缩放的方法

  • 简单的解决方法可以使用百分比,但这样不友好,会放大或者缩小图片。那么可以尝试给图片指定的最大宽度为百分比。假如图片超过了,就缩小。假如图片小了,就原尺寸输出。

img { width: auto; max-width: 100%; }
  • ::before::after伪元素 +content 属性来动态显示一些内容或者做其它很酷的事情,在 css3 中,任何元素都可以使用 content 属性了,这个方法就是结合 css3 的 attr 属性和 HTML 自定义属性的功能: HTML 结构:

     src-600px="image-600px.jpg"     src-800px="image-800px.jpg"     >

CSS 控制:

@media (min-device-width:600px) {    img[src-600px] {        content: attr(src-600px, url);    }}@media (min-device-width:800px) {    img[src-800px] {        content: attr(src-800px, url);    }}

3. 其他属性

例如 pre ,iframevideo 等,都需要和img一样控制好宽度。对于table,建议不要增加 padding 属性,低分辨率下使用内容居中:

table th, table td { padding: 0 0; text-align: center; }以上内容和代码来自:掌心,感谢,欢迎查看我之前做过的响应式设计:查看演示

更多资源

Morten Hjerde和他的同事们对2005至2008年市场中的400余种移动设备进行了统计(查看报告),下图展示了大致的统计结果:

打造布局结构

我们可以监测页面布局随着不同的浏览环境而产生的变化,如果它们变的过窄过短或是过宽过长,则通过一个子级样式表来继承主样式表的设定,并专门针对某些布局结构进行样式覆写。我们来看下代码示例:

/* Default styles that will carry to the child style sheet */html,body{background...font...color...}h1,h2,h3{}p, blockquote, pre, code, ol, ul{}/* Structural elements */#wrapper{width: 80%;margin: 0 auto;background: #fff;padding: 20px;}#content{width: 54%;float: left;margin-right: 3%;}#sidebar-left{width: 20%;float: left;margin-right: 3%;}#sidebar-right{width: 20%;float: left;}

下面的代码可以放在子级样式表Mobile.css中,专门针对移动设备进行样式覆写:

#wrapper{width: 90%;}#content{width: 100%;}#sidebar-left{width: 100%;clear: both;/* Additional styling for our new layout */border-top: 1px solid #ccc;margin-top: 20px;}#sidebar-right{width: 100%;clear: both;/* Additional styling for our new layout */border-top: 1px solid #ccc;margin-top: 20px;}

大致的视觉效果如下图所示:

图中上半部分是大屏幕设备所显示的完整页面,下面的则是该页面在小屏幕设备的呈现方式。页面HTML代码如下:

Media Queries

Ethan的文章中的“Meet the media query”部分有更多的范例及解释。更有效率的做法是,将多个media queries整合在一个样式表文件中

/* Smartphones (portrait and landscape) ----------- */@media only screenand (min-device-width : 320px)and (max-device-width : 480px) {/* Styles */}/* Smartphones (landscape) ----------- */@media only screenand (min-width : 321px) {/* Styles */}/* Smartphones (portrait) ----------- */@media only screenand (max-width : 320px) {/* Styles */}

链接:https://juejin.im/post/6844904084554645518

声明:文章著作权归作者所有,如有侵权,请联系小编删除

html自适应布局_三分钟学会响应式布局和自适应布局相关推荐

  1. Juniper 210 密码清不掉_三分钟学会如何找回mysql密码

    一.在测试工作中我们肯定会写一些sq查询语句方便我们验证数据是否正确,从而判断当前软件是否存在缺陷,但是查询的过程中肯定需要我们先连接数据库,如果数据库密码忘记我们就无法完成工作,这里就教会大家如何快 ...

  2. kdj超卖_三分钟学会KDJ三大买卖绝技,简单高效,把握最佳买卖点,不懂KDJ的股民值得一看!...

    本文由公众号:越声策略(yslc188)整理,仅供参考,不构成操作建议.如自行操作,注意仓位控制和风险自负. KDJ指标是一种相对较容易理解的技术指标之一,但若想真正的掌握并正确的运用就需要我们对其进 ...

  3. asp 文本转时间_三分钟学会在ASP.NET Core MVC 中使用Cookie

    一.Cookie是什么? 我的朋友问我cookie是什么,用来干什么的,可是我居然无法清楚明白简短地向其阐述cookie,这不禁让我陷入了沉思:为什么我无法解释清楚,我对学习的方法产生了怀疑!所以我们 ...

  4. derby mysql 同步_三分钟学会使用Derby数据库

    Derby数据库是一个纯用Java实现的内存数据库,属于Apache的一个开源项目.由于是用Java实现的,所以可以在任何平台上运行:另外一个特点是体积小,免安装,java1.6开始集成了derby数 ...

  5. excel筛选排序从小到大_三分钟学会Excel排序功能,为你节省时间,注意收藏!...

    写在前面 为了让大家能以轻松的心态阅读文章,所以采用了模拟场景对话的方式,来分享办公软件使用心得. 小简,职场新人. 大道,有一定办公软件操作技能,乐于助人. 正文开始 本期和下期两期内容,是网友&q ...

  6. 三分钟学会css3中的flexbox布局

    2019独角兽企业重金招聘Python工程师标准>>> 这篇文章里我们将学习CSS里flexbox布局的几个最重要的概念,通过学习flexbox布局,你会发现以往遇到的所有的关于布局 ...

  7. 响应式网格项目动画布局_响应式网格及其实际使用方式:常见的UI布局

    响应式网格项目动画布局 重点 (Top highlight) 第二部分 (Part II) Now that you have a basic understanding of how to use ...

  8. 三分钟学会PS小清新调色教程-萧蕊冰

    今天的PS小教程教你三分钟学会PS小清新调色教程.夏天到了,夏天的阳光很大,拍出的照片都会有一种暖色的感觉,那么我们怎么把一张照片调成日式小清新呢?今天我们就来学一个PS小清新调色教程,让你体验一下日 ...

  9. html页面的响应式布局,HTML+CSS十分钟实现响应式布局页面,响应式布局实战教程...

    承蒙各位小伙伴的支持,鄙人有幸入围了<CSDN 2020博客之星>的前200名,现在进入投票环节,如果我平时写的文章和分享对你有用的话,请每天点击一下这个链接,投上你们宝贵的一票吧!谢谢! ...

最新文章

  1. 用Lambda武装你的Java: 集合转换
  2. HttpServletRequest和HttpServletResponse简介
  3. Jupyter不要自动启动浏览器(Firefox)
  4. 找出最长0,1对数相同的子串
  5. 百练 Let it Bead
  6. 常用Maven插件介绍(下)(转)
  7. hdu4561 bjfu1270 最大子段积
  8. 两个苹果手机怎么传通讯录_苹果手机怎么导入通讯录?教你换机快速导入
  9. 基于asp. net sql快餐外卖设计网站成品
  10. 国微高校 html源码,国微CMS模板结构_模板教程_广州国微软件高校站群系统---领先的高校站群系统方案|全媒体方案|学校网站系统...
  11. 新特性解读 | MySQL 8.0 对 limit 的优化
  12. 民办二本计算机专业学生出路何在?
  13. Could not find apk!终于解决了! 坐在我旁边的领导帮我弄的~~ 大家谢谢他吧~~
  14. 不需要到健身房的互动健身,so cool
  15. Jenkins 插件开发记录
  16. 用户 不在 sudoers 文件中。此事将被报告
  17. 使用Egret粒子编辑器实现烟雾效果
  18. 浅析ArcIMS---转自Mars的自语
  19. Android Studio技巧合集
  20. 基于PCI9054和LTC4240的CPCI总线接口设计

热门文章

  1. 严格单调递增与非严格之间的转换
  2. 01_ExtJS_HelloWorld
  3. tftp的安装、设置以及put、get传输实验
  4. linux自动截屏脚本,Android实现自动截图脚本
  5. Mac OS X搭建C#开发环境
  6. 九尾之火---算法生成的动画图像
  7. 效仿盖茨:PPstream创始人的心路历程
  8. c#鼠标点击TextBox控件后清空默认字体-完美解决方案
  9. 【Java从0到架构师】Linux 应用 - 软件包管理、软件安装
  10. 【恋上数据结构】回溯、剪枝(八皇后、n皇后)、LeetCode51.N皇后、LeetCode52.N皇后 II