CSS_定位

简介: 版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/54799653 position属性 absolute: 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/54799653

position属性

absolute: 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。
fixed: 生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。
relative: 生成相对定位的元素,相对于其正常位置进行定位。因此,”left:20” 会向元素的 LEFT 位置添加 20 像素。
static: 默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。
inherit: 规定应该从父元素继承 position 属性的值。

相对定位

设置为相对定位的元素框会偏移某个距离。元素仍然保持其未定位前的形状,它原本所占的空间仍保留。
position:relative;

将 top 设置为 100px,框出现在在原位置顶部下面 100 像素的地方。
将 left 设置为 50 px,那么会在元素左边创建 50 像素的空间,也就是将元素向右移动。

<html>
    <head>
        <style>
            .relative_left{
                position:relative;
                left:50px;
            }
            .relative_top{
                position:relative;
                top:100px;
            }
            div{
                background:yellow;
            }
        </style>
    </head>
    <body>
        <div class="relative_left"> 这是一个相对定位的段落,left:50</div>
        <div>这是一个普通段落</div>
        <div class="relative_top"> 这是一个相对定位的段落,top:100px</div>
    </body>
</html>

绝对定位

绝对定位的元素的位置相对于最近的已定位祖先元素,如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块。

<html>
    <head>
        <style type="text/css">
            .absolute{
                position:absolute;
                left:200px;
                top:200px;
            }
        </style>
    </head>
    <body>
    <p class="absolute">这是一个绝对定位的段落,他的位置是相对于原点(200,200)</p>
    <div style="position:absolute;left:100px;top:100px;">
        <p class="absolute">这是一个绝对定位的段落,他相对于div的位置是(200,200),实际位置应该是(300,300)</p>
    </div>

    </body>
</html>

所以绝对定位的位置也是相对的,相对于父元素的位置

z-index 属性

z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。
定位元素沿 z 轴的位置,z 轴定义为垂直延伸到显示区的轴。如果为正数,则离用户更近,为负数则表示离用户更远。
元素可拥有负的 z-index 属性值。

<html>
    <head>
        <style type="text/css">
            .z-index{
                position:absolute;
                left:10px;
                z-index:-1;
            }
        </style>
    </head>
    <body>
    <img  class="z-index" src="素材/1.png"><img>
    <p>这是一个普通段落</p>

    </body>
</html>

浮动

float

可能的值:

描述
left: 向左浮动
right: 向右浮动
none: 不浮动,默认值
inherit: 继承

clear

clear 属性规定元素的哪一侧不允许其他浮动元素。

描述
left 在左侧不允许浮动元素。
right 在右侧不允许浮动元素。
both 在左右两侧均不允许浮动元素。
none 默认值。允许浮动元素出现在两侧。
inherit 规定应该从父元素继承 clear 属性的值。
<html>
    <head>
        <style type="text/css">
            .a{
                float:left;
                clear:both;
                width:200;
                height:200;
                background-color:green;
            }
            .b{
                float:left;
                clear:both;
                width:200;
                height:200;
                background-color:blue;
            }
            .d{
                float:left;
                clear:both;
                width:200;
                height:200;
                background-color:gray;
            }
        </style>
    </head>
    <body>
    <div class="a"></div>
    <div class="b"></div>
    <div class="d"></div>
    </body>
</html>

如果需要完成以下的效果,可以在第二段之前加上一个外边距,将第二段挤到下方区域

当div中的元素都是浮动的时,因为内部元素不占据空间,所以div会变得非常小,并且不可见,为了看到div的效果,需要加上一个看不见的clear标记
效果如图:

不过,还有一种法法可以避免这种问题,就是讲div进行浮动,这样div中就会显示出真实的大小。但是这样会影响下一个元素的样式。

<!--使用没有意义的clear元素-->
<html>
    <head>
        <style type="text/css">
            .news {
                 background-color: yellow;
                 border: solid 1px black;
            }

            .news img {
                float: left;
            }

            .news p {
                 float: right;
            }

        </style>
    </head>

    <body>
        <div class="news">
            <img src="素材/1.png" />
            <p>some text</p>
            <!--没有意义的标记,但是可以看到浮动的div-->
            <div style="clear:both"></div>
        </div>
    </body>
</html>

display显示属性

定义建立布局时元素生成的显示框类型

可能的值:

