九宫格还有哪些布局方法

今天给大家分享一下九宫格有哪些布局方法,他们各自有什么优缺点。

                                   1.背景介绍

我们在布局的时候经常会使用到九宫格的模型,那么如何排布九宫格就成了一个常见的问题,那么我们有哪些九宫格的排布方式呢?

                                   2.知识剖析

一个盒子实际所占有的宽度(或高度)是由”内容+内边距+边框+外边距“组成的 content是元素的实际内容,也就是元素框。当元素为块级元素或内联块级元素时,可以设置width,height属性来设定内容区的宽高。而内联非替换元素设置width,height属性无效,其宽度随元素的内容而变化。 当默认情况下,块级元素宽度自动填满其父元素宽度。

Padding属性定义了元素边框与元素内容之间的空间。其值不可为负值,背景图与背景 色可以显示在padding上。 当在内联非替换元素上设置padding时,不会影响行高计算,但背景色可以显示。

border指盒模型的边框,边框的相关的属性:宽度(border-width)、样式(border-style)、颜色(border-color)。 在默认情况下,背景会延伸到边框所在的区域下面。如果不希望  背景侵入边框所在的范围,我们要做的就是把它的值设置为background-clip;padding-box。

margin是外边距,与padding不同的是,margin可以为负。两个上下方向相邻的元素框垂直 相遇时,外边距会合并。

                                  布局方法

我们布局九宫格的难点在于如何让相同大小的三个正方行的块等间距的排布在同一行,因此 这三块必须为inline-block,或者是其他的方法允许三个block块布置在同一行。

利用div+css来布局 链接

此种办法的有点是:
1.网页载入比较快,由于DIV+CSS中的CSS富含丰富的样式,表现更加灵活。2.页面内容与样式分离可以是网页代码减少,使页面的样式的调整变得更加方便。3.表现和结构分离,在团队开发中更容易分工合作而减少相互关联性。

 它的缺点是:浏览器兼容性 。DIV+CSS更容易出现多种浏览器不兼容的问题,主要原因是不同的浏览器对web标准默认值不同。

利用ul+li来布局 链接

ul,li布局和div布局很像,同样使用9个li,将li标签inline-block化。然后对li标签设置背景色,使用padding内边距来撑开li标签宽高,控制好外边距,  使得li标签之间的间距相等。

这种方法的优点是:层次分明,不易混乱

 缺点是:ul,li标签是有默认的margin和padding.

利用float布局 链接

优点: 使用简单方便,不涉及到inline-block间距问题。

缺点: 每个列表元素的高度必须要一致,否则就会像是俄罗斯方块一样,“锯齿相错”例如一个左浮动列表布局,如果第一行有个列表高度高于其他列表,那就在第二行,第一个元素会沿着最高元素的右侧对齐 


利用flex布局 链接

优点:没有边距的问题,不用害怕浮动,不用考虑子元素是 块级元素还是行内元素布局简单,实用性强。

缺点:兼容性不太好,比较老的浏览器版本不兼容。


                                     3.常见问题

1 如果代码书写的时候inline-block元素之间有空格的话,页面上 显示的那两个元素之间也会有间距。

 2 用height设置元素百分比高的时候,不能产生九宫格的效果。


                                    4.解决方案

问题一

产生原因:代码里两个内联元素之间的换行或者空格也会占据空间,其占据空间的大小与字体大小有关。

1 可以在写代码的时候将两个内联元素紧挨着写在一起,消除间距。

2 给内联元素的父级设置font-size:0;letter-spacing:-4px;

 当两个内联元素之间的间距小于4px的情况下,他们也不会发生重叠的现象。

  问题二

产生原因:

height的百分比取值是相对于其父元素的高度,而这里块的父元素为html,而html的高度是可以被其子元素撑大的,所以,为了达到自适应的效果应该让其高度的百分比是相对于其父级的宽度,padding-top、padding-bottom或者是用vw为单位。


                                       5.编码实战



                                       6.扩展思考


                                      7.参考文献  (张鑫旭博文


                                      8.更多讨论

                                      用table布局行不行,如何实现?

感谢大家观看

BY : 聂义中

今天的分享就到这里啦,欢迎大家点赞、转发、留言

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,154评论 1 92
  • 年纪还小,不懂什么是爱,简单点喜欢就好。 不久前阴差阳错,在明知老师不好过的时候,还是选了老师的选修课,在课上偶遇...
    Moqi安阅读 334评论 0 1
  • 六七年的同学,老师,朋友都说我痴情,又说我很傻,一份暗恋喜欢竟然隐藏坚持那么多年。喜欢她是我一个人的事,我就愿意心...
    季童阅读 640评论 26 11
  • 很久就想给你写点东西,提笔又不知道写什么。你在哪,怎么样,我都不曾了解,可我还是觉得你在。我的爷爷。 我的...
    Croviey阅读 370评论 0 1
  • 一.12月第一周总结 1.生活方面。 每天早上起床的过程有点艰难,但还是逼着自己从被窝里爬起来,在大院里跑了几圈,...
    supaul阅读 179评论 0 0

友情链接更多精彩内容