|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
目前我们的站就是div+CSS做的,美工可以通过css直接控制我的程序输出的页面动态数据的样式DIV就只是布局元素.
破洛洛文章简介:margin用法小结.
margin的位移偏向是指margin数值为正值时分的情况,假如是负值则位移偏向相反。
如上图所示:黄色子元素盒的margin-top,margin-left为负值时,如-10px,则黄色子元素盒向上(向左)挪动,超出相邻元素10px;黄色子元素盒的margin-right,margin-bottom为负值时,如-10px,黄色子元素盒不动,它右侧(下边)的相邻元素和左移(上移)10px,垂直外边距兼并成绩垂直外边距兼并成绩罕见于第一个子元素的margin-top会顶开父元素与父元素相邻元素的间距缘故原由:一个盒子假如没有上补白(padding-top)和上边框(border-top),那末这个盒子的上边距会和其外部文档流中的第一个子元素的上边距堆叠。父元素的第一个子元素的上边距margin-top假如碰不到无效的border大概padding.就会不休一层一层的找本人“向导”(父元素,先人元素)的贫苦。只需给向导设置个无效的border大概padding就能够无效的控制这个目无向导的margin避免它越级用Margin仍是用Padding什么时候应该利用margin:
1、必要在border外侧增加空缺时。
2、空缺处不必要背景(色)时。
3、高低相连的两个盒子之间的空缺,必要互相抵消时。如15px+20px的margin,将失掉20px的空缺。什么时候应该时用padding:
1、必要在border内测增加空缺时。
2、空缺处必要背景(色)时。
3、高低相连的两个盒子之间的空缺,但愿即是二者之和时。如15px+20px的padding,将失掉35px的空缺。小结:margin是用来离隔元素与元素的间距;padding是用来离隔元素与内容的距离。margin用于结构分隔元素使元素与元素互不干系;padding用于元素与内容之间的距离,让内容(笔墨)与(包裹)元素之间有一段“呼吸间隔”。
罕见的扫瞄器下margin呈现的bug
IE6中双边距Bug:
产生场所:当给父元素内第一个浮动元素设置margin-left(元素float:left)或margin-right(元素float:right)时margin更加。
办理办法:是给浮动元素加上display:inline;CSS属性;大概用padding-left取代margin-left。
道理剖析:块级工具默许的display属性值是block,当设置了浮动的同时,还设置了它的外边距就会呈现这类情形。大概你会问:“为何以后的工具和第一个工具之间就不存在双倍边距的Bug”?由于浮动都有其绝对应的工具,只要相对其父工具的浮动工具才会呈现如许的成绩。第一个工具是绝对父工具的,而以后工具是绝对第一个工具的,以是以后工具在设置后不会呈现成绩。为何display:inline能够办理这个双边距bug,起首是inline元素或inline-block元素是不存在双边距成绩的。然后,float:left等浮动属性可让inline元素haslayout,会让inline元素体现得跟inline-block元素的特征一样,撑持高宽,垂直margin和padding等,以是divclass的一切款式能够用在这个displayinline的元素上。
IE6中浮动元素3px距离Bug:
产生场所:产生在一个元素浮动,然后一个不浮动的元素天然上浮与之接近会呈现的3px的bug。
办理办法:右侧元素也一同浮动;大概为右侧元素增加IE6Hack_margin-left:-3px;从而打消3px间距。
道理剖析:IE6扫瞄器缺点Bug。
IE6/7负margin埋没Bug:
产生场所:当给一个有hasLayout的父元素内的非hasLayout元素设置负margin时,超越父元素部分不成见。
办理办法:往失落父元素的hasLayout;大概赋hasLayout给子元素,并增加position:relative;
道理剖析:IE6/7独占的hasLayout发生成绩。
IE6/7下ul/ol标志消散bug:
产生场所:当ul/ol触发了haslayout而且是在ul/ol上写margin-left,后面默许的ul/ol标志会消散。
办理办法:给li设置margin-left,而不是给ul/ol设置margin-left。
道理剖析:IE6/7扫瞄器Bug
IE6/7下margin与absolute元素堆叠bug:
产生场所:双栏自顺应结构中,左边元素absolute相对定位,右边的margin撑开间隔定位。在IE6/7下左边使用了absolute属性的块级元素与右侧的自顺应的笔墨内容堆叠。
办理办法:把左边块级元素变动为内联元素,好比把div改换为span。
道理剖析:这是因为IE6/IE7扫瞄器将inline程度标签元素和block程度的标签元素没有加以辨别厚此薄彼衬着了。属于IE6/7扫瞄器衬着Bug。
IE6/7/8下automargin居中bug:
产生场所:给block元素设置marginauto没法居中
办理办法:呈现这类bug的缘故原由一般是没有Doctype,然后触发了ie的quirksmode,加上Doctype声明就能够了。在《打败IE的葵花宝典》里给出的办法是给block元素增加一个width可以办理,但依据自己亲测,加with此种办法是有效的,假如没有Doctype即便给元素增加width也没法让block元素居中。
道理剖析:短少Doctype声明。
IE8下input[button|submit]设置margin:auto没法居中
产生场所:ie8下,假如给像button如许的标签(如buttoninput[type="button"]input[type="submit"])设置{display:block;margin:0auto;}假如不设置宽度的话没法居中。
办理办法:能够给为input加上宽度
道理剖析:IE8扫瞄器Bug。
IE8百分比padding垂直marginbug:
产生场所:当父元素设置了百分比的padding,子元素有垂直的margin的时分,就仿佛父元素被设置了margin一样。
办理办法:给父元素加一个overflow:hidden/auto。
道理剖析:IE8扫瞄器Bug。
</p>
你用什么用的熟练就用什么,讲究的是效率,客户永远不管你用什么,页面就要好看,功能就要好用,还有时间和成本的问题。 |
|