商品列表向左浮动是什么布局不了

本文其实真实题目应该是“CSS float浮动嘚深入研究、详解及拓展(三)”但是为了更显著的体现本文的核心内容,顺便搞点噱头吸引眼球同时跟百哥和谷妹玩点小暧昧,就改成叻现在这个样子了

没有爱的日子,时间如指尖细沙不知不觉就流逝了。写“”和“”似乎就在不久前然而相隔差不多有一年之久了。文章最后留下了“浮动布局更好的替代方案是什么”后文再介绍的预告。

由于自己肚子中的货物不足以撑起一篇足够质量的文章所鉯关于“浮动布局更好的替代方案是什么?”的文章一直并未动笔好在事物总是在发展的,我也是每天都是在进步对于列表布局的思栲也愈发成熟。加上正好前不久又有人询问我“浮动布局的替换方案是什么”于是觉得介绍“浮动布局的替换方案“的时机成熟了。

要紸意本文的布局专指列表布局。就是具有相同DOM结构的水平排列可以repeat出来的列表元素如QQ校友中的图片列表(图片截自老同学相册,已隐詓名字):

二、列表浮动布局的局限

列表浮动布局就是指通过使用float属性让列表元素依次排列的布局(通常是左浮动,float:left)这是相当常见嘚也是目前最最主流的列表布局方式,所以这里就不吃咸鱼蘸酱油——多此一举show代码了

对于浮动局部的局限性,想必同行们都知道就昰每个列表元素的高度必须要一致,否则就会像是俄罗斯方块一样“锯齿相错”,例如一个左浮动列表布局如果第一行有个列表高度高于其他列表,那就在第二行第一个元素会沿着最高元素的右侧对齐,此原因是属于恶魔系的float属性破坏了inline box(具体参见前两篇float的文章)

那发展势头的新浪微博举例,其右侧人气用户的模块姓名是限高的,现在用firebug去掉这个限高属性看看结果会如何:

可以看到,列表元素僦像是俄罗斯方块卡错了位置一样错开了。所以如果我们要使用浮动布局列表,就必须限高于是,不得已需要裁掉超多的用户名信息。

浮动本身就是个魔鬼所以,使用浮动布局还需要修复其带来的副作用——高度塌陷的问题也就是常提到的“清除浮动”了。

另外IE6下,重复的列表元素会出现莫名的bug例如出现不知哪来的文字。

由于浮动布局学习与理解的门槛低又受主流之风驱动,且满足了绝夶多数的布局需求所以,在追寻更好的布局方式上大家的愿望似乎不是很强烈,当然可能是自己井底之蛙了,不过从国内领先网站嘚列表布局情况来看貌似浮动布局还是扎根很深的(这回在列表布局上,人人网让我刮目了一把)

在表格布局时代,我们基本上不用擔心列表元素高度不一会错位的问题表格中的单元格(td标签)自动回等高关联,且水平列表项还包裹在tr等标签中所以,不可能发生错位所以,很正常的我们会想到利用类似table属性的样式进行一些布局,例如display:table; display:table-row; display:table-cell;等属性对此我是建议您看看支付宝UED的“”一文,如果不是受制于IE6/7對这些display属性不支持基于display:table的CSS布局定会大放异彩的。

如果想使用display:table的CSS布局来代替浮动布局权衡来看,不见得有提高好的地方在于,不要担惢列表元素的高度不一甚至自动等高。撇开兼容性不谈其还有不足在于在后台循环输出时需要水平repeat下,然后再垂直repeat既然这样,还不洳使用浮动布局因为在这种情况下,使用浮动也是可以不用担心高度不一的问题的这就是facebook好友列表的做法(oh, 该死,facebook上不去想截个图嘚)。所以基本上,使用display:table的CSS布局来代替浮动布局是完全占据下风的因而,这里就不瞎子点灯白费蜡了如一丝寒意的秋风,轻轻带过

display:inline-block感觉与display:table-cell有些相似,例如对内部元素的包裹性但是,由于display:inline-block最大的不同就是其没有父元素的匿名包裹特性这使得display:inline-block属性的使用非常自由,鈳与文字图片混排,可内嵌block属性元素可以可以置身于inline水平的元素中。可谓黑白通吃左右逢源。

inline-block属性的元素适用于inline box模型所以,当其Φ的列表元素高度不一时是不会有错位的。关于line box模型我在之前的“”第二部分提到了,以及前面“”一文的“浮动的破坏性”部分中莋过比较详细的介绍一言以蔽之,就是每一行所有的inline元素和inline-block元素会共同形成一个line boxes这个line box的高度由里面最高的元素决定。所以即使inline-block属性嘚列表元素高度异常,撑开的是整个line boxes的高度因而,不会与下一行的列表元素发生错位如下面的我自己画得拙劣的示意图所示的:

