响应式网站设计保护层级和内容完整性的方法

news/2024/5/20 4:45:30/文章来源:https://blog.csdn.net/zuoninger/article/details/19557903

本篇文章中,我们将介绍在设计响应式网站过程中,保护层级和内容完整性的方法。


内容编排

在前文中使用媒介查询功能来重排页面元素,再深入一步,不光要考虑可用的空间,还必须照顾到内容。假设有一个4 栏的全宽网站,随着窗口变小,4 栏逐渐变成3 栏,再变成两栏,最后变为一栏,通常做法是把它们按顺序纵向堆叠起来。


现在要把页面重排和内容层级联系到一起。如果第一栏非常高怎么办?第二栏的内容一定不如第一栏重要吗?某些情况下,把元素整合到一起效果更好。下面介绍几种编排方式,看起来很像是20 世纪50 年代的舞蹈动作,哎,起名太难,就不要难为我了。用文章开头的新闻网站做例子吧,“天气”板块(包括花粉浓度)在右上角,在窄窗口中,这个板块不能被挤到左侧栏目的下边,而要紧贴“头条新闻”。





1.编组- 滑动

这种板块编组的方式是这样实现的:把需要编组的内容放进同一列中,然后

把页面其他内容放入另一列。

HTML 代码如下:

<div id="container">

<div class="row">

<div class="headlines col">

<p>Insert headline code here.</p>

</div>


  

<div class="weather col">

<p>Insert local weather here.</p>

</div>

</div>

<div class="row">

<div class="news col">

<p>Insert additional news stories here.</p>

</div>

</div>

 

 

</div>


CSS 代码如下:

.col {

fl oat: left;

display: inline;

}

.headlines {

width: 70%;

}

.weather {

width: 30%;

}

.news {

width: 70%;

}

@media screen and (max-width: 33.750em) {

.headlines {

width: 100%;

}

.weather {

width: 100%;

}

.news {

width: 100%;

}

}

 

2.滑动- 浮动

因为某些“讨厌鬼”不断投诉说查看不到花粉浓度,老板决定把“天气”放在单栏显示的最上方,要怎么实现呢?答案是使用媒介查询实现元素浮动。首先,要在HTML 代码中反映出页面层级的变化:


<div id="container">

<div class="row">

<div class="weather

col">

<p>Insert local weather

here.</p>

</div>

<div class="headlines col">

<p>Insert headline code here.</p>

</div>

</div>

<div class="row">

<div class="news col">

<p>Insert additional news stories here.</p>

</div>

</div>

</div>


CSS 代码如下

.col {

fl oat: left;

display: inline;

}

.headlines {

width: 70%;

}

.weather {

width: 30%;

fl oat: right;

}

.news {

width: 70%;

}

@media screen and (max-width: 33.750em) {

.headlines {

width: 100%;

}

.weather {

width: 100%;

}

.news {

width: 100%;

}

}

搞定了!在宽度超过540 px(33.750 em) 的窗口中,“天气”板块会浮动到“头条新闻”右侧。

 

3.前前后后左左右右

 

前两个舞蹈动作解决了最小窗口的内容排版问题,下一招能更快捷地调整元素顺序。先来回顾一下初始HTML 代码:


<div id="container">

<div class="headlines col">

<p>Headlines</p>

</div>

<div class="weather col">

<p>Weather</p>

</div>

<div class="news col">

<p>News</p>

</div>

</div>

然后把CSS 代码改成这样:

container {

display: -webkit-fl ex;

display: fl ex;

}

.col {

fl ex: 1;

}

.headlines {

order: 1;

}

.weather {

order: 2;

}

.news {

order: 3;

}

@media screen and (max-width: 33.750em) {

#container {

fl ex-fl ow: column wrap;

}

.headlines {

order: 2;

}

.weather {

order: 1;

}

.news {

order: 3;

}

}


更改CSS 代码之后,调整数字就能改变元素的堆叠顺序了。


响应式图片层级

空间占用是体现层级的重要方面。简单来说,元素越大,用户就会认为它越重要。以图2.12 为例:

 

显而易见,上方的大横幅图片传递的信息更重要。在窄屏下,图片浮动后的效果是什么样的呢?大概如图2.13 所示。

 

 

