web前端之Html和Css应用中的细节问题


1、居中的n种方法:

①、margin: 0 20%;

——设置margin上下外边距的值设置为0,左右外边距设置成相同的百分比,既可将盒子居中。

②、margin: 0 auto;

width: 1000px;

——设置margin上下外边距的值设置为0,左右外边距都设置成auto,然后再设置盒子的宽度,既可将盒子居中。

③、#outer_div

{

padding: 30px;

text-align: center;

}

#inner_div

{display: inline-block; /*行内块元素*/

padding: 50px;

background-color: red;}

——使用两个盒子的嵌套实现,这里只需要将父盒子中的text-align的值设置为center,然后再将子盒子display的值设置成inline-block(行内块元素)便可实现居中。

2、关于margin属性之外边距合并问题:

①、在常规文档流中,2个或以上的块级盒模型相邻的垂直margin会被合并。最终的margin值计算方法如下:

a、全部都为正值,取最大者;

b、不全是正值,则都取绝对值,然后用正值减去最大值;

c、没有正值,则都取绝对值,然后用0减去最大值。

②、相邻的盒模型中,如果其中的一个是浮动的(floated),垂直margin不会被合并,甚至一个浮动的盒模型和它的子元素之间也是这样。

③、设置了overflow属性的元素和它的子元素之间的margin不会被合并(overflow取值为visible除外)。

④、设置了绝对定位(position:absolute)的盒模型,垂直margin不会被合并,甚至和他们的子元素之间也是一样。

⑤、设置了display:inline-block的元素,垂直margin不会被合并,甚至和他们的子元素之间也是一样。

⑥、如果一个盒模型的上下margin相邻,这时它的margin可能合并覆盖(collapse through)它。在这种情况下,元素的位置(position)取决于它的相邻元素的margin是否被合并。

a、如果元素的margin和它的父元素的margin-top折叠在一起,盒模型border-top的边界定义和它的父元素相同。

b、另外,任意元素的父元素不参与margin的合并,或者说只有父元素的margin-bottom是参与计算的。如果元素的border-top非零,那么元素的border-top边界位置和原来一样。

一个应用了清除操作的元素的margin-top绝不会和它的块级父元素的margin-bottom合并。

注意,那些已经被合并覆盖的元素的位置对其他已经被合并的元素的位置没有任何影响;只有在对这些元素的子元素定位时,border-top边界位置才是必需的。

⑦、根元素的垂直margin不会被合并。

解决方案:

l 在父层div加上:overflow:hidden;

l 把margin-top外边距改成padding-top内边距;

l 父元素产生边距重叠的边有不为 0 的 padding 或宽度不为 0 且 style 不为 none 的 border

父层div加: padding-top: 1px;

让父元素生成一个 block formating context,以下属性可以实现

l * float: left/right

l * position: absolute

l * display: inline-block/table-cell(或其他 table 类型)

l * overflow: hidden/auto

l 父层div加:position: absolute;

3、float属性的消除:

①、清除浮动方法一:(clear:both;)

ul{list-style:none;}

ul li{float:left; margin:5px;}

.clear{clear:both;overflow:hidden;}

②、清除浮动方法二:(overflow:auto)

ul

{

list-style:none;

overflow:auto;

_zoom:1;

/*zoom是为了兼容ie6做的,触发ie6下的haslayout属性*/

}

ul li

{

float:left;

margin:5px;

}

③、清除浮动方法三:(:after 伪类元素)

#after ul:after

{

content: ".";

display: block;

height: 0;

line-height: 0;

clear: both;

visibility: hidden;

}

④、采用display:table将对象变成table形式

⑤、采用div标签,以及css的clear属性

⑥、采用br标签,以及css的clear属性

⑦、采用br标签,以及其自身HTML的clear属性

4、浏览器的兼容性:

①、浏览器兼容问题一:不同浏览器的标签默认的外补丁和内补丁不同

问题症状:随便写几个标签,不加样式控制的情况下,各自的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;

}

⑦、浏览器兼容问题七:透明度的兼容CSS设置

做兼容页面的方法是:每写一小段代码(布局中的一行或者一块)我们都要在不同的浏览器中看是否兼容,当然熟练到一定的程度就没这么麻烦了。建议经常会碰到兼容性问题的新手使用。很多兼容性问题都是因为浏览器对标签的默认属性解析不同造成的,只要我们稍加设置都能轻松地解决这些兼容问题。如果我们熟悉标签的默认属性的话,就能很好的理解为什么会出现兼容问题以及怎么去解决这些兼容问题。

分类:css

标签:css

好文要顶关注我收藏该文

落叶归尘

关注 - 4

粉丝 - 1

+加关注

0

0

«上一篇:利用css制作横向和纵向时间轴

»下一篇:二十五种网页加速方法和seo优化技巧

posted on2015-12-13 11:34落叶归尘阅读(103) 评论(0)编辑收藏

刷新评论刷新页面返回顶部

注册用户登录后才能发表评论,请登录注册访问网站首页。

【推荐】50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库

【免费】从零开始学编程,开发者专属实验平台免费实践!

最新IT新闻:

·摩拜单车试水卖雨衣,一件售价268元

·三星中国回应“撤销七大支社”:创新组织管理适应市场变化

·不靠大V、不干扰用户,快手的风光背后有何隐忧?

·乐视控股高级副总裁王永利疑从乐视离职

·神奇百货后,自称“鬼才少女”的王凯歆下一步就是做微商?

»更多新闻...

最新知识库文章:

·小printf的故事:什么是真正的程序员?

·程序员的工作、学习与绩效

·软件开发为什么很难

·唱吧DevOps的落地,微服务CI/CD的范本技术解读

·程序员,如何从平庸走向理想?

»更多知识库文章...

导航

博客园

首页

新随笔

联系

订阅

管理

<2017年7月>

日一二三四五六

2526272829301

2345678

9101112131415

16171819202122

23242526272829

303112345

公告

昵称:落叶归尘

园龄:1年7个月

粉丝:1

关注:4

+加关注

搜索

常用链接

我的随笔

我的评论

我的参与

最新评论

我的标签

我的标签

css(5)

css hack(1)

CSS3(1)

Firefox(1)

html(1)

html5(1)

ie和FF兼容解决方法(1)

javascript(1)

javascript代码(1)

jQuery(1)

更多

随笔分类

css(6)

html(3)

javascript(4)

jQuery(1)

随笔档案

2016年1月 (1)

2015年12月 (10)

2015年11月 (4)

阅读排行榜

1. 如何在Html的CSS中去除

标签前面小黑点,和ul、LI部分属性方法(7175)

2. CSS元素水平居中和垂直居中的方法大全(1511)

3. IE浏览器和Firefox浏览器兼容性问题及解决办法(1104)

4. 利用css制作横向和纵向时间轴(482)

5. AJAX的工作原理及其优缺点(431)

Powered by:

博客园

Copyright © 落叶归尘

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,602评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,442评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,878评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,306评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,330评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,071评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,382评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,006评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,512评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,965评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,094评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,732评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,283评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,286评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,512评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,536评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,828评论 2 345

推荐阅读更多精彩内容