前两天看了一个很赞的css浮动流的教程 ,并对应教程实现了代码,但是仅限于理论的层面 ,今天有了实战的机会,本文将问题界面录制成视频,并以解决视频中的bug作为切入点,学习css浮动流。

问题界面如下:

要解决的问题

随着屏幕缩放比例的改变,video中菜单位置在改变。当屏幕比例为150%,每一个菜单占一行,占据多行。当屏幕比例为65%——75%时,菜单位于顶部。而我们的目标是当屏幕缩放比例超过150%时,隐藏菜单。当屏幕缩放比例小于150%时,位置背景图片底部,保持不变。

问题还原

div是块状元素,每一个盒子在页面中时独占一行的。很明显,以上三个盒子并不是独占一行,所以,这三个盒子都是浮动的。

  • 当屏幕缩放为25%——50%和80%——125&时,三个盒子是这样的

    div1、div2是左浮动, div3是右浮动,但是由于屏幕宽度不够,所以div3向下移动一行。div1、div2占据第一行,div3占据第二行。效果正常。

  • 当屏幕缩放为67%——75%时

    右键查看元素,查看屏幕宽度,此时屏幕的宽度时1714——1929,也就是说,此时,这三个盒子的宽度之和小于屏幕的宽度,所以这三个盒子都在页面的第一行,也就使菜单浮动到了屏幕的右上角。

    解决方案就是增加div2的宽度,因为每个人的屏幕大小可能不一样,因此使用百分比,使得div3向下移动一行。

  • 当屏幕为150%以上时

    此时三个盒子都是右浮动,此时屏幕宽度小于857px,字体过大,笔者使用 @media 查询 ,讲菜单隐藏。当然,也可以使用bootstrap响应式导航显示菜单。

总结

书写css代码时,当遇到页面布局的问题时,应当及时打开控制台,观察各个盒子之间的关系,搞清楚盒子是不是浮动的,理性的分析原因。