伪元素为什么要设置绝对定位

效果实现了,但是没理解为什么要设置绝对定位,高手们谁知道?        /*使用伪元素制作导航列表项分隔线*/ .nav li:after{     content:"";         width:1px;         height:20px;         position:absolute;/*为什么要设置绝对定位*/         top:15px;         right:0px;         background-image:linear-gradient(to top,#f00,#000);

绝对定位脱离文档流,且具有跟随性,即紧随在它之前的元素(未设置绝对定位的元素)的后面,且不占据任何空间。这个时候给他设置top, right 从而完美控制伪元素的位置,且不需要加入padding margin 以免影响整体宽高值。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style type="text/css">
    p{
        position: relative;
    }
        span{
            position: absolute;
        }
        .test{
            display: block;
            box-sizing: border-box;
            width:100px;
            height:100px;
            position: absolute;
            background:#3f3f3f;
            padding:20px 20px;
            color:white;
            bottom:300%;
            left:-50px;
            visibility: hidden;

        }
        .test::after{
            top:100%;
            content: " ";
            border-width:20px;
            border-style: solid;

            position: absolute;
            background:#3f3f3f;
            border-color: black white  white white;
            margin-left:50%;
            left:-20px;

        }
        .a{
            margin-left:40px;
            display: block;
            position: relative;
            margin-top:200px;
        }
        .a:hover .test{
            visibility: visible;
        }
    </style>
</head>
<body>
<p>asdfasdf
<span>sdf</span></p>

<a href="" class="a">
    <div class="test">
    hello world!
</div>
sd
</a>

</body>
</html>

创建一个透明图像

原文地址:https://www.cnblogs.com/webcyh/p/11332688.html

时间: 2024-10-31 04:20:46

伪元素为什么要设置绝对定位的相关文章

学习使用:before和:after伪元素

(此文没有门槛,浅显易懂,适合新手入门) 之前以为伪元类选择器用的不多,所以没怎么关注,现在发现:before和:after伪元素已经在前端开发中获得了相当多的关注,所以来研究一下,加深印象. 尽管css 规范中包含其他的伪元素,但是目前我们焦点是 :before 和 :after.因此,为了简便起见,我所说的“伪元素”泛指这两个特别的伪元素. 伪元素能做什么呢? “伪元素”,顾名思义.它创建了一个虚假的元素,并插入到目标元素内容之前或之后.因为在文档中它不实际改变什么.相反的,它们是像幽灵一般

前端面试题-伪元素的应用

一.伪元素的应用 1. 清除浮动 父元素中有子元素,并且父元素没有设置高度,子元素在父元素中浮动,结果必然是父元素的高度为 0,这也就导致了父元素高度塌陷,我们就需要清除浮动. 给浮动元素的容器添加一个 clearfix 的 class,然后给这个 class 添加一个 :after 伪元素实现元素之后添加一个看不见的块元素(Block element)清理浮动. 2. 分割线 HTML <p class="line">分割线</p> CSS .line::be

如何给before和after伪元素设置js效果

目录 [1]动态嵌入CSS[2]添加类名 [3]setAttribute [4]添加样式表 [5]修改样式表 前面的话 无法直接给before和after伪元素设置js效果 例子说明 现在需要为(id为box,内容为"我是测试内容"的div)添加(:before内容为"前缀",颜色为红色的伪类) <!DOCTYPE html> <html lang="en"> <head> <meta charset=&

HTML和CSS设置动态导航以及CSS中伪元素的简单说明

HTML页面代码: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>Test</title> 5 <meta charset="utf-8"> 6 <link rel="stylesheet" type="text/css" href="style.css"> 7 <script type=&qu

伪元素练习( css动态设置文本内容)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

CSS3 ::before和::after伪元素的实际应用

实例 1.清除浮动 通常我们清除清除浮动的方式就是在浮动元素后面添加一个空的Div标签,然后在设置它的清除浮动要是,使用after伪元素,我们就不需要添加无意义的div标签在html中了,下面的例子就使用了伪元素清除浮动 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <style type="text/css"> ul { margin: 200p

伪元素

原文出处: Thoriq Firdaus   译文出处:听海阁(@听海JamiE) 层叠样式表(CSS)的主要目的是给HTML元素添加样式,然而,在一些案例中给文档添加额外的元素是多余的或是不可能的.事实上CSS中有一个特性允许我们添加额外元素而不扰乱文档本身,这就是"伪元素". 你一定听说过这个词,尤其是当你一直关注着我们的教程.点此浏览原作者的其他文章 事实上,的确有一些CSS家族的成员(CSS选择器)被分类为伪元素比如::first-line, :first-letter, ::

CSS before和after伪元素

CSS中有一个特性允许我们添加额外元素而不扰乱文档本身,它们是以CSS选择器的形式出现的,具有标签的表现效果,但是呢又不是真正的标签元素,所以叫做“伪元素”.下面就说一下常见的两个伪元素before和after. 一.伪元素基本用法 在CSS选择器中加上相应伪类选择符就可以了,像这样:#example: before或者#example: after,这里是使用ID选择器,比如下面的CSS代码: #example:before { content: "\""; } #exam

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

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