`

从cnblog谈谈网页的全屏设计

    博客分类:
  • css
阅读更多

网页多宽才能用户好的体验?其实用户希望你的网页时全屏的,我打开一个网页,干嘛老是那么宽的空白,留着这么多的空白不用,非要让我来翻页。。

其实为了适应如此之多的显示器,要做到适合绝大多数人的全屏不是一件容易的事情。一般网站都将显示范围控制在1024以内,超过1024有些显示器就会出现横向滚动条了,用得最多的还是960px的。然后用一张背景图片填充完左右的空白。

但是感觉这种做法实在是不负责任的。尤其是对于一个文字为主的网站来讲,更多的文字内容能带来更好的阅读体验,而且当文字的区域太窄,中文字体在右边往往显得层次不齐。cnblog可能是在这方面做得最好的了。

我们先来研究cnblog的一个博客的网页,然后分析它的css。这里先讲讲重点。

要实现全屏需要坚持一些原则:

1.尽量少给元素定义宽度,特别是那些控制整个布局的div元素。你可以用百分比,但我曾经尝试过,效果不好,而且你需要时常去计算到底该百分之多少。使用百分比感觉是被牵着鼻子走,元素的宽度应该用内容来填充,而不是自己定义。

2.巧妙的运用margin。假如元素没有宽度,那不是每个div都占满整个网页了吗,那我要向左右两栏或者分三栏显示怎么办。margin可以解决这个问题。

3.一定要记住,你的网页内容是流水一样的灵动,别对他做过多的限制。

4.即时是全屏的网页,至少还是在左右留下一点空白,和浏览器边界贴得太紧让人很有压力。

现在在说说实现自适应网站的难点。

其实难点不在于全屏,想让网站全屏你只要不给block元素指定宽度就可以了。

这里以三栏的网页布局为例。指定两边栏目的宽度,中间自动填满剩下的。

难点一:ie下margin引起的横向滚动条bug

因为刚刚我说需要给浏览器两边留下一点空白,于是我指定了magin-left:15px;margin-right:15px;这样两边会留下15px的空白,并且是居中的。

我是在firefox下面测试的,页面的显示效果很好。但是拿到ie下面就出问题了,ie的横向滚动条出现了,是滚动条很普遍,但没看到谁允许横向滚动条出现。而且这可是在ie9下面,更不用说ie7一下了。

解决办法:给这个元素加上overflow:hidden;(到现在为止我都没彻底弄懂overflow,貌似用好了能解决很多小bug)

难点二:因为长语句而引起的div宽度过于宽大

你应该注意到,我们三栏的布局中有一个是没有定义宽度的,这个是为了是网页的大小适应不同的屏幕,但没有限制宽度,自然会带来一些意想不到的问题。如下图:

 

 

 

红颜色标注的地方有一个很长的不换行字符串(举例说明实际有时候更长),这个字符串让中间没有限制宽度的div足足有1300px宽,加上两边侧栏的宽度浏览器就会出现横向滚动条,理论上说,不管你的显示器多大,都可能出现横向滚动条,因为一个不换行的字符串可以无限长。

解决办法:还没有很好的解决办法。。。。这里有两种差强人意的办法供参考。

1.用js根据屏幕宽度修正。

2.什么都不用做,发表文章的时候注意换行就是了,因为一个句子太长本来就是不合理的,不过这只适用于个人网站,网友发表的文章你不可能每篇都编辑。

3.定义一个最大宽度,这样肯能有点违背全屏设计的初衷。

本文未完,原文发表在 http://jcodecraeer.com/a/cssjiqiaoyuguifan/2012/0613/247.html

分享到:
评论

相关推荐

    scrapy爬取cnblog博客园

    scrapy爬取cnblog博客园文章列表保存到本地数据库。这个是本人最近学习爬虫的一个实践案例,源码解析详情请移步博文:https://blog.csdn.net/xiaocy66/article/details/83834261

    我的cnblog文章备份

    这是我的cnblog文章备份,可以供大家借阅,观看。 给大家一个福利, 希望大家喜欢! 好用就留个赞吧

    Xamarin-Android-CNBlog

    总的来说,Xamarin-Android-CNBlog项目是学习和实践Xamarin Android开发的宝贵资源,它涵盖了从基础概念到高级技巧的广泛内容,对于希望使用C#和.NET进行移动开发的程序员来说,是一个不可多得的学习平台。...

    CNBlog.rar_CNBLOG@DLHC-TECH_cbnlog_cnblog_http://www.cnblo_juwan

    从标签中,我们能够看到 "juwan_cnblog",这可能是一位名为“Juwan”的博客园用户或者是与这个压缩包内容相关的一个特定主题。标签中的其他部分再次强调了这个压缩包与博客园(CNBlog)的关联,以及可能涉及的技术...

    CnBlog:cnblog.com的RSS

    4. 用户界面:可能包含用于展示订阅内容的前端界面设计,让用户可以方便地浏览和阅读。 5. 更新逻辑:用于自动或手动检查CnBlog.com的RSS源是否有新内容的逻辑。 这个压缩包对于Java开发者,尤其是那些关注CnBlog....

    cnblog2anki weibo2anki 超链接提取然后导入anki

    1. **安装cnblog2anki**:首先,你需要从开发者提供的源或GitHub仓库下载cnblog2anki的最新版本,确保与你的操作系统兼容。 2. **配置cnblog2anki**:运行工具前,需要配置cnblog2anki,包括设置Anki的安装路径,...

    cnblog简单主题

    【标题】"cnblog简单主题"是一个专门为博客平台设计的主题模板,主要针对的是中国的博客发布网站,例如CSDN博客、博客园等。这个主题旨在提供一个简洁、易读的界面,使用户能够专注于内容的呈现,提升阅读体验。通过...

    python爬虫项目班 资料 cnblog_spider.py

    python爬虫项目班 资料 cnblog_spider.py

    多线程下载cnblog新闻图片

    标题中的“多线程下载cnblog新闻图片”指的是利用编程技术,通过多线程的方式从中国知名IT博客网站——CSDN博客(通常简称为cnblog)上批量下载新闻文章中的图片。这种方式可以提高下载效率,减少单一线程下载时可能...

    cnblog-theme-simpcode:一款简单干净的博客园主题

    cnblog-theme-simpcode 一款简单干净的博客园主题,示例博客: 一、准备 在开始之前,必须要确保你已经申请了博客园 JS 权限,具体申请过程就不详细介绍了,读者自行网上搜索,很简单的。 本皮肤如果经常逛博客的...

    C# 验证马识别 可识别百度 新浪 BBS 51CTO CNblog等大型网站

    《C#验证码识别技术在大型网站应用中的实践与...从图像处理到模式识别,再到数据库管理和源码设计,每一个环节都需要细致入微的思考和技术沉淀。通过不断的实践和学习,我们可以掌握这一技术,为互联网安全贡献力量。

    手写mybatis单表查询实现-cnblog.md

    手写实现mybatis,mybatis处理流程图,mybatis实现需要的几个函数,各个函数的调用。

    简单的网页内容采集器(C#)

    见下图 用户首先填写“起始网页”,即从哪一页开始采集。 然后填写数据库连接字符串,这里是定义了采集到的数据插入到哪个数据库,后面选择表名,不必说了。 <br>网页编码,不出意外的话,中国大陆都...

    JiangLongLiu#cnblog-757617012#数学软件与教程收集.142

    matlab软件下载:lingo教程数学建模Lingo系列视频(爆肝杰哥): Lingo(1)基础篇:BV1CT4y177qS Lingo(2)入门篇:BV1U

    myblog:将markdown博客文件直接发布到cnblog并管理使用情况的博客文件

    关于"HTML"标签,这表明myblog在处理Markdown文件时,会将其转换为HTML代码,以便在网页上正确渲染。Markdown的语法相对简单,如`#`表示标题,`*`或`_`用于斜体和粗体,`>`表示引用,`-`或`*`创建无序列表,等等。在...

    CNBlog.rar_it_个人团队源码_工作站_网络

    一个IT技术人员想为IT技术人员们提供一个纯净的技术交流空间,博客园很长时间只有一个不能再简单的博客,有近四年,博客园仅靠一个人几年工作的积蓄在维持,互联网浪潮的此起彼伏,“博客”从耀眼的明星成为平民,...

    JiangLongLiu#cnblog-757617012#2020.12 考虑买的手机.71

    1.可刷机,所以可买的手机就只剩下小米了 2.至少256GB存储 3.网络不一定要5G,因为目前为止,5G网络覆盖的不好,目前阶段用5G流量跑得快,续航变短 4

    JiangLongLiu#cnblog-757617012#RedHat centos中的上传下推脚本.262

    上传下推

    通讯录apk

    一个小小的apk文件,主要功能是实现通讯录里边的增删改查啊

    JiangLongLiu#cnblog-757617012#jupyter–lab 配置文件jupyter_lab_

    生成配置默认的配置文件放在 "C:\Users\Administrator\.jupyter\jupyter_lab_config.py"修改配置c.Serve

Global site tag (gtag.js) - Google Analytics