关于 静态页面布局 中的一些BUG
作为一枚初级程序猿,难免在制作静态页面时会遇到一些BUG,在此,我从网上找了一些资料并且结合自己的项目开发经验,总结了一些在静态页面布局时可能会遇到的问题,希望能对初级程序猿有一定的帮助(资料请参考:http://blog.csdn.net/sir1241/article/details/52259405),本文在此基础上有所扩展和详述:
1.<img>标签被<div>包裹时,你会发现<img>图片下会有一条缝隙
原因分析:<img>是一个特殊的标签,它属于行内元素又有块级元素的部分属性,准确点说,它属于display:inline-block(但又有区别),而且它默认底部对齐
解决方法:给<img>标签加一个display:block将其转换为标准的块级元素即可解决
2.使用<ul><li></li></ul>制作导航栏的二级导航时,二级导航所在ul总会有一定的偏差
原因分析:二级导航与一级导航为子父级关系,而且我们习惯与把二级导航的ul放在一级导航内元素的后面,导致浏览器解析时会解析出多的文本节点
解决方法:给二级导航设置为绝对定位,并清楚浮动
3.在制作PC端和移动端的静态页面时,由于PC端和移动端的UI都是分开的,在PC端进行静态页面布局时保证正常分辨率正常显示,倘若你使用百分比布局时,在页面大小发生变化的时候会发生元素的偏移
原因分析:静态页面布局,PC端和移动端的页面大小是有很大差别的,而且PC端和移动端各种浏览器的渲染也有差别,像素点占比也有差别
解决方法:给页面中的所有元素单位都使用百分别,切将字体单位大小设置为em/rem等单位
4.布局时居中,利用line-height想让元素垂直居中与页面,利用text-align让元素水平居中
原因分析:line-height是指行高,既文本的行高,延伸为内容的行高,text-align指文本水平居中,可延伸为内容水平居中
解决方法:元素的垂直居中利用行内元素设置vertical-align:middle实现,水平居中可以设置块级元素的margin:auto实现,在特殊情况(高度确定等)下,可以使用绝对定位,设置偏移量为50%,同时设置对应方向的margin反向偏移元素宽高距离一半(例:某div宽度100px,高100px,先让该div水平居中,绝对定位后设置left:50%;margin-left:-50px),此方法居中后可根据情况而清除浮动
5.在使用position:absolute定位时,其相对位置不明确,想当然的使用此方法定位,结果发现定位元素没有达到理想的效果
原因分析:position:absolute的相对位置是已上一级有position设定的元素位置为基准,若上一级没有则再往上一级,依次类推直到body元素,也就是说,任何元素都没设置position,此时absolute的基准是body元素
解决方法:在使用position:absolute定位时,找到你所想定位的地方,再找到此地方所在的元素,并以此元素为父级元素(定位元素放入其中),并给此父级元素设置position:relative即可
6.同时使用vertical-align和line-height对于元素位置的影响
原因分析:vertical-align和line-height,一个是针对元素,一个是针对内容,当然此内容也可以包括子级元素,这时对子级元素设置二者可能出现属性重叠,造成效果不理想,例:当文字和图片处于同一级是,同时设置vertical-align和line-height并不能使文字和图片居中对齐
解决方法:此时让上级元素的高和图片的高相同,在图片属性中设置vertical-align:top,同时设置文字的height和line-height即可居中(line-height的值为height的一半)
7.元素高度塌陷问题(并非只有浮动)
原因分析:当一个元素的所有子级元素都脱离正常文档流(浮动或者绝对定位),而父级元素仍处于正常文档流,由于层级关系,导致父级元素中没有实打实的元素存在,导致高度撑不起来,从而对父级元素设定的有关背景的样式全部无效
解决方法:
7-1.对父级元素设置适合的CSS高度,强行撑起高度(不推荐使用,建议父级元素高度固定时使用)
7-2.clear:both清除浮动——新建一个样式选择器CSS命名为“clear”的div,对应选择器样式为“clear:both”,在父级元素结束前加此div引入“class="clear"”样式(即空标签方法,不推荐使用)
7-3.给父级元素设置overflow:hidden(因为overflow:hidden属性相当于是让父级紧贴内容,但会导致部分子级元素显示异常,只推荐没有使用position或对overflow:hidden理解时使用)
7-4.将父级元素也一起设置与子级元素设置相同的属性(如:浮动,不推荐使用)
7-5.给父级元素设置 display:table(不推荐使用)
7-6.结尾处加 br标签 clear:both(不推荐使用)
7-7.给父级元素设置 overflow:auto (不推荐使用,需要出现滚动条或者确保你的代码不会出现滚动条使用)
7-8.给父级元素定义 伪类:after 和 zoom (clearfix方法,此方法为当前主流清楚浮动方法,强烈推荐使用,建议定义公共类,以减少CSS代码)
clearfix代码如下:
.clearfix:after {
content:"";
display:block;
height:;
clear:both;
visibility: hidden;
}
.clearfix {*zoom:;}
8、IE浏览器中使用a标签套img标签会出现边框的问题
原因分析:IE浏览器是目前的主流浏览器中兼容性问题最多的浏览器
解决方法:同时设置img和a标签的border:0即可
9、z-index的使用
z-index只能在position属性值为relative或absolute或fixed的元素上有效。
希望这些经验对初级程序猿有一定的帮助!
关于 静态页面布局 中的一些BUG的更多相关文章
- 在HTML页面布局中,position的值有几种,默然的值是什么
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- 负值之美:负margin在页面布局中的应用
本文转载自:http://www.topcss.org/?p=94,有修改. 负数给人总是一种消极.否定.拒绝之感,不过有时利用负margin可以达到奇妙的效果,今天就表一表负值在页面布局中的应用.这 ...
- 静态页面HTML中标签的优化(转)
静态页面HTML中标签的优化 (2010-04-03 20:54:06) 标签: 电脑 name 罗马数字 css 表单 杂谈 分类: 网页制作 从网上看了一篇关于静态页面中标签优化的问题,感觉还不错 ...
- 在静态页面html中跳转传值
在html中通过"?"传值--------<a href="index2.html?name=caoy">静态传值</a> 在跳转到的页 ...
- 【html+css】关于页面布局中遇到的问题记录
关于行内元素: 行内元素设置width无效, height无效(可以设置line-height), margin上下无效,padding上下无效,margin和padding可设置左右. text ...
- margin负值在页面布局中的应用
http://www.w3school.com.cn/tiy/t.asp 预览工具 一.左右列固定,中间列自适应布局 此例适用于左右栏宽度固定,中间栏宽度自适应的布局.由于网页的主体部分一般在中间,很 ...
- (负)-margin在页面布局中的应用
有关margin的原理可以看看这篇文章:http://www.cnblogs.com/2050/archive/2012/08/13/2636467.html#2457812 有关margin负值的几 ...
- 负margin在页面布局中的应用
关于负margin的原理建议大家看看这篇文章:http://www.cnblogs.com/2050/archive/2012/08/13/2636467.html#2457812 一. 左右列固定, ...
- 关于页面布局中,如何让一个div水平和垂直居中的五个方案
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
随机推荐
- bash下. : () {} [] [[]] (())的解释 (非原创,侵删)
Copy from http://blog.chinaunix.net/uid-20380484-id-1692999.html bash下有很多像{}.[]等一些符号命令,下面是我对一些常用的符号命 ...
- Java中 EvenQueue.invokeLater用法
在Java中Swing是线程不安全的,是单线程的设计,这样的造成结果就是:只能从事件派发线程访问将要在屏幕上绘制的Swing组件.事件派发线程是调用paint和update等回调方法的线程,它还是事件 ...
- Spring Security教程系列(一)基础篇-2
第 4 章 自定义登陆页面 Spring Security虽然默认提供了一个登陆页面,但是这个页面实在太简陋了,只有在快速演示时才有可能它做系统的登陆页面,实际开发时无论是从美观还是实用性角度考虑,我 ...
- 谈一谈Java8的函数式编程 (三) --几道关于流的练习题
为什么要有练习题? 所谓学而不思则罔,思而不学则殆,在系列第一篇就表明我认为写博客,既是分享,也是自己的巩固,我深信"纸上得来终觉浅,绝知此事要躬行"的道理,因此之后的几篇博 ...
- java中文件操作《一》
在日常的开发中我们经常会碰到对文件的操作,在java中对文件的操作都在java.io包下,这个包下的类有File.inputStream.outputStream.FileInputStream.Fi ...
- 移动端网页meta设置和响应式
苏宁易购WAP的meta分析 响应式 meta设置 媒体查询时读的width为viewport的宽度.viewport宽度为手机分辨率.比如note2 1280*720.需要重置为设备 640*360 ...
- 每天一个JS 小demo之商品下架特效制作,主要知识点:定时器,倒计时,抖动特效。PS:由于不方便上传文件夹,只能上传效果图,图片等素材需自寻哟。
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- pythion 第二弹
################################第二节################################################python中数据类型的常见的方法 ...
- 一天搞定CSS:字体font--04
1.字体体系 2.字体各属性取值 说明: 每一个属性后面的分支是属性值,以及对属性值的说明. 比如font-weight- - - -有两个取值:bold,normal 3.演示代码 <!DOC ...
- 【JAVAEE学习笔记】hibernate04:查询种类、HQL、Criteria、查询优化和练习为客户列表增加查询条件
一.查询种类 1.oid查询-get 2.对象属性导航查询 3.HQL 4.Criteria 5.原生SQL 二.查询-HQL语法 //学习HQL语法 public class Demo { //基本 ...