【CSS】定位之下尺寸百分比参考对象

先上结论:

子元素没有设置定位,其尺寸设置百分比参照的对象是       该子元素的父级元素;

子元素绝对定位后,其尺寸设置为百分比参考的对象是       该子元素设置了定位(这里的定位包括绝对定位,相对定位和固定定位)的祖先元素(一层一层往上找,直到找到定位的祖先元素停止)。若没有找到目标,则参照的是浏览器窗口。

下面是测试代码

子元素不设置定位,父元素也不设置定位

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .father{
            width: 300px;
            height: 300px;
            background-color: yellow;
        }
        .son{
            width: 200px;
            height: 200px;
            background-color: blue;    

        }
        .grandson{
            width: 100%;
            height: 100px;
            background-color: pink;
        }
    </style>
</head>
<body>
    <div class="father">
        <div class="son">
            <div class="grandson">
            </div>
        </div>
    </div>
</body>
</html>

效果如下:

可以看到子元素尺寸参照的是父级元素。

在上面代码的基础上,给黄色盒子设置定位:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .father{
            width: 300px;
            height: 300px;
            background-color: yellow;
            position: relative;
        }
        .son{
            width: 200px;
            height: 200px;
            background-color: blue;    

        }
        .grandson{
            width: 100%;
            height: 100px;
            background-color: pink;
        }
    </style>
</head>
<body>
    <div class="father">
        <div class="son">
            <div class="grandson">
            </div>
        </div>
    </div>
</body>
</html>

效果如下:

看到和上面结果一样,说明子元素没有设置定位,不会理睬设置了定位的祖先元素。

接着在上面的基础上,给粉色的盒子设置绝对定位:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .father{
            width: 300px;
            height: 300px;
            background-color: yellow;
            position: relative;
        }
        .son{
            width: 200px;
            height: 200px;
            background-color: blue;    

        }
        .grandson{
            width: 100%;
            height: 100px;
            background-color: pink;
            position: absolute;
        }
    </style>
</head>
<body>
    <div class="father">
        <div class="son">
            <div class="grandson">
            </div>
        </div>
    </div>
</body>
</html>

效果如图:

看到,子元素(粉色盒子)的宽度和设置了定位的祖先元素(黄色盒子)的宽度一样。

接着,将祖先元素的定位去掉。代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .father{
            width: 300px;
            height: 300px;
            background-color: yellow;
            /*position: relative;    */         //我是去掉的定位
        }
        .son{
            width: 200px;
            height: 200px;
            background-color: blue;    

        }
        .grandson{
            width: 100%;
            height: 100px;
            background-color: pink;
            position: absolute;
        }
    </style>
</head>
<body>
    <div class="father">
        <div class="son">
            <div class="grandson">
            </div>
        </div>
    </div>
</body>
</html>

效果如下:

子元素(粉色盒子)的宽度为浏览器的宽度(因为其祖先元素没有定位)。

上述结论成立。

时间: 2024-08-10 01:51:32

【CSS】定位之下尺寸百分比参考对象的相关文章

Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析

加速IE浏览器自动化执行效率:Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析 1.技术背景       在Web应用中,用户通过键盘在输入框中输入值和鼠标点击按钮,链接等.比如在用户名输入框和密码输入框输入正确的用户名和密码,然后点击登录按钮进行登录.在Selenium自动化中,Selenium提供多种API来对HTML元素进行操作,对于每个HTML元素,需要一个可以标识它的标识符,在Selenium中称之为定位器,Selenium支持多种不同类型的定位器,有标

HTML学习笔记 css定位(静态,相对,固定,绝对布局)偏移案例 第十二节 (原创) 参考使用表

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>CSS定位(静态,相对,固定,绝对布局)小广告案例</title> <link rel="stylesheet" href="tzy.css" type="text/css"> <

css定位瞄点透明相关知识

 position 定位属性,检索对象的定位方式: 一.语法: position:static(initial) /absolute/relative/fixed/sticky(粘性定位),unset相当于static 取值: 1.static:默认值,无特殊定位,对象遵循HTML原则, 会忽略left.top.right.bottom和z-index属性: 2.relative :相对定位,是相对于默认位置的偏移定位,通过设置left.top.right.bottom 值可将其移至相对所需位置

带你走进CSS定位详解

学习CSS相关知识,定位是其中的重点,也是难点之一,如果不了解css定位有时候都不知道怎么用,下面整理了一下关于定位属性的具体理解和应用方案. 一:定位 定位属性列表 position top bottom right left z-index position 基本语法: position:static | absolute | fixed | relative 语法介绍: static:默认值,无特殊定位. absoulte:相对于其最近的一个定位设置的父对象进行绝对定位,可用left,ri

CSS 定位 (Positioning) CSS 外边距合并 CSS 相对定位

CSS 定位 (Positioning) 属性允许你对元素进行定位. CSS 定位和浮动 CSS 为定位和浮动提供了一些属性,利用这些属性,可以建立列式布局,将布局的一部分与另一部分重叠,还可以完成多年来通常需要使用多个表格才能完成的任务. 定位的基本思想很简单,它允许你定义元素框相对于其正常位置应该出现的位置,或者相对于父元素.另一个元素甚至浏览器窗口本身的位置.显然,这个功能非常强大,也很让人吃惊.要知道,用户代理对 CSS2 中定位的支持远胜于对其它方面的支持,对此不应感到奇怪. 另一方面

CSS 定位和选择器

CSS 定位 CSS 定位 (Positioning) 属性允许你对元素进行定位. CSS 为定位和浮动提供了一些属性,利用这些属性,可以建立列式布局,将布局的一部分与另一部分重叠,还可以完成多年来通常需要使用多个表格才能完成的任务. 一切皆为框 div.h1 或 p 元素常常被称为块级元素.这意味着这些元素显示为一块内容,即“块框”.与之相反,span 和 strong 等元素称为“行内元素”,这是因为它们的内容显示在行中,即“行内框”. 使用 display 属性改变生成的框的类型.这意味着

css 定位属性position的使用方法实例-----一个层叠窗口

运行结果: <!DOCTYPE html> <html> <head> <title>重叠样式窗口</title> <style type="text/css"> div.window{ /*指定窗口的尺寸和边框*/ position:absolute; /*position在其他地方指定*/ width: 300px; /*窗口尺寸,不含边框*/ height: 200px; border: 3px outset

CSS定位属性position

CSS定位元素有3种方式 :普通流.相对位置.绝对位置.通过设置position属性来实现. position属性取值的含义 inherit 继承父元素position 属性的值. static 默认值.没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明). relative 生成相对定位的元素,相对于元素本身正常位置进行定位.因此,"left:20" 会向元素的 LEFT 位置添加 20 像素. absolute 生成绝

CSS 高级:尺寸、分类、伪类、伪元素

CSS 尺寸:允许你控制元素的高度和宽度.同样,还允许你增加行间距. CSS 分类:允许你控制如何显示元素,设置图像显示于另一元素中的何处,相对于其正常位置来定位元素,使用绝对值来定位元素,以及元素的可见度. CSS 伪类:用于向某些选择器添加特殊的效果. CSS 伪元素:用于将特殊的效果添加到某些选择器. CSS 尺寸属性 CSS 尺寸属性允许你控制元素的高度和宽度.同样,还允许你增加行间距. 属性 描述 height 设置元素的高度. line-height 设置行高. max-height