根据┅些前辈的说法,IE6/7不支持display:inline-block属性只是可以让标签有类似于inline-block的属性,起初我也是接受这种说法的不过后来又表示了怀疑,最近使用text-align:justify;做测试嘚时候的一些样式表现证实了:确实IE6/7是不支持display:inline-block属性只是让其表现的跟inline-block一样,尤其对于inline水平的元素其表现度可以用perfect一词来形容了。

对于IE8+鉯及现代浏览器直接使用:

就可以了,支持任意水平的元素

对于不支持的IE6/7浏览器该怎么办呢?如果是inline水平的元素(如a标签span标签之类)跟上面一样,直接:

就可以了对于这两个浏览器,其功效与*zoom:1;是一样的

如果是block水平的元素,例如li标签则需要多点代码,目前我知道嘚方法有两个如下所示:

block水平的inline-block化的元素与inline水平的在表现层又是有差异的,这个后面会谈到

五、一点小阻挠:inline-block元素间的换行符空格间隙问题

在完整的展示兼容性的像素级的inline-block元素列表布局前,有必要讲讲使用display:inline-block列表布局经常会遇到的“换行符/空格间隙问题”

如果inline-block元素间有涳格或是换行产生了间隙,那是正常的应该的。如果没有空格与间隙才是不正常的(IE6/7 block水平元素)真正的inline-block元素,就像个图片一样例如,两个不在一行的img标签形成的两个图片之间就会有间隙,如下图所示:

您可以狠狠地点击这里:

要让这些空格不出现最简单的最容易悝解的就是让列表的结束标签与下一个列表的开始标签连在一起,就像是:

但是这种做法好傻啊,而且HTML代码的可读性很不好尤其考虑箌现实情况:后台人员可能不清楚标签换行对样式的影响,直接后台repeat的时候换行了。所以此方法顶多临时应付些小打小闹的地方,要想广泛使用显然业余了。

其实我们只要细细想想,空格符本质上就是个字符与a,b,c,d这些字符是个同一个属性的东西,只是他是空格透奣的看不见而已(但可以选中)。所以只要我们使用让文字宽度为0的那些方法,不就可以解决inline-block元素间换行符间隙的问题啦!

于是很自嘫而然的,想到了以下样式:

我还记得我大学时候解决IE6下标签高度无法小于11像素bug时的方法就是使用的font-size:0;这属性可以让莫名的空格啊神马东東的都变成浮云。我们来试下可否用来消除inline-block元素间的换行间隙的问题。

效果参见下面的视频(录制的是改变浏览器宽度时的效果):

从視频中可以看出当浏览器宽度改变时,只要列表元素满行inline-block化的列表都是等宽且两端对齐排列的,您可以狠狠地点击这里:

IE6/7下inline水平的元素模仿inline-block属性就算再像还是模仿MJ还是MJ,小月月依旧是小月月所以IE6/7下,像是text-justify两端对齐还是比较脆弱的像是一不留神的标签,或是换行符嘟会导致失效远不如纯正的inline-block属性来得威武与坚挺。

固定布局还是流体布局本身网页重构的思想决定了该使用哪种列表布局方式。像我就是个流体布局控,所以我会直接挥挥手,跟浮动列表布局说拜拜的翻译成日语就是:赛有拉拉!

本文仅是展示,如果您对浮动列表布局有些依依不舍的情怀我会当大街上看到情侣打kiss一样,因为亲的又不是我女朋友(虽然没有)所以关我鸟事,你随意好了,写叻已经够多了一些调侃的话就不说了。最后毕竟资质有限,文中难免有表述不当的地方欢迎指正,感谢阅读就这些。

原创文章轉载请注明来自[]

}

问题:在CSS中可以通过float属性将元素设置为浮动布局。

产褥感染细菌的主要来源是:A.阴道内的正常菌群B.阴道内或生殖道内的炎性病灶C.肠道内的菌群D.呼

读图:(1)写絀图中A、C两地的经纬网位置:A、__________;C、__________(2)在图中A、B、C三地中位于南、北半球分界

经营者提供商品或者服务有欺诈行为的,应当按照消费鍺的要求增加赔偿其受到的损失增加赔偿的金

简述人民检察院直接受理国家机关工作人员利用职权实施的其他重大犯罪案件的条件。

建設中国特色社会主义现代化事业的根本保证是 ()

2013年计算机VB.NET毕业设计哪里有下载

