标签 css 下的文章

问题:

这个问题在web设计当中经常见到,IE是不会按照标准来实现盒模型的,那什么又是盒模型呢?他的作用就是告诉浏览器用什么样的方式来摆放html元素.而对于每一个html元素来说都有自己的宽度高度,以及它的边框,同时就会产生他和边框之间的距离我们叫做内边距(padding),已经和其他元素之间的距离及外边距(margin).这样形象的看就是说对于每一个元素都有一个立方体来装载.说道立方体,估计在以后的3d页面上就有用了.

说道对于盒子的实现,在火狐和其它的标准实现的浏览器中,他会把边距添加到盒子的大小上,而在IE中,他会把边距直接放置在已经规定好大小的盒子里面,而不会再去调整盒子的大小,这个就是IE和火狐以及实现W3C标准的其他浏览器之间的不同,而从实际的使用情况中来说,似乎IE的实现更加让人感觉靠谱.以为我们直接面对就是一个定大小的盒子.我们直接面对盒子来布局页面.而对于实际现实的元素来说,控制其大小也是更加方便.在IE中,这个时候我们面对的就是盒子在解决一些问题.而在实现盒子标准的浏览器中,我们面对的就是很多东西了.首先我们要定下来元素大小,然后是内边距,border,外边距,之后我们才知道了一个盒子到底有多大小.或者我们就从实现生活中来说,当你测量一个盒子的大小时候,你没有办法来测到这个盒子的板子有多厚,你只有从外面测量了.而这个时候你面对的就是一个完整的盒子.下面有个例子来说明其中的一些差别:

<style>
* {
 font-family: verdana;
 font-size: 12px;
}
</style>
<div style="border: 1px solid black;">
 <div style="margin: 10px; border: 2px solid red;
padding: 10px;background-color: orange; float: left;
width: 100px;"><div style="background-color: lime;">&nbsp;</div></div>
 <div style="margin: 10px; border: 2px solid red;
padding: 10px; background-color: orange; float: left;
width: 100px;"><div style="background-color: lime;">&nbsp;</div></div>
 <div style="margin: 10px; border: 2px solid red;
padding: 10px; background-color: orange; float: left;
width: 100px;"><div style="background-color: lime;">&nbsp;</div></div>
 <div style="clear: both;"></div>
</div>

image

上面的例子说明什么呢:

假如你创建了一个宽为400像素的元素,然后内外边距都是10px.然后实际上最后你得到的一个盒子就是440的宽度.而在IE中,如果你创建了同样的盒子,那么最后你得到的就是一个420px的盒子.当然这样分别讲解只是一个简单的问题,可是当你放在同一个页面中的时候,调用同样的css文件的时候,在面对不同的浏览器的时候,问题就出现了!

解决方案:

解决这个问题也不是很麻烦,就是在你想要控制的元素外面套一个元素,也就是一个定大小(宽度)的盒子没有任何的内边距,他不会再变.而你去通过控制里面的盒子的边距来控制大小.

https://developer.mozilla.org/en/Mozilla%27s_Quirks_Mode

https://developer.mozilla.org/en/Gecko%27s_%22Almost_Standards%22_Mode

https://developer.mozilla.org/en/Mozilla_Quirks_Mode_Behavior

https://developer.mozilla.org/en/Quirks_Mode_and_Standards_Mode

http://kino.iteye.com/blog/241260

http://zh.wikipedia.org/wiki/%E6%80%AA%E5%BC%82%E6%A8%A1%E5%BC%8F

http://zh.wikipedia.org/wiki/HTML

http://zh.wikipedia.org/wiki/Internet_Explorer_6

http://en.wikipedia.org/wiki/Quirks_mode

www.aoao.org.cn/blog/2007/01/browser-mode/

http://www.quirksmode.org/css/quirksmode.html

http://lefter.net/blog/quirks-standards/

http://zh.wikipedia.org/wiki/IE%E7%9B%92%E6%A8%A1%E5%9E%8B%E7%BC%BA%E9%99%B7

9 Most Common IE Bugs and How to Fix Them | Nettuts+

5 Great Uses for the CSS Display Property

When to Use Margins and Padding

What happens in Quirks Mode in web browsers?

CSS Newbie Example: Understanding CSS Floats

JavaScript - Cookies

CSS - Contents and compatibility

Peter-Paul Koch - mobile platform strategist, consultant, and trainer

