学习笔记2
双标签: <html><head><title><body><table><tr><td><span><p><form><h1><h2><h3><h4><h5><h6><object><style><b><u><strong><i><div><a><script><center>
单标签: <br><hr><img><input><param><meta><link>
em
1. em的值并不是固定的;
2. em会继承父级元素的字体大小。
所以我们在写em的时候,需要注意两点:
1. body选择器中声明Font-size=62.5%;
2. 将你的原来的px数值除以10,然后换上em作为单位;
3. 重新计算那些被放大的字体的em数值。避免字体大小的重复声明。
浏览器兼容问题一:不同浏览器的标签默认的外补丁和内补丁不同 问题症状:随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大。 碰到频率:100% 解决方案:CSS里 *{margin:0;padding:0;} 备注:这个是最常见的也是最易解决的一个浏览器兼容性问题,几乎所有的CSS文件开头都会用通配符*来设置各个标签的内外补丁是0。
浏览器兼容问题二:块属性标签float后,又有横行的margin情况下,在IE6显示margin比设置的大 问题症状:常见症状是IE6中后面的一块被顶到下一行 碰到频率:90%(稍微复杂点的页面都会碰到,float布局最常见的浏览器兼容问题) 解决方案:在float的标签样式控制中加入 display:inline;将其转化为行内属性 备注:我们最常用的就是div+CSS布局了,而div就是一个典型的块属性标签,横向布局的时候我们通常都是用div float实现的,横向的间距设置如果用margin实现,这就是一个必然会碰到的兼容性问题。
浏览器兼容问题三:设置较小高度标签(一般小于10px),在IE6,IE7,遨游中高度超出自己设置高度 问题症状:IE6、7和遨游里这个标签的高度不受控制,超出自己设置的高度 碰到频率:60% 解决方案:给超出高度的标签设置overflow:hidden;或者设置行高line-height 小于你设置的高度。 备注:这种情况一般出现在我们设置小圆角背景的标签里。出现这个问题的原因是IE8之前的浏览器都会给标签一个最小默认的行高的高度。即使你的标签是空的,这个标签的高度还是会达到默认的行高。
浏览器兼容问题四:行内属性标签,设置display:block后采用float布局,又有横行的margin的情况,IE6间距bug 问题症状:IE6里的间距比超过设置的间距 碰到几率:20% 解决方案:在display:block;后面加入display:inline;display:table; 备注:行内属性标签,为了设置宽高,我们需要设置display:block;(除了input标签比较特殊)。在用float布局并有横向的margin后,在IE6下,他就具有了块属性float后的横向margin的bug。不过因为它本身就是行内属性标签,所以我们再加上display:inline的话,它的高宽就不可设了。这时候我们还需要在display:inline后面加入display:talbe。
浏览器兼容问题五:图片默认有间距 问题症状:几个img标签放在一起的时候,有些浏览器会有默认的间距,加了问题一中提到的通配符也不起作用。 碰到几率:20% 解决方案:使用float属性为img布局 备注:因为img标签是行内属性标签,所以只要不超出容器宽度,img标签都会排在一行里,但是部分浏览器的img标签之间会有个间距。去掉这个间距使用float是正道。(我的一个学生使用负margin,虽然能解决,但负margin本身就是容易引起浏览器兼容问题的用法,所以我禁止他们使用)
浏览器兼容问题六:标签最低高度设置min-height不兼容 问题症状:因为min-height本身就是一个不兼容的CSS属性,所以设置min-height时不能很好的被各个浏览器兼容 碰到几率:5% 解决方案:如果我们要设置一个标签的最小高度200px,需要进行的设置为:{min-height:200px; height:auto !important; height:200px; overflow:visible;} 备注:在B/S系统前端开时,有很多情况下我们又这种需求。当内容小于一个值(如300px)时。容器的高度为300px;当内容高度大于这个值时,容器高度被撑高,而不是出现滚动条。这时候我们就会面临这个兼容性问题。
浏览器兼容问题七:透明度的兼容CSS设置 做兼容页面的方法是:每写一小段代码(布局中的一行或者一块)我们都要在不同的浏览器中看是否兼容,当然熟练到一定的程度就没这么麻烦了。建议经常会碰到兼容性问题的新手使用。很多兼容性问题都是因为浏览器对标签的默认属性解析不同造成的,只要我们稍加设置都能轻松地解决这些兼容问题。如果我们熟悉标签的默认属性的话,就能很好的理解为什么会出现兼容问题以及怎么去解决这些兼容问题。
get和post方法的区别
在form表单提交数据的过程中,method属性提供了两个值:get,post,默认为get方式 即一种为get提交,一种是post提交。
总结如下:
1.本质 Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求
2.服务器端获取值的方法 get方式提交的数据,服务器端使用request.QueryString获取变量的值 post方式提交的数据,服务器端使用request.Form获取数据
3.安全性 get方式安全性低,post方式较安全。但是post方式执行效率要比get方式差一些。
4.机制 get是把参数数据队列加到提交表单的action属性所指的URL中,如:http://www.xxx.com?sessonid=db23434&name=hongten&age=20。在URl中,值和表单南日各个字段一一对应,并且这些在URl中对用户来说是可见的,即用户时可以看到的。如:name=hongten。 post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到action属性所指的URL地址,对于用户来说,这是透明的。
5.大小 URL不存在参数上限的问题,HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。 理论上讲,POST是没有大小限制的,HTTP协议规范也没有进行大小限制,说“POST数据量存在80K/100K的大小限制”是不准确的,POST数据是没有限制的,起限制作用的是服务器的处理程序的处理能力。 对于ASP程序,Request对象处理每个表单域时存在100K的数据长度限制。但如果使用Request.BinaryRead则没有这个限制。 由这个延伸出去,对于IIS 6.0,微软出于安全考虑,加大了限制。
我们还需要注意:
1).IIS 6.0默认ASP POST数据量最大为200KB,每个表单域限制是100KB。
2).IIS 6.0默认上传文件的最大大小是4MB。
3).IIS 6.0默认最大请求头是16KB。 IIS 6.0之前没有这些限制。
总结: one:get方式的安全性较post方式要差一些,所以,包含一些重要的信息的话,简易使用post数据提交方式 two:在做查询统计的时候,使用get方式要更好一些;而在做数据的添加,修改或删除操作时,建议使用post数据提交方式
http协议数据传输方式
http协议的一些特点:
1)无状态 http协议是一种自身不对请求和响应之间的通信状态进行保存的协议,即无状态协议。 这种设置的好处是:更快的处理更多的请求事务,确保协议的可伸缩性 不过随着web的不断发展,有时候,需要将这种状态进行保持,随即,就引入了cookie技术,cookie技术通过在请求和响应报文中写入cookie信息来控制客户端的状态。
2)持久性 正常在发送http时,都需要建立TCP的连接,再发送报文。
3)管线化 如果一个http请求,请求了大量的图片等大文件,那么其他的http请求怎么办呢? 现在,管线化技术的出现,使得http请求比持久性连接更要快;特点在于:请求数越多,时间差越明显。
4)内容编码 由于某些报文的内容过大,因此在传输时,为了减少传输的时间,会采取一些压缩的措施。 例如上面的报文信息中,Accept-Encoding就定义了内容编码的格式:gzip 有下面几种方式: gzip:GNU压缩格式 compress:UNIX系统的标准压缩格式 deflate:是一种同时使用了LZ77和哈弗曼编码的无损压缩格式 identity:不进行压缩
5)多部分对象集合 有的时候传输的内容,不仅仅是一些字符串,还有可能是一些图片,字符,音乐二进制等混杂的内容。 这就需要使用多部分对象集合,multipart,例如在使用java编写web上传文件的代码时,需要在form中指定form的编码格式。 设置form的enctype属性的值为multipart/form-data。 这是因为默认的情况下form使用的编码格式是:applicatin/x-www-form-urlencoded,这种编码格式会把所有的内容进行编码,不适合上传文件这种情况。 这两种编码格式的区别主要是: multipart/form-data 会以控件为基准,编码form中的内容。 application/x-www-form-urlencoded 会把form中的内容编码成键值对的形式。
6)范围请求 有些场景下,http报文请求一些很大的图片,但是加载过程很慢。 比如我们登录一些大图片的网址,会发现有时候图片是一块一块加载的。 这就是因为设置了http请求的长度,这样就可以分块的加载资源文件。 在请求报文中使用Range属性,在响应报文中使用Content-Type属性都可以指定一定字节范围的http请求。
处于安全考虑,常用的一般都是GET和POST两种,先来介绍下这两种
1)GET:获取资源 GET方法用来请求访问已被URL识别的资源
2)POST:传输实体主体 POST方法用来请求服务器传输信息实体的主体
margin属性用于指定对象的外边距,也就是对象与对象之间的距离。该属性可指定1至4个属性值,各属性值之间以空格分隔。
CSS样式中还提供了margin-top、margin-right、margin-bottom和margin-left 4个属性用于单独指定某一个方向的外边距。
语法 margin : auto | length;
auto:表示默认的外边距。
length:百分比或长度数值。
margin属性可以通过以下几种方式设置对象的外边距:
提供4个属性值,分别用于按照上、右、下、左的顺序依次指定外边距。
只设置一个属性值,用于设置全部的外边距。
提供两个属性值,这时第一个用于设置上下方向外边距,第二个用于设置左右方向外边距。
设置3个属性值,第一个用于设置上方外边距,第二个用于设置左右方向的外边距,第三个用于设置下方外边距。