Python HTML和CSS 9:定位布局

简介: Python HTML和CSS 9:定位布局

总体内容


1、文档流的介绍

2、关于定位的属性以及使用

3、案例的展示


一、文档流的介绍



文档流,是指盒子按照html标签编写的顺序依次从上到下,从左到右排列,块元素占一行,行内元素在一行之内从左到右排列,先写的先排列,后写的排在后面,每个盒子都占据自己的位置。


二、关于定位的属性以及使用


  • 2.1、用css的position属性来设置元素的定位类型,postion的设置项如下:
  • <1>、relative 生成 相对定位 元素,元素所占据的文档流的位置保留,元素本身相对自身原位置进行偏移。


image.png


.box1{
     background-color: pink;
     position: relative;
     left: 50px;
     top: 50px;
}


提示:position 要配合 leftrighttopbottom 来使用


  • <2>、absolute 生成 绝对定位 元素,元素脱离文档流,不占据文档流的位置,可以理解为漂浮在文档流的上方,相对于上一个设置了定位的父级元素来进行定位,如果找不到,则相对于body元素进行定位。


image.png


// 父级样式
.con{
     width: 400px;
     height: 400px;
     border: 1px solid #000;
     margin: 50px auto;
     position: relative;
 }
.box1,.box2{
     width: 300px;
     height: 100px;
     margin: 10px;
}
.box1{
    background-color: pink;
    /* 2、绝对定位 */
    position: absolute;
    left: 50px;
    top: 50px;
 }


提示:在设置为 position: relative; 后,就会相对于上一个设置了定位的父级元素来进行定位,如果找不到,则相对于body元素进行定位。,上图我们对 box1的父级元素进行了定位


  • <3>、fixed 生成 固定定位 元素,元素脱离文档流,不占据文档流的位置,可以理解为漂浮在文档流的上方,相对于浏览器窗口进行定位


image.png

.box1{
     background-color: pink;
     /* 3、固定定位 */
     position: fixed;
     left: 50px;
     top: 50px;
 }


  • <4>、static 默认值,没有定位,元素出现在正常的文档流中,相当于取消定位属性或者不设置定位属性。
  • <5>、inherit 从父元素继承 position 属性的值。


  • 2.2、定位元素的偏移:定位的元素还需要用left、right、top或者bottom来设置相对于参照元素的偏移值。


提示: left 是相对于左边向右偏移,right 是相对于右边向左偏移,top 是相对于上面向下偏移,bottom 是相对于下面向上偏移。


  • 2.3、定位元素层级 :定位元素是浮动的正常的文档流之上的,可以用 z-index 属性来设置元素的层级


在元素设置定位后,层级的是按照标签的先后顺序来排列的,最后面的标签在显示的时候再最上面,我们可以使用 z-index 属性 来改变层级顺序的问题,默认的层级是小于 10的,如下例子


image.png

<!DOCTYPE html>
<html lang="en">
<head>
     <meta charset="UTF-8">
     <title>定位的层级</title>
     <style type="text/css">
        .con{
             width: 400px;
             height: 400px;
             border: 1px solid #000;
             margin: 50px auto;
             position: relative;
         }
        .con div{
             width: 90px;
             height: 90px;
             position: absolute;
         }
         .box1{
             background-color: pink;
             left: 20px;
             top: 20px;
             z-index:10;
         }
         .box2{
             background-color: red;
             left: 40px;
             top: 40px;
         }
         .box3{
             background-color: green;
             left: 60px;
             top: 60px;
         }
         .box4{
             background-color: yellow;
             left: 80px;
             top: 80px;
         }
     </style>
</head>
<body>
      <div class="con">
          <div class="box1">box1</div>
          <div class="box2">box2</div>
          <div class="box3">box3</div>
          <div class="box4">box4</div>
      </div>
</body>
</html>


提示:我们可以个每个盒子的样式设置  z-index 来改变其展示的层级顺序


  • 2.4、定位元素特性:绝对定位和固定定位的块元素和行内元素会自动转化为行内块元素


三、案例的展示



  • 3.1、制作如下图的页面


image.png4


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>定位练习一</title>
    <style type="text/css">
        .con{
            width: 100px;
            height: 100px;
            background-color: gold;
            margin: 50px auto;
            /* 相对定位 */
            position: relative;
            border-radius: 10px;
        }
        .box1{
            width: 28px;
            height: 28px;
            background-color: red;
            color: white;
            text-align: center;
            line-height: 28px;
            font-size: 16px;
            /* 绝对定位 */
            position: absolute;
            left: 86px;
            bottom: 86px;
            /* 圆角的设置 */
            border-radius: 14px;
        }
    </style>
</head>
<body>
    <div class="con">
        <div class="box1">10</div>
    </div>
</body>
</html>


  • 3.2、固定在顶部的水平居中的菜单


image.png

!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>定位练习二</title>
   <style type="text/css">
       .con{
           width: 400px;
           height: 80px;
           background-color: yellow;
           position: fixed;
           left: 50%;
           margin-left: -200px;
       }
       .con div{
           line-height: 80px;
           text-align: center;
       }
       div{
           text-align: center;
       }
   </style>
</head>
<body>
    <div class="con">
        <div>固定在顶部的水平居中的菜单</div>
    </div>
</body>
</html>


提示:上述代码要注意居中的技巧

  • 水平居中


left: 50%;
margin-left: -盒子宽度的一半px;
  • 垂直居中

top: 50%;
margin-top: -盒子高度的一半px;


目录
相关文章
|
28天前
|
前端开发 测试技术 定位技术
如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤
本文深入介绍了如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤。通过实例展示了主页、关于我们、产品展示、新闻动态及联系我们等页面的设计与实现,强调了合理布局、美观设计及用户体验的重要性。旨在为企业打造一个既专业又具吸引力的线上平台。
56 7
|
28天前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
35 6
|
28天前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
41 5
|
1月前
|
前端开发 JavaScript 开发者
掌握 CSS 弹性布局(Flexbox):构建复杂页面布局的高效秘籍与实战案例
CSS弹性布局(Flexbox)是现代网页设计中构建复杂页面布局的高效工具。本文将深入浅出地介绍Flexbox的核心概念、使用技巧及实际应用案例,帮助读者快速掌握这一强大布局方法。
|
1月前
|
移动开发 JavaScript 前端开发
html table+css实现可编辑表格的示例代码
html table+css实现可编辑表格的示例代码
63 12
|
1月前
|
前端开发 容器
Html布局 BFC的概念和作用讲解
BFC(Block Formatting Context)是Web页面的CSS渲染机制之一,它如同一个独立的容器,确保内部元素的变化不会影响外部布局。本文介绍了BFC的基本概念、作用及实现方法,包括通过设置`float`、`position`、`overflow`属性或使用伪元素等方式使元素成为BFC,有效解决布局中的边距塌陷等问题,优化网页布局效果。
28 2
|
1月前
|
容器
HTML中使用Flex布局实现双行夹批效果
在HTML中,还可以用table元素来实现双行夹批效果,但比flex布局代码更复杂,效果也不见得更理想。
43 10
|
1月前
|
前端开发 JavaScript
用HTML CSS JS打造企业级官网 —— 源码直接可用
必看!用HTML+CSS+JS打造企业级官网-源码直接可用,文章代码仅用于学习,禁止用于商业
141 1
|
21天前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!