博主信息
博文 43
粉丝 4
评论 0
访问量 28827
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
布局的概念/常用的定位方式/用相对定位和绝对定位做一个导航栏
汇享科技
原创
671人浏览过

布局的概念

  • 布局的默认方式是文档流布局,文档流就是从上到下根据书写顺序进行展示的布局方式
  • 那么我们想在这个基础上进行打乱就需要改变定位方式脱离出文档流
  • 常用术语:定位元素、最初包含块、参照物
术语名称 描述
定位元素 定位元素的意思就是将默认position的属性转为非static就变成一个定位元素了
最初包含块 也叫定位上下文 固定定位是参照最初包含块进行定位的
参照物 每个元素想进行定位需要根据一个定位元素来进行偏移定位 这个定位元素就是参照物
  • 常用的定位属性:
属性 描述
relative 相对定位:相对于元素在文档流中默认的位置进行定位
absolute 绝对定位:根据最近的定位父级元素进行定位脱离了文档流
fixed 固定定位:总是根据最初包含块进行定位
sticky 粘性定位:参照浏览器视口进行定位

相对定位

  • 根据当前div原来在文档流中的位置进行偏移 top、left、right、bottom默认为0

l5hmgj7a.png

绝对定位

  • 根据最近的定位父元素进行定位

l5hmslzx.png

固定定位

  • 根据最初包含块进行定位

l5hn1bji.png

  • 代码部分
  1. <head>
  2. <meta charset="UTF-8">
  3. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  4. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  5. <title>Document</title>
  6. <style>
  7. *{
  8. margin: 0;
  9. padding: 0;
  10. box-sizing: border-box;
  11. }
  12. .die{
  13. width: 500px;
  14. height: 500px;
  15. border: 1px solid #000;
  16. color: red;
  17. text-align: center;
  18. }
  19. .er1{
  20. height: 100px;
  21. background-color: aqua;
  22. position: relative;
  23. top: 20px;
  24. left: 20px;
  25. }
  26. .er2{
  27. height: 100px;
  28. background-color: blue;
  29. position: absolute;
  30. }
  31. .er3{
  32. height: 100px;
  33. background-color: yellow;
  34. position: fixed;
  35. top: 50px;
  36. left: 50px;
  37. }
  38. </style>
  39. </head>
  40. <body>
  41. <div class="die">
  42. <div class="er1">儿子1 :相对定位</div>
  43. <div class="er2">儿子2 :绝对定位</div>
  44. <div class="er3">儿子3 :固定定位</div>
  45. </div>
  46. </body>

利用固定定位和绝对定位做的导航栏

实例截图:

l5hnfxrd.png

  • css部分代码
  1. /*顶部导航*/
  2. /*设置顶部导航背景色和阴影*/
  3. nav{
  4. background-color: #fff;
  5. box-shadow: 0 3px 3px #888;
  6. }
  7. /*设置导航栏宽度*/
  8. .nav{
  9. width: 1200px;
  10. /*转为相对定位*/
  11. position: relative;
  12. /* 设置居中 */
  13. left: 50%;
  14. transform: translateX(-50%);
  15. }
  16. /*设置导航的高度*/
  17. nav .nav{
  18. height: 90px;
  19. }
  20. /*设置logo图片*/
  21. nav .nav_logo{
  22. /*转为行内块元素*/
  23. display: inline-block;
  24. width: 150px;
  25. /* 设置为相对定位元素 */
  26. position: relative;
  27. top: 25px;
  28. left: 5px;
  29. }
  30. /*设置内容*/
  31. nav .nav_center{
  32. width: 830px;
  33. /* 转为行内块元素 */
  34. display: inline-block;
  35. /* 设置为绝对定位 */
  36. position: absolute;
  37. top: 32px;
  38. left: 160px;
  39. }
  40. /*设置内容文本*/
  41. nav .nav_center a{
  42. margin: 15px;
  43. font-size: 16px;
  44. color: #333333;
  45. font-weight: 700;
  46. padding: 10px;
  47. }
  48. /*设置鼠标悬浮样式和首页为激活状态*/
  49. nav .nav_center a:hover,nav .nav_center .active{
  50. font-size: 18px;
  51. color: red;
  52. }
  53. /* 设置右边部分 */
  54. nav .nav_right{
  55. /* 转为绝对定位 */
  56. position: absolute;
  57. top: 30px;
  58. right: 15px;
  59. /*设置为行内块元素*/
  60. display: inline-block;
  61. }
  62. /*设置搜索框样式*/
  63. nav .nav_right input{
  64. /* 这里使用相对定位 */
  65. position: relative;
  66. width: 220px;
  67. height: 36px;
  68. border: none;
  69. outline: none;
  70. border-radius: 15px;
  71. background-color: #f7f8fa;
  72. margin: 0 0 10px 0;
  73. }
  74. /*设置搜索图标*/
  75. nav .nav_right span{
  76. /*转为绝对定位*/
  77. position: absolute;
  78. top: 10px;
  79. right: 15px;
  80. }
  • html部分代码
  1. <nav>
  2. <div class="nav">
  3. <div class="nav_logo">
  4. <img src="images/logo.png" alt="">
  5. </div>
  6. <div class="nav_center">
  7. <a href="" class="active">首页</a>
  8. <a href="">视频教程</a>
  9. <a href="">学习路径</a>
  10. <a href="">PHP培训</a>
  11. <a href="">资源下载 </a>
  12. <a href="">技术文章</a>
  13. <a href="">社区</a>
  14. </div>
  15. <div class="nav_right">
  16. <input type="search" name="" id="" placeholder="请输入关键字搜索">
  17. <span class="iconfont icon-sousuo"></span>
  18. </div>
  19. </div>
  20. </nav>
批改老师:PHPzPHPz

批改状态:合格

老师批语:这个运用的不错
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学