css之布局

  css之布局

  css布局元素主要有disiplay,float,clear,visibility,overflow,overflow-x,overflow-y.

  css布局元素之【disiplay】

  disiplay目前兼容的元素主要有none,inline,inline-block,block,table,inline-table,table-caption,table-cell,table-row,table-row-group,table-column,table-column-group,table-header-column,table-footer-group.【无继承值】

  css【disiplay】元素之none.

  当disiplay元素设置none时,float和positon属性不生效,并且不占据空间,visibility:hidden占据空间,clip也不占据空间,绝对定位设置大负值时,不占据空间,相对定位设置大负值时,不占据空间。overfollow:hidden不占据空间,设置透明值(opcity),占据空间,可以点击。

  disiplay:none和visibility:hidden区别主要在于占据空间,另一个不占据空间。第二个则是前者回流与渲染后者不占据。

  什么是回流?

  答:回流则是重新使该页面渲染一次,从而影响性能。

  哪些影响会影响回流

  答:改变窗口的宽高,改变字体(建议可以用rem),增删改内容,增删样式,内容发生改变时比如input,text输入属性时等等

  如何避免回流

  如果想改变某个div宽高等其它样式时,不应该改变style属性(即本身/css的宽高),建议使css类、id。

  避免使且table布局,因为html是流式布局,后面的元素不会影响前面的元素,然而table中的续行中的列宽会影响前面内容进行回流(reflow)和重绘(repaint)。

  第三个是株连性,前者株连,后者不株连。

  css【disiplay】元素之inline

  如果该元素设置此元素,那么此元素为内联/行内元素,其主要特点为不独占一行,宽、高、行高不可以进行设置。可以设置padding和margin-right/left不可以设置margin-top/bottom值。ps:替换元素可以设置宽高,比如img\input等。

  css【disiplay】元素之inline-block

  如果该元素设置此元素,那么元素拥有block可以设置宽、高、行高的特性。怎么去除该元素带来的间距问题,一是移除代码之间的空格,二是使用margin-right负值,三、去除闭合标签,四、设置父级字体大小为0,五、设置父级letter-spacing为负值。六、设置父级word-spacing为负值。

  css【disiplay】元素之block

  如果设置该元素,可以设置该元素宽、高、行高、margin\padding值,并且另起一行。宽度缺省的话,是该容器父级的100%。

  css【disiplay】元素之table

  如果设置属性,那么元素则以表格形式出现,有换行符

  css【disiplay】元素之inline-table

  如果设置该属性,那么该元素则内联表格形式出现,没有换行符。

  css【disiplay】元素之table-caption

  如果设置该属性,此元素会作为一个表格标题显示

  css【disiplay】元素之table-cell

  如果设置该属性, 此元素会作为一个表格单元格

  css【disiplay】元素之table-row

  如果设置该属性,此元素会作为一个表格行显示

  css【disiplay】元素之table-row-group

  如果设置该属性,此元素会作为一个表格标题显示

  css【disiplay】元素之table-column

  如果设置该属性, 此元素会作为一个或多个行的分组来显示(类似 )

  css【disiplay】元素之table-column-group

  如果设置该属性, 此元素会作为一个或多个列的分组来显示(类似 )

  css【disiplay】元素之table-header-column

  如果设置该属性,此元素会作为一个或多个行的分组来显示(类似 )

  css【disiplay】元素之table-footer-group

  如果设置该属性, 此元素会作为一个或多个行的分组来显示(类似 )

  css【disiplay】元素之table-column-group

  如果设置该属性,此元素会作为一个单元格列显示(类似 )

  css布局元素之【float】

  float属性主要有right,left,none【无继承性】,浮动元素会使父元素高度塌陷,解决此问题使用clear,

  css【float】元素之right

  float在display:none情况下不生效,

  如果设置此属性,那么此属性向右浮动,display:inline-table计算值为table,tabler-*,none,inline-block,run-in计算值为block.

  css【float】元素之left

  float在display:none情况下不生效,

  如果设置此属性,那么此属性向左浮动,下效果同上

  css布局元素之【clear】

  此属性主要值有both,right,left,none【无继承属性】

  css【clear】元素right

  设置属性值,则去除右浮动。

  css【clear】元素left

  设置属性值,则去除左浮动。

  css【clear】元素both

  设置属性值,则去除左右浮动。

  css布局元素之【visibility】

  设置元素可见还是隐藏,其属性值主要有hidden,visible,collapse【有继承性】

  css【visibility】属性之visible

  设置元素可见模式,

  css【visibility】元素之hidden

  设置元素为隐藏模式

  css【visibility】元素之collapse

  设置隐藏表格的行和列

  css布局元素之【overflow】

  其值主要visible,hidden,scroll,auto,默认值visible【无继承性】

  css【overflow】属性之visible

  设置对溢出内容不作处理。

  css【overflow】属性之hidden

  设置对溢出内容作隐藏

  【overflow】属性之scroll

  设置对溢出内容作滚边条出现

  css【overflow】属性之auto

  设置对溢出内容按需显示。

  css布局元素之【overflow-x】

  其值主要visible,hidden,scroll,auto,默认值visible【无继承性】

  设置对溢出内容不作处理。

  css【overflow】属性之hidden

  设置对溢出内容作隐藏

  【overflow】属性之scroll

  设置对溢出内容作滚边条出现

  css【overflow】属性之auto

  设置对溢出内容按需显示。

  css布局元素之【overflow-y】

  其值主要visible,hidden,scroll,auto,默认值visible【无继承性】

  设置对溢出内容不作处理。

  css【overflow】属性之hidden

  设置对溢出内容作隐藏

  【overflow】属性之scroll

  设置对溢出内容作滚边条出现

  css【overflow】属性之auto

  设置对溢出内容按需显示。

  position:absolute与float:left有两大共性:包裹性,破坏性。包裹性换种说法就是让元素inline-block化,内联块显示该元素;破坏性主要是指使用此元素会出高度塌陷的情况。有必要的情况可设置高宽值。

posted on 2017-03-20 23:19  张云  阅读(182)  评论(0编辑  收藏  举报

导航