美文网首页
九宫格还有哪些布局方法

九宫格还有哪些布局方法

作者: slashnie | 来源:发表于2017-09-06 22:27 被阅读0次

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

                                   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 : 聂义中

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

相关文章

  • 九宫格还有哪些布局方法

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

  • 我如何使用Flexbox创建一个单页的网站

    首先可视化布局并确定哪些元素应转换为flex-containers。 虽然还有其他方法可以实现相同的布局(也许更好...

  • 详解自动布局(Masonry)实现九宫格

    以前写TimeLine中照片九宫格布局是直接计算frame,今天想用自动布局实现。 九宫格布局 使用自动布局,首先...

  • 常见自适应布局/等分布局/九宫格布局

    自适应布局/等分布局/九宫格布局是面试常考的内容,通常要求掌握几种实现方法,以下是我自己准备秋招总结的布局,方便记...

  • 简单代码实现九宫格

    利用 UITableView 实现九宫格布局。具体特点如下: 1、通过KVC的方法方便实现了九宫格,简便了实现的代...

  • OC_九宫格布局工具

    实现基于: iOS Masonry九宫格布局 - 一行代码实现九宫格 demo点这里 以后你可能会这样布局九宫格 ...

  • RecyclerView使用GridLayoutManager实

    用RecyclerView实现九宫格的布局,除了常规的LinearLayout之外,还有比较常用的GridLayo...

  • Flex布局详解(一)

    在讲解Flex布局之前,我们首先可以回顾一下我们平时在做行向布局或者纵向布局时候我们页面的布局主要用到哪些布局方法...

  • heap思路总结

    分析方法:全局变量位置布局: 哪些在.bss,哪些在.data,变量之间的关系哪些变量, 缓冲区, 数组,存储了哪...

  • Swift4下做动态九宫格布局

    类似朋友圈九宫格布局,一张,两张,四张等情况时,用imageView来添加,约束非常繁琐,现在有一种简单的布局方法...

网友评论

      本文标题:九宫格还有哪些布局方法

      本文链接:https://www.haomeiwen.com/subject/flvmjxtx.html