如何制作点状霓虹边框?

5

我做了一个霓虹边框https://jsfiddle.net/cf3cec6c/

    body{background:black;}
    h1 {
        color: white;
    }
    .wrapper{
    position: reltive;
     z-index: 999;             
        border:1px solid red;
        margin-top: 10px;
        margin-bottom: 10px;
        margin-right: 10px;
       
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    
      border: 3px solid #0cd808;
     box-shadow: 0 0 1px #b3ff51, 0 0 2px #b3ff51, 0 0 6px #b3ff51, 0 0 12px #b3ff51, inset 0 0 1px #b3ff51, inset 0 0 2px #b3ff51, inset 0 0 6px #b3ff51, inset 0 0 12px #b3ff51;
    
    }
    <div class="wrapper">
      <h1> hello hello hello hello
        hello hello hello hello
        hello hello hello hello
        hello hello hello hello
        <br>
         hello hello hello hello
        hello hello hello hello
        hello hello hello hello
        hello hello hello hello
        <br>
         hello hello hello hello
        hello hello hello hello
        hello hello hello hello
        hello hello hello hello
      </h1>
    </div>

我该如何让它成为一个点状的形式,就像这样:一张汽车旅馆/俱乐部标志的图片,有一个粗红色边框,内部有白色圆形灯光

3
如果你需要做一些非常复杂的事情,可以查看 border-image - ajm
这可以帮助你:http://codepen.io/luclemo/pen/xbMdEx - Black Sheep
3个回答

0

我能想到的最好的方法是使用边框图像(我相信之前有人在回答中提到过),您将不得不调整图像以适应您的喜好,但这可能是最好的方法。以下是一个示例:

border-style: solid;
border-width: 27px;
-moz-border-image: url(https://i.imgur.com/akKZqkx.png) 27;
-webkit-border-image: url(https://i.imgur.com/akKZqkx.png) 27;
-o-border-image: url(https://i.imgur.com/akKZqkx.png) 27;
border-image: url(https://i.imgur.com/akKZqkx.png) 27 fill;

您可以在下面看到边框的效果:

http://border-image.com/#%7B%22src%22%3A%22https%3A%2F%2Fi.imgur.com%2FakKZqkx.png%22%2C%22linkBorder%22%3Atrue%2C%22borderWidth%22%3A%5B0%2C0%2C0%2C0%5D%2C%22imageOffset%22%3A%5B27%2C27%2C27%2C27%5D%2C%22fill%22%3Atrue%2C%22setRepat%22%3Afalse%2C%22repeat%22%3A%5B%22round%22%2C%22round%22%5D%2C%22scaleFactor%22%3A3%2C%22setRepeat%22%3Afalse%7D

这里是点式版本:
http://border-image.com/#%7B%22src%22%3A%22https%3A%2F%2Fi.imgur.com%2FWJEmP3v.png%22%2C%22linkBorder%22%3Atrue%2C%22borderWidth%22%3A%5B0%2C0%2C0%2C0%5D%2C%22imageOffset%22%3A%5B27%2C27%2C27%2C27%5D%2C%22fill%22%3Atrue%2C%22setRepat%22%3Afalse%2C%22repeat%22%3A%5B%22repeat%22%2C%22repeat%22%5D%2C%22scaleFactor%22%3A3%2C%22setRepeat%22%3Atrue%7D


0
你可以尝试在你的 .wrapper 类中添加 border-style: dotted 样式:
.wrapper{
    /* omitted for brevity */
    border-style: dotted;
}

这可能不会给你提供完全符合你要求的样式,但请记住,如果你想处理一些复杂的边框样式,最好使用 border-image 样式。你甚至可以 使用像这里看到的在线生成器 来给你一个关于你的边框会是什么样子的想法。

如果你不介意添加相当多的HTML而且不想使用 border-image 方法,你可以实现类似以下的东西:

<div class='border-outer'>
   <div class='border-inner'>
      <div class='content'>
          This is a test
      </div>
   </div>
</div>
<style type='text/css'>
    .border-outer {
        outline: 5px solid red
    }
    .border-inner {
        background: red;
        border: 5px dotted #fff;
    }
    .content {
       background: #000; 
       color: #FFF;
       height: 80px;
       padding: 10px;
       border: 5px solid red;
    }
</style>

这可以在这个例子中看到,渲染出来的结果可能类似于以下内容:

enter image description here

这并不是完美的,甚至不够优雅,但它与您的目标图像有些相似。您最好使用像this one这样的示例,它严重依赖CSS,但会生成非常漂亮的霓虹灯效果(不包括点):

enter image description here


2
不,这样做不行。它会产生黑点,而不是将整个边框转换为点。 - uitwaa
听起来你最好使用border-image样式,就像我的编辑建议的那样。我建议使用像这个这样的生成器,它将允许您获得您要查找的图案。 - Rion Williams
1
谢谢,但你知道除了border-image之外还有其他的方法吗?有没有什么我可以对包装器(wrapper)进行的更改来达到期望的结果? - uitwaa
我已经编辑了我的回复,并提供了两个示例。一个依赖于一些额外的HTML来构建特定元素周围的边框,另一个示例将为您提供真正的“霓虹”效果,虽然它缺少点,但可能会接近您所需的效果,而不需要使用border-image - Rion Williams

0
请尝试这个:
.wrapper {
    border: 6px dotted #0cd808;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接