none: 此元素不会被显示。
block: 此元素将显示为块级元素,此元素前后会带有换行符。
inline: 此元素会被显示为内联元素,元素前后没有换行符。默认
inline-block: 行内块元素。(CSS2.1 新增的值)
list-item: 此元素会作为列表显示。
run-in: 此元素会根据上下文作为块级元素或内联元素显示。
compact: CSS 中有值 compact,不过由于缺乏广泛支持,已经从 CSS2.1 中删除。
marker: CSS 中有值 marker,不过由于缺乏广泛支持,已经从 CSS2.1 中删除。
table: 此元素会作为块级表格来显示(类似 <table>),表格前后带有换行符。
inline-table: 此元素会作为内联表格来显示(类似<table>),表格前后没有换行符。
table-row-group: 此元素会作为一个或多个行的分组来显示(类似 <tbody>)。
table-header-group: 此元素会作为一个或多个行的分组来显示(类似 <thead>)。
table-footer-group: 此元素会作为一个或多个行的分组来显示(类似 <tfoot>)。
table-row: 此元素会作为一个表格行显示(类似 <tr>)。
table-column-group: 此元素会作为一个或多个列的分组来显示(类似 <colgroup>)。
table-column: 此元素会作为一个单元格列显示(类似 <col>)
table-cell: 此元素会作为一个表格单元格显示(类似 <td> 和 <th>)
table-caption: 此元素会作为一个表格标题显示(类似 <caption>)
inherit: 规定应该从父元素继承 display 属性的值。

常见的块级元素有 DIV, FORM, TABLE, P, PRE, H1~H6, DL, OL, UL 等。
常见的内联元素有 SPAN, A, STRONG, EM, LABEL, INPUT, SELECT, TEXTAREA, IMG, BR 等。

<html>
<head>
    <style>
        .s{
            display:block;
        }
        .s2{
            display:inline;
        }
        p{
            background:green;
        }
    </style>
</head>

<body>

<p >这是一个普通的段落</p>
<p class="s">这是一个块级段落</p>
<p class="s2">这是一个内联段落<p>

</body>
</html>


可见p元素是一个块级元素

<html>
<head>
    <style>
        .s{
            display:block;
        }
        .s2{
            display:inline;
        }
        span{
            background:green;
        }
    </style>
</head>

<body>

<span >这是一个普通的段落</span>
<span class="s">这是一个块级段落</span>
<span class="s2">这是一个内联段落<span>
<span>这是一个普通段落</span>

</body>
</html>

块级段落前后会自带换行,而内联元素不会,他们会显示在一行
内联元素不能定义宽度
inline-block与block的区别在于inline-block可以控制大小,而且显示时像内联元素一样没有换行,排列在同一行中。

相关文章
|
6月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
position定位(核心) 我们讲盒模型的时候,提到了3个属性可以用来控制页面排版。 三大属性:position属性,display属性,float属性。 position 属性控制页面上元素间的位置关系。 display 属性控制页面元素是否显示或者是堆叠还是并排显示。 float 属性提供控制方法。 通过float这种控制方法,可以实现多栏布局,导航菜单等等。 position属性是干嘛用的?怎么用?有哪些属性值? position属性控制页面上元素间的位置关系,也就是排版。 怎么用?要知道怎么用
611 1
|
9月前
|
自然语言处理 前端开发 JavaScript
Playwright系列课(2) | 元素定位四大法宝:CSS/文本/XPath/语义化定位实战指南
本文是Playwright系列第二课,详解元素定位四大核心技术:CSS选择器、文本定位、XPath和语义化定位,结合实战演示各方法应用场景。重点解析Playwright智能定位器(Locator)的独特优势——自动等待与重试机制,通过预检元素可操作性(可见/可点击)有效规避网络延迟导致的脚本失效,显著提升自动化测试稳定性。
|
前端开发
|
前端开发 容器
最新CSS3定位元素
【8月更文挑战第28天】
191 5
CSS_定位_网页布局总结_元素的显示与隐藏
CSS_定位_网页布局总结_元素的显示与隐藏
132 0
|
前端开发 容器
css中使用定位实现吸顶效果
css中使用定位实现吸顶效果
317 2
|
前端开发
HTML+CSS基础知识(5)相对定位、绝对定位、固定定位
这篇文章介绍了HTML和CSS中的三种定位方式:相对定位、绝对定位和固定定位,并通过代码示例展示了它们如何影响元素在页面上的布局和位置。
HTML+CSS基础知识(5)相对定位、绝对定位、固定定位
|
前端开发 编译器
CSS定位(如果想知道CSS有关定位的知识点,那么只看这一篇就足够了!)
CSS定位(如果想知道CSS有关定位的知识点,那么只看这一篇就足够了!)
|
前端开发
css实用技巧——给锚点定位添加偏移
css实用技巧——给锚点定位添加偏移
451 3
|
前端开发 开发者
CSS属性选择器:精确定位元素的利器
CSS属性选择器:精确定位元素的利器
286 4