<div style="border: 1px dotted teal; font-size: 9pt; float: right; color: teal; text-align: center;">
<img alt="" src="http://images.cnblogs.com/cnblogs_com/justinyoung/googlelogo2.gif"><br>
仿Google阅读器布局</div>
<h4>说明</h4>
<p>最近因为工作需要需要做个类似抓虾、Google Reader这样的网页订阅页面。这种页面的难点主要是——</p>
<ul style="margin: 0px 2px 15px 25px;">
<li style="">左侧频道列表的高度要根据各种浏览器可视高度动态改变(改变窗口大小时需要动态改变)
</li>
<li style="">侧边栏宽度固定,而阅读区域的宽度需要动态改变
</li>
<li style="">滚动条的处理
</li>
<li style="">IE和FF的兼容性
</li>
<li style="">其他一些细节…… </li>
</ul>
<h4>实现思路</h4>
<p>左侧频道列表的高度要根据各种浏览器可视高度动态改变(改变窗口大小时需要动态改变)<br>
—— 需要监听浏览器的resize(FF中),或者onresize(IE中)事件。</p>
<p>侧边栏宽度固定,而阅读区域的宽度需要动态改变<br>
——参考这篇文章: <a title="《大家一起来博皮——2:液态布局和固态布局,页面框架篇 》" href="http://www.cnblogs.com/JustinYoung/archive/2008/03/11/lets-blog-skin-02.html" target="_blank">《大家一起来博皮——2:液态布局和固态布局,页面框架篇 》</a></p>
<p>滚动条的处理<br>
——需要注意横向滚动条一直不出现,竖向滚动条根据内容多少需要出现滚动条。最需要注意的一点是:需要将body的滚动条隐藏,右侧的滚动条其实是"content_content"的滚动条。</p>
<p>IE和FF的兼容性 <br>
——主要是JavaScript中一些事件名称的区别。</p>
<p>其他一些细节……<br>
——一些细节……</p>
<h4>参考代码</h4>
<textarea id="txtTestCode2" cols="65" rows="12"> <!DOCTYPE html public "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="keywords" content="yes!b/s!,web标准,杨正祎,博客园,实例代码" />
<meta name="description" content="这是一个简单yes!b/s!文章示例页面,来自杨正祎的博客,http://justinyoung.cnblogs.com/" />
<title>yes!b/s!文章示例页面</title>
<style type="text/css">
*{
margin:0;
padding:0;
}
body,html{
overflow:hidden;
}
#header{
height:100px;
background-color:red;
}
#sidebar{
float:left;
width:240px;
display:inline;
background-color:yellow;
overflow-y:auto;
overflow-x:hidden;
}
#content{
float:right;
margin-left:-270px;
width:100%;
background-color:deeppink;
}
#content_content{
margin-left:280px;
overflow-y:auto;
overflow-x:hidden;
}
</style>
<!--
function _resize(){
var size = GetClientSize();
document.getElementById("sidebar").style.height=(size[1]-102)+"px";
document.getElementById("content_content").style.height=(size[1]-102)+"px";
}
if(document.addEventListener) {
window.addEventListener("resize", _resize, false); //FF
} else if(document.attachEvent) {
window.attachEvent("onresize", _resize); //IE
}
function GetClientSize(){
if(document.documentElement.clientWidth){
return [document.documentElement.clientWidth, document.documentElement.clientHeight];
}else{
return [document.body.clientWidth, document.body.clientHeight];
}
}
//-->
</head>
<body>
<div id="wrap">
<div id="header">
这里是头部
</div><!--end: header -->
<div id="content">
<div id="content_content">
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
<p>主体内容</p>
</div>
</div><!--end: content -->
<div id="sidebar">
<ul >
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
<li>侧边栏栏目</li>
</ul>
</div><!--end: sidebar-->
</div><!--end: wrap -->
<!--
_resize();
//-->
</body>
</html>
</textarea><div style="margin-bottom: 15px; clear: both;">
<input value="运行代码" type="button"><input value="复制代码" type="button"><input value="另存代码" type="button"><span style="font-size: 9pt; color: rgb(153, 153, 153);">提示:可以先在文本框内,根据需要修改代码后再运行</span>
</div>
<h4>效果截图</h4>
<div class="floatMPic">
<a title="web标准设计" href="http://justinyoung.cnblogs.com/images/cnblogs_com/justinyoung/2008_2q/googleReader2.gif" target="_blank"><img alt="web标准设计" src="http://justinyoung.cnblogs.com/images/cnblogs_com/justinyoung/2008_2q/googleReader2.gif" height="466" width="526"></a>
<h6>IE下实例效果截图(点击图片查看完整大图)</h6>
</div>
<div class="floatMPic">
<a title="web标准设计" href="http://justinyoung.cnblogs.com/images/cnblogs_com/justinyoung/2008_2q/googleReader.gif" target="_blank"><img alt="web标准设计" src="http://justinyoung.cnblogs.com/images/cnblogs_com/justinyoung/2008_2q/googleReader.gif" height="466" width="526"></a>
<h6>FireFox下实例效果截图(点击图片查看完整大图)</h6>
</div>
分享到:
相关推荐
1. 用户界面设计:示例图片可能展示了文本阅读器的界面布局,包括打开文件的菜单、文本显示区域、滚动条、字体设置、亮度调整等功能按钮的截图。这些设计对于用户体验至关重要,一个好的文本阅读器应该简洁易用,...
在线阅读时,用户虽然可以看到水印,但无法编辑或去除它,这是因为在线阅读器只允许查看内容,而不支持编辑操作。这有助于保护文档的版权和敏感信息。 在线阅读PDF的一个关键优势是安全性。因为用户无需下载文件,...
Android平台上的PDF阅读器开发是一项常见的任务,尤其对于那些希望为用户提供查看和处理PDF文档功能的应用来说。在“Android DocumentViewer(PDF阅读器)源码.rar”中,我们可以找到一个完整的PDF阅读器应用的源代码...
本项目是一个基于Android Studio的PDF阅读器代码示例,名为"PDFViewDemo",旨在帮助开发者理解如何在Android应用中集成PDF查看功能。下面我们将深入探讨这个项目中的关键知识点。 1. **Android Studio环境**: ...
在Android平台上,开发一款具有翻页效果的TXT阅读器是一项常见的任务,这涉及到对文本处理、用户界面设计以及动画效果的实现。这个"Android 翻页效果txt阅读器源码"提供了一个实现这一功能的实例,对于学习和理解...
总而言之,"安卓pdf阅读器"是一个集成PDF阅读功能的示例项目,展示了如何在Android环境中开发一个功能齐全、用户体验良好的PDF阅读应用。通过学习和理解这个Demo的源码,开发者可以提升自己的Android编程技能,尤其...
在改版的【chino】PDF阅读器中,我们可以看到一系列图片资源(如1_120929111558_1.png、1_120929111558_2.png等),这些可能包含了界面的设计示例或调试输出,有助于我们理解UI布局和交互设计。同时,1-...
确保图片有合适的`alt`属性,以便屏幕阅读器理解;链接文本要有意义,不依赖图片来传达信息。 通过实践以上知识点,你可以逐步创建出一个与Google首页下端类似的图片文字导航。在解压后的文件中,你应该能看到一个...
本示例是一个非Google官方提供的百分比布局实现,旨在帮助开发者理解和实践自定义布局。 一、自定义ViewGroup的基本原理 1. 继承ViewGroup:首先,我们需要创建一个新的类,继承自Android的ViewGroup。ViewGroup是...
在实际使用中,通过"Android应用源码阅读器",开发者可以深入研究知名应用的源码,如Google的开源项目,从而学习最佳实践,提高自己的编程技巧。同时,这也有助于开发者在遇到问题时,能更快地定位并解决问题,提高...
阅读器应用中,布局设计对于良好的用户体验至关重要。 二、数据处理 1. **SQLite数据库**:Android内置的轻量级数据库,用于存储应用数据。资讯阅读器可能使用SQLite存储文章信息、用户设置等。 2. **...
总的来说,这个开源的资讯阅读器项目提供了Android应用开发的全方位实践示例,涵盖了从网络通信、数据处理、UI设计到性能优化的各个环节。通过深入研究其源码,开发者不仅可以提升自己的编程技能,还能了解最新的...
"Android 仿谷歌侧边栏导航源码.rar" 提供的资源是一个实现了类似谷歌风格侧边栏导航的示例项目,可以帮助开发者理解和实现这种功能。 1. **Material Design 指南** 谷歌在其 Material Design 设计规范中定义了...
这个布局在许多应用中都可以看到,如邮件应用、新闻阅读器等。在Java编程环境下,我们可以轻松地集成并自定义此功能。 在Android中,SwipeRefreshLayout 是Google提供的一个开源库,它包含了一个可以包裹其他视图...
你可以通过阅读代码、运行示例并进行调试来深入理解这些概念。记住,实践是学习的最佳方式,尝试修改代码以实现不同的交互效果,将有助于你更好地掌握Flutter的开发技巧。 总之,Flutter为我们提供了强大的工具来...
**jQuery仿Google和Facebook用户向导功能插件详解** 在网页设计中,引导用户了解网站功能和布局至关重要,尤其对于初次访问的用户来说。这款基于jQuery的用户向导插件,模仿了Google和Facebook的用户体验设计,旨在...
【Android源码——仿谷歌侧边栏导航源码_new_30】是一个关于Android应用程序开发的资源包,其中包含了实现类似谷歌风格的侧边栏导航功能的源代码。这种导航方式通常被称为抽屉式导航(Drawer Navigation),是...
扩展插件是谷歌浏览器的一大特色,它们能够显著提升用户的浏览体验,实现诸如划词翻译、广告屏蔽、网页美化等多种实用功能。然而,许多用户在安装了扩展插件后,并不清楚如何进行设置。本文将详细介绍谷歌浏览器扩展...
通过阅读代码,可以了解实现特定UI效果的具体步骤,以及如何将Java与XML布局文件结合使用。 9. **Android Gradle构建系统**:项目可能使用Gradle进行构建和依赖管理,这需要开发者熟悉`build.gradle`文件的配置,...