CSS:div角落的点

 秋天的紫丁香 发布于 2023-02-06 10:13

我试图在容器的每个角落放一个点.我在想这个技巧就是.my-container:在设置:before边框或背景属性之前的组合.我想要的效果类似于SO#17306087,但我不想使用图像.

编辑

的jsfiddle

我将使用它相当多,所以希望它与css类自动发生(不需要额外的DOM元素).

编辑

由于svg是基于文本的,可以直接插入到css中,我正在研究这种方法.我在这里看到这确实有用:示例小提琴

我更新的小提琴(目前有一个css错误,我试图 精确定位)固定小提琴4点使用背景道具

svg是有效的,不会像DOM那样抛出错误:小提琴

2 个回答
  • 您只能在div和标准CSS上执行此操作.

    诀窍是使用伪元素使用径向渐变显示2个圆.

    .test1 {
        width: 200px;
        height: 200px;
        background-color: lightblue;
        position: absolute;
        left: 220px;
    }
    
    .test1:before, .test1:after {
        content: "";
        position: absolute;
        height: 100%;
        width: 20px;
        top: 0px;
        background-image: radial-gradient(circle at center, red 5px, transparent 5px), radial-gradient(circle at center, red 5px, transparent 5px);
        background-size: 20px 20px;
        background-position: top center, bottom center;
        background-repeat: no-repeat;
    }
    
    .test1:before {
        left: 0px;
    }
    .test1:after {
        right: 0px;
    }
    

    小提琴

    您也可以在元素本身中绘制圆圈,但之后您无法将其应用于具有背景的元素.

    上面的代码使圆圈像素化.红色/透明过渡最好留下1个像素

        background-image: radial-gradient(circle at center, red 5px, transparent 6px), radial-gradient(circle at center, red 5px, transparent 6px);
    

    更新小提琴

    2023-02-06 10:14 回答
  • 假设你对一些有点疯狂的东西感到满意,那么只有一个CSS解决方案完全基于单个类(在单个元素上).唯一需要注意的是,该元素必须至少有一个子元素(反正应该是这样的,对吗?)

    .my-container:before, .my-container:after, .my-container *:first-child:before, .my-container *:first-child:after {
        content: '';
        height: 5px;
        width: 5px;
        position: absolute;
        background: #777;
        border-radius: 50%;
    }
    .my-container:after {
        right: 0;
        top: 0;
    }
    .my-container *:first-child:before {
        left: 0;
        bottom: 0;
    }
    .my-container *:first-child:after {
        bottom: 0;
        right: 0;
    }
    

    您可以使用:before:after创建您的点,但挑战在于这只会为每个元素创建两个点.因此,我将其设置为查找容器内的第一个元素,并对其应用相同的样式.(通配符选择器*查找任何元素,并:first-child确保它只应用于一个子元素)

    见小提琴:http: //jsfiddle.net/5N9ep/2/

    现在显然这不适用于所有情况,如果你有更好的工作,你总是可以搞乱第二个元素的选择器.

    除此之外,如果你想让它变得更实用(但不那么酷),我建议只制作两个包装div元素,并为它们中的每一个提供一个独特的类,每个元素创建两个点,简单:before:after.

    2023-02-06 10:16 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有