网站首页 > 技术文章 正文
"小白,你最近看CSS的时候碰到position属性了么?"
“碰到了,通过position可以改变容器的定位,我记得官方描述是这样的:这个属性定义建立元素布局所用的定位机制。任何元素都可以定位,不过绝对或固定元素会生成一个块级框,而不论该元素本身是什么类型。相对定位元素会相对于它在正常流中的默认位置偏移。”
“恩,不错,今天咱说一下position里面的fixed类型吧,这个属性值是让容器基于浏览器窗口的绝对定位,在我们平时的制作中经常会碰到。”
老朱接着说:“给一个容器设定position为fixed以后,可以通过left、right、bottom、top进行四个方向的距离定位。现在我们在页面中写一个fixed容器,看一下代码片段。”
“你看,这里我在body里面加了一个标识为foot的div,然后他的css里面把position设置成了fixed,并且bottom(距离底部)为0,这里的bottom是基于浏览器窗口的距离进行计算的,foot的宽和高也进行了设定。现在我们看一下效果!”
“你可以看到,拖动滚动条往下滚动网页的时候,foot的位置并不会随着滚动条的滚动发生改变,它就像是漂浮在那里一样。这里的foot是一个div容器,所以它的内部我们还可以放任何你希望布局的内容,比如放一个图片,或者其他的容器。”
“这里插入的图片要想跟foot容器宽度一致,根据我们之前说过的对图片css的操作,把图片的宽度(width)设定为100%,图片就会自动与父容器宽度一致了。”
小白突然想到了很多手机HTML5页面下方都有导航条,问道:“很多手机的HTML5页面里面下方的导航条不会随着页面的滚动而滚动,这种导航条是不是也通过fixed来设定的。”
“是的,跟这里的foot一样,我们只需要把导航条的父容器设定为fixed就可以了。有个需要注意的地方是导航条会根据手机屏幕的分辨率自动占用屏幕宽度,所以我们在给foot设定css样式的时候就不能设定宽度了。”
小白问道:“那应该怎么设定呢?”
老朱说:“你忘了我们刚说了fiex可以通过top、right、bottom、left设定四个方向的距离么?如果要让一个fixed容器左右靠边,我们只需要left为0,right为0,它就会自动匹配窗口的宽度。现在我们把之前的foot容器改一下。”
“通过设定bottom、left、right可以让foot靠近底部并且保持与窗口宽度一致。然后我们在foot里面放了一个ul-li容器,让li容器向左浮动并且宽度为父容器的25%,布局就会变成这样。”
“网页上的底部导航通常都会放入透明的png图片,现在我们插入png图,再进行一下css的调整。”
“网页底部导航条,上面还会牵扯到鼠标事件,焦点样式变化,这些知识我们随后也会一一展开讨论,今天先这样吧!你先练习练习今天说的这些内容,然后试着做一个居中漂浮的层,看看能不能做出来!”
想学H5的朋友可以关注老炉,您的关注是我持续更新《小白HTML5成长之路》的动力!
猜你喜欢
- 2024-09-14 JavaScript案例讲解:3D相册拖拽旋转
- 2024-09-14 演示HTML5中的拖曳操作代码详见教材demo3-8
- 2024-09-14 springboot+activiti7之拖拽表单k-form-design整合
- 2024-09-14 使用拉易网生成图文并茂的HTML邮件(一)
- 2024-09-14 使用 CSS Grid Generator来快速使用及学习 Grid 布局
- 2024-09-14 HTML5 拖放(HTML5拖放API之回收站效果)
- 2024-09-14 Swapy:让拖拽交换布局变得简单(swapy:让拖拽交换布局变得简单的方法)
- 2024-09-14 「最近项目小结」使用Vue实现一个简单的鼠标拖拽滚动效果插件
- 2024-09-14 Flutter App动态化与可视化搭建方案设计
- 2024-09-14 10分钟创建一个属于你自己的网站(建立一个属于自己的网站)
- 1512℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 555℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 503℃MySQL service启动脚本浅析(r12笔记第59天)
- 481℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 479℃启用MySQL查询缓存(mysql8.0查询缓存)
- 459℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 439℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 437℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)