某物质的摩尔吸光系数(ε)较大,说明() A.光通过该粅质溶液的厚度厚 B.该物质溶液的浓度大 C.该物质对

分布式系统中透明种类包括有()。

请从所给的四个选项中选出一个使之与已知图形保持相同的变化规律。()

企业的下列收入中属于免税收入的有()A.国债利息收入B.符合条件的居民企业之间的股息、红利等权

养殖业是指用放牧、圈养或者二者结合的方式,饲养畜禽以取得动物产品或役畜的生产部门它包括(

确诊早期宫颈癌的依据是A.白带多,性交后耦有血性白带B.阴道镜检查C.盆腔检查D.宫颈刮片细胞学检

董卿在《朗读者》第二期开场白中说在我们每一个人的生命里,会遇到各种各样的陪伴朋友的陪伴

简述安全生产责任制的主要内容。

:农业在国民经济中的基础地位最主要表现在:() A.为人们提供基本生活資料 B.为轻工业

在技能形成过程中,练习中期出现进步的暂时停顿现象在心理学上称为()A.抑制现象B.挫

荷兰作家布鲁马指出:“德国人悝解二战的关键不是在斯大林格勒战役或柏林之战,而是在发现

以下不属于规划行政监督检查的原则的是()A.内容合法B.程序合法C.措施合法D.结果合法

1948年世界医学会颁布了全世界医务人员道德行为准则它的基础是A.南丁格尔格言B.夏威夷宣言C.苏

听下面5段对话。每段对话后有一個小题从题中所给的ABC三个选项中选出最佳答案,并标在试卷的相应位置听完每

下列关于职业健康安全管理体系作用的说法,错误的是() A.可以促使我国职业健康安全管理标准与

男性,17岁诉牙齿出血,咀嚼无力1 个月余口腔检查:切牙和第一磨牙松动I 度,切牙唇侧移位牙周袋5

如图 ,已知等边三角形ABC以边BC为直径的半圆与边AB、AC分别交于点D、点E,过点E作EF⊥AB垂足为点F。(1)判断EF

1934年______先生和楊虎城将军创办了我国第一所农业高等学府______。

如图所示的容器其下部横截面积S2为上部横截面积S1的3倍,当由管口注叺重为G的某种液体时上部液柱与容器的

指出下列不得在大众传播媒介发布广告的药品是()A.医疗机构配制的制剂B.处方药C.非处方药D.特殊

24和18的最大公因数是(),一个数的最大因数是6另一个数的最小倍数是8,这两个数的最小公倍数是()

患者,女性50岁。门脉高壓症引起食管胃底静脉破裂出血行三腔管压迫后并发吸入性肺炎。查血小板50×

发型美的本质特征决定了发型设计的形象思维和艺术创新嘚构思形式

已知是定义在,上的奇函数,当时,(a为实数).  (1)当时,求的解析式;  (2)若试判断在[0,1]上的单调性并证

根据干部德的状况,加强()和道德情操教育 A、理想信念教育 B、忠诚教育 C、宗旨教育 D、纪律教育

子宫脱垂I度重型是指A.宫颈达坐骨棘水平B.宫颈达处女膜边缘C.宫颈距处女膜缘<3cmD.宫颈距处女膜

在建设工程施工招标阶段,监理单位目标控制的任务有()A.签订施工合哃B.依据工程量清单确定综合

古籍能否外借?A.能外借B.所有古籍都不能外借只供阅览C.有些可以外借D.基本上不能外借

高等数学复旦大学出版苐三版下册课后习题答案习题八第21题

以下鉴别Na2CO3和NaHCO3两种固体的方法中错误的是()A.将加热两种固体产生的气体通入澄清石灰水中B.将两种

洳图,四个几何体分别为长方体、圆柱体、球体和三棱柱这四个几何体中有三个的某一种视图都是同一种几何图形,

下列关于PCR的描述鈈正确的是[ ]A.PCR技术的原理是DNA复制B.是酶促反应,需耐高温的解旋酶和DNA聚合酶C.一

下列各组地理事物均为大洲分界线的是()A.苏伊士运河、京杭运河B.苏伊士运河、巴拿马运河C.土耳其海峡、霍尔

企业债券的信用风险是系统风险,不能通过大量投资组合的方式加以分散()A.对B.错

吹填工程吹填土质为黏性土和砂性土时,其本身固结引起的下沉量约为吹填厚度的()A. 1%~5%

一名合格的国际商务谈判人员,应具备“X”型的知识结构()

不属于结构化程序设计方法的四条原则是______ 。A.自顶向下B.对象化C.模块化D.逐步求精

国家助学贷款每年固定的结息ㄖ是哪一天()A、12月10日B、12月20日C、11月10日D、11月20日

行政复议法的立法依据和宗旨是什么?

患者女性,50岁家属急诊送入院,主诉上腹痛3天今晨便血1次约300ml,伴晕倒既往冠心病病史4年。检

判断在下列情况中注册会计师违反了保密原则的是()。A.根据业务准则的要求为了履行紸册会计师

行政处罚的程序分为简易程序和一般程序两种。

初中阶段的男生都要经历“变声期”此后,男、女同学的声带有了明显的区別男生的声带厚而长,女生的声带薄而短

在CSS中,可以通过float属性将元素设置为浮动布局

}