Lefter » Quirks模式与Standards模式

怪异模式 - 维基百科,自由的百科全书

IE盒模型缺陷 - 维基百科,自由的百科全书

Quirks mode - Wikipedia, the free encyclopedia

CSS Box Model differences in Firefox and Internet Explorer « Web Development Tutorials

Activating Browser Modes with Doctype

Document Type Declaration - Wikipedia, the free encyclopedia

Web browser engine - Wikipedia, the free encyclopedia

12 The HTML syntax — HTML Standard

DOCTYPE grid

QuirksMode - for all your browser quirks

Don&apos;t forget to add a doctype - Quality Web Tips

HTML Validation: Choosing a DOCTYPE

用doctype激活浏览器模式 @ 随网之舞

JavaScript Kit- Your comprehensive JavaScript, DHTML, CSS, and Ajax stop

CSS Box Model differences in Firefox and Internet Explorer « Web Development Tutorials

Cascading Style Sheet Compatibility in Internet Explorer 7

IEBlog 简体中文

Activating Browser Modes with Doctype

!DOCTYPE

经典论坛-前端开发 UI设计 web编程

随网之舞

很多时候,总想一个比较有意义的div功能块始终显示在用户的眼前,也就是说当用户往下滚动网页的时候,也不会随着页面的滚动而隐藏这个div功能块.很常见的就是取得当前窗口的坐标.当页面滚动到某一个临界值的时候就给这个div添加一个css属性,然后让这个div保持到某一个坐标:

 

image

 

image

image

 

image

image

对于网站的性能,对于网页的精致一定要有偏执的要求!不管现在是否和你有关,还是以后属于自己的网站一定要有这个精神才行.

高性能网站建设指南

今天我主要是把css的background-position给学习了下.其实在上面的《高性能网站建设指南》指南中就说了对于一个网页的渲染并不是常常所说的完全大部分的时间都花在了很数据库交互取得数据,而是由于一个浏览器载入一个页面需要下载很多的资源文件阻塞造成的,我没有做过测试.你管你信不信,我信.因为是大家.没有理由不信.当然并不是说写代码就不要太注意性能了,我们同样需要努力.所以我们的解决方案就是尽可能的减少浏览器请求的资源文件数量减少同时下载造成的阻塞.而对于图片的处理就是CSS Sprites .也就是把同一个页面的图片放在一张图片上,然后利用css来显示具体的图片在具体的位置;而这个时候就要用到background-position,而更多的在就要用到它的负值了.到底是什么作用呢?下面来看看:

background-position

 

在上面的图片中显示的是在一个div上设置背景图,而一般位置的计算就是从div的左上角(0,0)开始往右往下开始像素数递增.如果我们这个时候想要把图上的红点作为div左上角的开始,我们应该怎么办?很简答就是我们要把图片往左上移动.这个移动也就是要改变css中的background-position 的值,刚才我说了在往右下移动的时候像素数是递增的,所以往左上移动就得减了啊.这个时候就出现所谓的负值了.

.n_header_inner a.logo {
	background:url(/res/v3/img/logo.gif) 0 0 no-repeat;
	display:block;
	overflow:hidden;
	width:180px;
	height:80px; 
	text-indent:-999em;
	float:left;
}
.n_header_inner a.logo:hover {
	background-position:-50px -50px;
}

这样就能够把那个红点作为div的左上角起点了.原来一切都是这么有规则的.其实一切很简单,但是就看你到底想不想做到最好.

我一个页面有多少内容作为浏览器,你不知道?

真他妈开玩笑了,就跟这几天老罗的电影<小马>里的老罗要个中杯一样悲剧.

不管我怎么写样式,内容还是第一位的吧,你作为浏览器你不知道应该首先把我的内容全给我显示出来嘛?

遇到一个页面.ie7下面就直接不能够scroll down.气不打一处来啊.受不了,我也不知道到底什么地方出错了啊,写了什么怪样式,其实这方面我没有遇到问题也是我的问题,我一直在使用google chrome或者firefox.而ie压根就不用,可是客户告诉我说页面显示不全,什么问题这是.

最后直接的页面里添加了样式:

body{overflow:scroll;}

好,你不给我显示全,我就让你硬显示,看谁牛逼,你再牛不给我显示啊.

不过有点丑页面,就是右边出现了两个滚动条.不过还是把它给显示出来了!