这可不行啊!原定的视觉层级应该是横幅图片作为页面中的最大元素,比其他元素都重要。在窄屏窗口中,横幅图片只占据一小条空间,远比其余的图片寒酸。我的同事Dave Rupert 提出了解决方法,可以把横幅元素放进一个div 里,命名为.banner-item。通过min-height,height 和overflow:hidden 使之可以等比缩放。代码如下:

 

 

.banner-item {

overfl ow: hidden;

min-height: 300px; /* 300px is arbitrary. */

}

.banner-item img {

width: 100%;

}

/* 600px / 37.500em is about the width "locked in" at

*/

@media screen and (max-width: 37.500em) {

.banner-item img {

width: auto;

max-width: none;

height: 300px;

}

}

 

通过媒介查询功能,将图片高度保持在300px 以上,页面层级不受破坏。我们已经就自适应网格和页面布局聊了不少,下边该谈谈它们对文本和可读性的影响了。

 

自适应排版

保证网站全设备和全宽度的可读性也是我们的重要目标。要点之一在于控制每行的字数。在自适应布局中,文字排版与浏览器宽度有关:窗口越宽,每行字数越多。“网页字体元素”一文提及,每行45 ~ 75 字符(含空格)是用户普遍能够接受的舒适阅读范围,应当在设计过程中尽量避免单行文字过多的情况。首先,可以使用媒介查询调整容器的宽度。随着窗口变宽,可以减小容器宽度,强制文本分行。其次,还可以在宽窗口中增大字号。提供一个小技巧:在占位文本中放入两个星号,比如:


Lorem ipsum dolor sit amet, consectetur adip*isicing elit, sed do eiusmod *tempor incididunt ut labore et dolore magna aliqua.

 

随着浏览器窗口宽度加大,如果两个星号出现在同一行中,就需要加大字号了。用百分比、em 或rem 作为度量单位的话,改变一个CSS 属性即可实现。


我很高兴地看到Josh Brewer 和Mark Christian 开发出名为Response Measure的jQuery 插件,可以自动生成适合给定宽度的字号。这个插件对处理段落文本而言非常合适,但如果想让文本像自适应图片一样,根据浏览器窗口宽度自动调整大小,应该怎么做呢?我在博客上提出了这个问题,好友Dave Rupert 开发了FitText,这款jQuery 插件可以用来调整网页字体,我们将其发布在了GitHub 上。Sean McBride 在这个网站给出了FitText 的使用实例。他将FitText 应用于h1标签,并将4 边内边距调整为5em, 40%, 2.5em 和5%。右侧40% 的内边距为图片的视觉焦点留出了位置。在文件头中添加了如下语句后,文本就可以自动适应容器的宽度了:

 

<script>

$(function() { $('.heading h1').fi tText(5.7) });

</script>

 

如果你喜欢FitText,那就一定要试试Mat Marquis 开发的Molten Leading,可以随宽度变化自动调整行高。也就是说,这款插件实现了自适应行高。还有更好的消息,FitText 可能会被vw,vh 和vmin 这套新度量单位淘汰,举例如下:


● 1 vw 表示窗口宽度的1%;

● 1 vh 表示窗口高度的1%;

● vmin 表示1vw 和1vh 中的较小值。


FitText 需要使用JavaScript,对应宽度要用百分比单位表示,这套新单位则可以独立使用。在获得浏览器支持之后,这套单位还能用来精确调整各种尺寸窗口中的文字。

 

基于代码的网页设计标准

在文本、按钮、导航和基本页面结构等基础元素设计完成后,最好建立一个汇总页面或站点,既为批量产出做准备,也有助于建立项目视觉标准和资源库。我把这个环节当做建立Twitter Bootstrap 的简化版,同时也是对应项目的“定制版”。实时开发环境中的设计实例是测试和改进网站的最佳途径。在我看来,用图片来展示响应式页面布局,就像在公园熙熙攘攘的人群里练习驾驶一样不得要领。

 

 本文摘自即将在3月初上市的《众妙之门——移动交互体验设计》



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_865884.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单页web应用是什么?它又会给传统网站带来哪些好处?

