`
yiminghe
  • 浏览: 1465618 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

html body 100% 解析和应用

阅读更多

常见的

html, body {
   height: 100%;
}

解释

 



这是为了兼容各个浏览器。


IE 处于混杂模式时,body以窗口为高度参照,body设置为100%就可以使得页面和窗口一样高,body里面的嵌套div也可以扩展到窗口高度,这样的话可以使布局适应浏览器窗口大小。

窗体 》body》div  (html ,body {overflow:scroll}  一层滚动条)


但是当处于标准模式时,body以html标签为高度参照,html标签才以窗口为参照,所以仅仅body 100%,并不能使它的子div100% 占据整个屏幕,还要使得 html 100%使得 html获得窗口大小才行。才有了上述代码。

窗体》html》body》div (html ,body {overflow:scroll}  两层滚动条 ,html的滚动条从来不会用到)

 

 



 

 

使用后问题:

 

(090624 From http://log.7thpark.com/article/W3C-and-Front-End-Development/html-body-style-height-100percent.html)


1.清楚浮动失效,一般在遇到这种代码时候

<div id="main"><div id="sidebar">side</div>
<div id="content">content</div></div>

 控制sidebar浮左,content浮右以后,需要清楚一下浮动,有很多种方法,例如在main最后插入一个clear:both的div或用纯css方法,但是当设置了html,body{height:100%}的时候会发现失效了;


2.仍然会出现处置滚动条,这是因为某些元素设置的margin及padding混乱造成的,所以当一个页面可能超过一屏的时候最好不要用这个属性

 

 

 

 

 

 

 

当body中子100%div的内容过多时,兼容标准的浏览器会 出现 : 内容透了出来覆盖该div后面内容上面,body上面出现滚动条。


而ie6 则会自动扩展100%div的高度到适应高度大小。


要解决这个问题:则要利用 兼容标准浏览器的 Min-height css 属性了。

 

 

示例代码如下:

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<style type="text/css">
*{margin:0;padding:0;}
html,body {height:100%;}
#wrapper{height:100%;background:#369;}
body>#wrapper{height:auto;min-height:100%;} /*设定最小高度*/
</style>
</head>
<body>
<div id="wrapper">
<h1><a href="#">很长</a></h1>
<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>
<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>
	我是尾巴
</div>
</body>
</html> 
 

 

应用2:position : fixed 的 IE6 (标准模式下) 实现、

 

由于 css , position:fixed  这个特性 IE6 不支持,而我们 需要某个东西定位到窗口某个位置,而它不随浏览器滚动条的拖动而影响。


现在存在两个方法:


1. javascript

     

        监控 window 的 scroll 事件 ,将定位为 absolute 的 top 动态改变为 : document.documentElement.scrollTop + x


        以及和此方法类似的 css expression 方法。(这时,效率很成问题,注意:expression每次界面渲染都会执行的 )


        缺点:定位元素拖动时会有闪动的效果

        优点:不改动现有css布局


2.css 方法 (其他浏览器这样用也能达到同样效果)

       

         主要就是利用 absolute 定位 以 html 为 准 ,body属于 html的子容器,我们需要滚动条出现在 body 上,而不是html上,这样才能 以html绝对定位 到某一位置,拖动 body的滚动条时不会影响 以html定位的元素。

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<style type="text/css">
*{margin:0;padding:0;}
html,body {height:100%;overflow:hidden;}
body {overflow:auto;};

</style>
</head>
<body>
<div id="wrapper">
<h1><a href="#">很长</a></h1>
<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>
<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 style="position:absolute;bottom:0;border:2px green solid;">
	我是尾巴
</div>
</body>
</html> 
 


          优点:拖动滚动条是不会有闪动

          缺点:以后所有以html绝对定位的元素都变成fixed 效果了。

     

 

 

 

 

分享到:
评论

相关推荐

    C#解析html,HtmlAgilityPack

    这个库允许开发者以简洁、高效的方式解析、修改和操作HTML内容。本文将深入探讨HtmlAgilityPack的基本概念、主要功能以及如何在C#项目中使用它。 **HtmlAgilityPack简介** HtmlAgilityPack是由Liam Westley开发的一...

    用JS(javascript)从另一个html中读取标题和正文body

    一旦获取到HTML文本,解析标题和正文body通常涉及DOM操作。可以使用`DOMParser`对象的`parseFromString()`方法将HTML字符串转换为DOM文档,然后通过`querySelector()`或`getElementsByTagName()`等方法选择`&lt;title&gt;`...

    PHP解析HTML代码库

    - **DOMDocument**: 内置的PHP类,提供解析HTML和XML的功能,可以解析HTML字符串并转换为DOM对象,然后进行修改、提取数据等操作。 - **DOMXpath**: 与DOMDocument一起使用,用于查找DOM树中的特定元素,支持通过...

    Thtml.rar_html 解析_html解析_thtml_解析html

    它由一系列元素组成,这些元素以开始标签和结束标签的形式出现,如`&lt;html&gt;`、`&lt;head&gt;`、`&lt;body&gt;`等。在"HTML解析"这个主题中,我们将深入探讨如何理解和处理这些元素。 在描述中提到的“Thtml.rar”是一个压缩包,...

    iOS解析html

    在iOS开发中,解析HTML文件是一项常见的任务,特别是在处理网页数据或者从网页抓取信息时。本篇文章将深入探讨如何在iOS应用中解析HTML,...记得在实际应用中,根据HTML结构和业务需求调整解析策略,以达到最佳效果。

    HTML文档解析器 HTMLParser

    HTML文档解析器,如其名,是用于处理和解析HTML(超文本标记语言)文档的工具。在前端开发中,理解和掌握HTMLParser的...通过学习和实践,我们可以更好地应对HTML解析带来的挑战,从而创造出更加高效、易用的网页应用。

    解析Html的源代码

    HTML解析不仅用于抓取网页信息,还广泛应用于自动化测试、数据挖掘和爬虫项目。通过分析DOM(Document Object Model)结构,我们可以模拟用户交互,点击按钮、填写表单等。 此外,理解HTML与CSS和JavaScript的关系...

    解析html 源文件

    另外,解析HTML也用于浏览器呈现网页,以及Web应用程序中操作和修改页面内容。 **文件解析与分析** 在提供的文件列表中,`HtmlHelper.cpp`和`HtmlAnalyzer.cpp`可能包含了实现HTML解析功能的代码。`HtmlHelper.h`和...

    解析HTML一些比较好的网站

    HTML解析应用场景 - **网络爬虫**:用于自动化抓取网页数据,如新闻、商品信息等。 - **数据清洗**:从杂乱无章的HTML代码中提取干净的数据,方便后续处理。 - **网页重构**:基于原有HTML结构进行修改或添加新功能...

    java 解析 html

    在Java编程领域,解析...为了具体实践以上步骤,你需要解压这个文件,读取HTML内容,然后应用上述代码来解析和提取所需信息。如果你的"WeatherReport"是一个网页抓取或数据提取项目的一部分,那么这些方法将非常有用。

    HTML解析源码

    HTML解析源码是编程领域中一个关键的主题,特别是在构建网页爬虫、网页解析器或处理HTML内容的应用程序时。HTML(HyperText Markup Language)是一种标记语言,用于创建和设计网页,而HTML解析则是将HTML文本转换成...

    nodejs body-parser 解析post数据实例

    `body-parser`提供了多种解析方法,如`json()`, `raw()`, `text()` 和 `urlencoded()`,分别对应不同格式的数据解析。 1. **bodyParser.json(options)** 这个中间件用于解析JSON格式的请求体。默认情况下,它仅...

    Java html代码解析

    本文将深入探讨Java库Jsoup及其在HTML解析中的应用。 Jsoup是Java的一个开源库,专为解析、操作和提取HTML内容而设计。它提供了强大的功能,使开发者能够轻松地处理HTML文档,如同操作DOM(文档对象模型)一样。...

    XML/HTML解析器(Swift).zip

    在Swift编程语言中,处理XML和HTML数据是常见的任务,特别是在构建网络应用或者解析服务器返回的数据时。"Ji (戟)" 是一个专为Swift设计的开源XML/HTML解析器,它提供了高效且灵活的方式来解析这两种标记语言。下面...

    HTML_案例解析

    本案例"HTML_案例解析"着重于通过实际的项目——高等院校档案管理系统,帮助学习者深入理解和应用HTML。 在"HTML_案例解析"中,我们将会探索以下HTML的关键知识点: 1. **基本结构**:HTML文档通常以`&lt;!DOCTYPE ...

    html_paser.rar_html 解析

    它的主要元素包括标签,如`&lt;html&gt;`、`&lt;head&gt;`、`&lt;body&gt;`、`&lt;p&gt;`、`&lt;a&gt;`等,这些标签定义了网页的内容和样式。解析HTML的过程就是将这些标签和内容转换为可读或可操作的数据结构。 HTML解析器的作用是读取HTML文档,...

    Jsoup解析html+xml

    Jsoup是一款非常强大的Java库,专门用于处理HTML和XML文档,提供了一系列简洁的API来抓取、解析、修改以及格式化这些文档。在现代Web开发中,数据抓取和网页解析是常见需求,Jsoup凭借其高效且易用的特性,成为...

    csharp解析HTML的动态库,最新版本

    总的来说,HtmlAgilityPack是C#开发人员解析和操作HTML的强大工具,无论是在爬虫项目中提取网页数据,还是在Web应用中处理用户输入的HTML,都能发挥重要作用。通过熟练掌握HtmlAgilityPack,开发者可以更高效、更...

    htmlparse 解析html网页

    HTML解析是Web开发中的一个重要环节,它涉及到从HTML文档中...通过理解其工作原理和应用,开发者可以有效地进行网页数据抓取任务。不过,针对复杂的网页结构和需求,可能需要结合其他工具和策略以提高效率和准确性。

    java web开发中所有用到的html和http解析

    在`&lt;html&gt;`内部,有`&lt;head&gt;`和`&lt;body&gt;`两个主要部分,`&lt;head&gt;`存放元数据(如标题、字符集等),`&lt;body&gt;`则包含实际的页面内容。 2. **元素与属性**:HTML元素如`&lt;h1&gt;`至`&lt;h6&gt;`表示标题,`&lt;p&gt;`表示段落,`&lt;a&gt;`创建...

Global site tag (gtag.js) - Google Analytics