css面试题(2)

95 阅读2分钟

margin设置负值

margin复制应用

  • 增加宽度
  • 圣杯布局
  • 双飞翼布局

margin负值效果

-margin-left负值,元素自身向左移动 -margin-top负值,元素自身向上移动 -margin-right负值,右边的元素向左移动 -margin-bottom负值,下边的元素向上移动

(增加宽度)演示代码

如何实现圣杯布局

什么是圣杯布局

两边固定宽度中间自适应宽度

难点

  • marhin-left:-100%;100%是父级宽度的100%
  • margin-right:-150px;其他元素当他宽度少了150px

演示代码

如何实现双飞翼布局

什么是双飞翼布局

左右宽度固定,中间宽度自适应,中间的内容优先加载

演示代码

如何清除浮动?手写clearfix

什么是浮动

float属性用于创建浮动框,将其移动到一边,直到左边缘或右边缘触及包含块或另一个浮动框的边缘。

浮动的特点

  • 浮动元素会脱离标准流(脱标:浮动的盒子不再保留原先的位置)
  • 浮动的元素会一行内显示并且元素顶部对齐
  • 浮动的元素会具有行内块元素的特性(不管原先是什么模式的元素,添加浮动之后具有行内块元素相似的特性)
  • 一个元素浮动,理论其他兄弟元素也得浮动

清除浮动的方法

  • 父级加overflow:hidden
  • 父级设置clearfix
  • 父级也浮动

手写clearfix

.clearfix:after { content:""; display:block; clear:both; }

演示代码

手写垂直水平居中

常见的垂直水平居中方法

  1. position + margin负值的方法(宽高固定)
  2. position + margin:auto(宽高固定)
  3. display:table-cell + vertical-align:middle (宽高固定)
  4. position + transform (不需要固定宽高)
  5. flex(不需要固定宽高)

演示代码