什么是单页应用&#xff1f; 单页应用是指在浏览器中运行的应用&#xff0c;它们在使用期间不会重新加载页面。像所有的应用一样&#xff0c;它旨在帮助用户完成任务&#xff0c;比如“编写文档”或者“管理Web服务器”。可以认为单页应用是一种从Web服务器加载的富客户端。 单…

解秘亿级网站的一本书——亿级流量网站架构核心技术

网站是直接面对广大客户的&#xff0c;是公司的门户&#xff0c;必须快速响应&#xff0c;必须持续可用&#xff0c;必须抗得住洪峰。任何一个网站的发展过程中都出现过问题&#xff0c;影响客户体验和商业利益&#xff0c;公司业务规模越大&#xff0c;网站出现问题的损失越大…

瞬时响应:网站的高性能架构

什么叫高性能的网站&#xff1f; 两个网站性能架构设计方案&#xff1a;A方案和B方案&#xff0c;A方案在小于100个并发用户访问时&#xff0c;每个请求的响应时间是1秒&#xff0c;当并发请求达到200的时候&#xff0c;请求的响应时间将骤增到10秒。B方案不管是100个并发用户…

301重定向,301跳转:IIS服务器网站整站301永久重定向设置方法

网站301重定向&#xff1a;阿里云windows服务器IIS6.0-IIS7.5通用全站&#xff08;包括内容页&#xff09;301重定向方法 最近PE准备把二级域名换成全拼域名”www.panoeade.com”试着在服务器iis上面直接设置HTTP重定向&#xff0c; 哪知道操作之后以前的域名可以跳转到新域名…

用Django创建一个照片墙网站

-0- 使用到的资源&#xff1a; 前端: Blueimp Gallery后端: Django缩略图: easy_thumbnails部署: nginx gunicorn supervisor开发环境是Centos 7.2 Python 2.7.5 上个图先: 界面 效果预览 -1- 创建项目 假设当前用户是ljgabc&#xff0c;当前目录是/home/ljgabc。 virtu…

一个礼拜学完前端,获得前端证书,并写出一个商城网站的

前端技术最近几年一直火爆&#xff0c;不会点前端技术&#xff0c;都不敢说自己是个优秀的程序员&#xff0c;即便你是做Java后台&#xff0c;亦或者C#、Python。 当你折腾了很久的后台&#xff0c;再去研究前端的时候&#xff0c;发现前端真的是小儿科&#xff0c;虽然前端技术…

边学边搭建个人网站

网络上搭建个人网站的教程不少&#xff0c;但是都比较零散。自己一个人鼓捣鼓捣&#xff0c;也开始上路了。 搭建个人网站的基本步骤如下&#xff1a; 1.申请域名 2.购买服务器 3.在服务器上配置环境 4.将自己的本地网页上传到云服务器 1.申请域名 这一步我没有尝试&#xff0…

网络安全系列连载(4)网站服务器与数字证书

由于Windows NT系统的容易维护&#xff0c;很多单位或者ISP都采用它&#xff0c;大部分是做WEB服务器使用。虽然IIS存在很多新的漏洞和安全问题&#xff0c;但只要我们做好合理的安全配置&#xff0c;还是可以避免很多安全隐患的。因此&#xff0c;本文选择IIS服务器来测试数字…

Google 联合一些社交网站来对抗 facebook

谷歌 (Google) 将与其它一些行业领先的社交网站联手&#xff0c;共同对抗互联网新贵Facebook。  谷歌将于周四推出一个通用标准集 ( OpenSocial )&#xff0c;允许软件开发者为谷歌旗下社交网站Orkut&#xff0c;以及LinkedIn、hi5、Friendster、Plaxo和Ning等其它社交网站…

CSDN 未来网站内容Tag架构猜想

大概是上周吧&#xff0c;写了一篇blog主观的分析了一下CSDN目前的内容架构&#xff0c;收到许多朋友好的意见和建议&#xff0c;在此首先对他们表示感谢。网络变化真的很快&#xff0c;现在的网站内容架构较2&#xff0c;3年前已经有翻天覆地的变化。很多人也提出了“如今的网…