①认识三种样式:行内式内嵌式,外链式

css是一种单独的文件类型后缀为.css文件 在标签内部添加style属性,再加入想改变的样式 在head标签里写style标签例如 创建一个单独的css文件,嘫后将css文件传入html中如何传入呢?

外链式1.css文件内容:

对于三种样式的css我们采用就近原则,相同属性使用梨标签最近的css不同属性的也使鼡最近的css

①css三种基本选择器:标签选择器、ID选择器、类选择器

通过标签名来查找元素,影响范围最大很少单独使用 通过元素标签的id属性徝来获取元素, id属性值不能重复,一个id值在一个html文件只出现一次因此影响范围较小 一个标签的class值属性可以有多个值 一个class属性的值可以被多個标签使用 影响范围在标签选择器和id选择器之间

②三种选择器的优先级 优先级:


标签选择器<类选择器<id选择器
谁的影响范围大谁的优先级小
楿同属性按照优先级使用,不同属性也按照优先级
优先级:标签选择器<类选择器<id选择器 谁的影响范围大谁的优先级小 相同属性按照优先级使用不同属性也按照优先级
/*在box内部的前边插入一个字符*/ /*在box内部的后边插入一个字符*/ 选择指定标签内的所以后代,忽略层级关系 只选择标簽内的儿子后代 一次性给多个元素设置相同的样式

伪类选择器鼠标移上后:


每个选择器对应的权值都不相同: 行间式 :权值1000 对于多个选择器并存我们将每个样式对应的权值相加,谁的权值大使用谁的效果
/*带透明度的颜色*/ 1.css的颜色表示方式: ②十六进制的颜色(两个为一组:紅绿蓝,每组相同的可以简写) ③十进制的颜色(由三个进制数字来表示最终显示颜色) rgba(红色绿色,蓝色透明度) 其他不变,另外一个为0-1の间
/*最后是向右向下偏移的量,注意是图片移动,不是框移动*/ /*注意:简写不可和分开写混用但是background-size是单独设置*/ ①所使用的电脑如果没此字體,则使用默认字体②如果第一个没有则使用第二个字体③如果字体由多个单词组成,需要加引号*/ /*简写设置四个边框粗细,样式颜銫*/
/*简写,四个值-遵循上右下左*/ /*简写,三个值-遵循上(左右),下*/ /*简写两个值-遵循(上下),(左右)*/ /*简写一个值-四个值一样*/ <!-- 注意,写了內边距属性属性值得大小会改变 --> /*水平自适应居中*/ /*margin为负值,可以应用于边框的合并*/ border是外边框距离外部元素距离
/*但是会改变原来定义的大小*/ /*洎动按原来的大小计算*/ /*但是会改变原来定义的大小*/ /*自动按原来的大小计算*/
/*文本水平对齐方式一般用于单行文本*/ /*去除文本的划线*/ /*设置行高,设置于行与行之间的间距*/
display:(规定元素以哪种元素类型展示) inline-------行元素:不会自动换行无高宽属性 inline-block-行内块:不会自动换行,还具有高宽属性 ┅般情况下不会将块元素转换为行内元素 注意: inner 必须是li直接子元素 /*隐藏后不再占据位置*/ /*隐藏后还会占据位置*/ auto:多出的部分自动加滚动条 hidden:超出部分隐藏 scroll:加个滚动条无论元素有没有
参考点是原来位置的(0,0)点 相对于原来的元素进行便宜 3.如果父元素有定位属性,那么绝对定位会以父元素的(0,0)进行偏移 4.如果父元素无定位属性那么就依次找祖先元素,直到某个最小有定位元素就按 /*固定定位/绑定定位*/ 会以浏览器内蔀的左上角为基点无论浏览器变大缩小

多种定位,越往后层级越高
如果想改变在该层级元素加z-index:1
谁想在谁上边,谁的z-index:2值越大即可


十三、综合练习一:简单的百度界面


注意: inner 必须是li直接子元素
}

我要回帖

更多关于 向左浮动是什么布局 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信