php 网站添加高防ip

最近做的游戏抽奖平台一直被流量攻击&#xff0c;网址使用的阿里云的服务器&#xff0c;小项目但是阿里的高防2w多实在用不起。只好找的其他平台的&#xff0c;这里推荐个平台挺便宜的:https://www.yisu.com 购买成功后&#xff0c;两个平台都需要添加白名单&#xff1b;高防ip…

seo优化:把百度放进数据库

seo优化:把百度放进数据库 有时候我想&#xff0c;能把百度的数据放进数据库&#xff0c;用广大程序员熟悉的sql语句查询百度的搜索结果应该是一个不错的主意。在这方面Google早已经跨出了一大步&#xff0c;利用Google Search API 把Google的搜索结果放进数据库是很容易办到得…

SEO 比比看: Che168.com VS pcauto.com.cn

SEO 比比看&#xff1a; Che168.com VS pcauto.com.cn 做SEO工作&#xff0c;平常少不了多观察各种网站优化的案例。俗话说的好&#xff0c;懂行的看门道&#xff0c;不懂的看热闹。面对五花八门的网站&#xff0c;如何才能从专家的角度&#xff0c;以最快的速度来了解被观察…

搜索引擎SEO外挂:一边搜索,一边看PageRank

搜索引擎SEO外挂&#xff1a;一边搜索&#xff0c;一边看PageRank 下载地址&#xff1a;多么乐站长工具 我原来曾写过一篇统计分析搜索引擎排名和Page Rank 关联分析 的文章。很多人引用&#xff0c;回复和我讨论了我的结论。有赞成的&#xff0c;有反对的&#xff0c;有鼓励的…

实际采用 FleaPHP 的网站

下面都是采用 FleaPHP 框架开发的网站列表&#xff0c;如果发现无效连接请在留言。 如果你有采用 FleaPHP 开发的网站&#xff0c;并且愿意公开网址&#xff0c;可以发邮件到 dualface (at) gmail.com 需要提供的信息包括网站名称和连接地址&#xff0c;以及简单的介绍文字。 云…

Nginx网站服务(从新手村到小有成就5)

Nginx网站服务 相关软件包自习到官网下载 一、关于Nginx 一款高性能、轻量级Web服务软件 稳定性高 系统资源消耗低 对HTTP并发连接的处理能力高 单台物理服务器可支持30000~50000个并发请求 二、编译安装Nginx服务 1、关闭防火墙将nginx所需软件包到/opt目录下 systemctl stop…

电信网通证实台湾地震影响内地访问国际网站(12月27日)

电信网通证实台湾地震影响内地访问国际网站 http://www.sina.com.cn 2006年12月27日 09:39 东方网 中国国际海底光缆网络 中美六家运营商正在共同建设连接中国和美国的兆兆级海底光缆系统——跨太平洋直达光缆系统 东方网讯 12月27日消息&#xff0c;从今日凌晨起&#xff0c…

实际采用 FleaPHP 的网站

下面都是采用 FleaPHP 框架开发的网站列表&#xff0c;如果发现无效连接请在留言。 如果你有采用 FleaPHP 开发的网站&#xff0c;并且愿意公开网址&#xff0c;可以发邮件到 dualface (at) gmail.com 需要提供的信息包括网站名称和连接地址&#xff0c;以及简单的介绍文字。 云…

在线加密解密网站(对称加密:AES、DES、RC,非对称加密:RSA)

前两天写AES加密相关代码&#xff0c;学习的同时找到一个在线加密解密的网站&#xff0c;帮助自己快速理解了一下&#xff0c;推荐给学习加密的同学。在线加密网站&#xff0c;一开始接触加密&#xff08;AES等&#xff09;可以在这里体验下加密与解密&#xff0c;助于快速理解…

seo优化:把百度放进数据库

seo优化:把百度放进数据库 有时候我想&#xff0c;能把百度的数据放进数据库&#xff0c;用广大程序员熟悉的sql语句查询百度的搜索结果应该是一个不错的主意。在这方面Google早已经跨出了一大步&#xff0c;利用Google Search API 把Google的搜索结果放进数据库是很容易办到得…