CSS中的加号

时间:2019-03-21 13:36:01

标签: html css

我有下面的CSS代码,该代码给出了 + 符号,但与设计基本不匹配,因此需要变薄。请参见摘要和codpen

.plus {
  position:relative;
  border: 1px dotted white;
  width: 3px;
  height: 3px;
  background-color: black;
  box-sizing: border-box;
  transform: scale(11);
}
<div class="plus"></div>

应该看起来像下面的符号:Should Look like this

任何其他样式对我来说也都很好,但应该看起来像快照。

4 个答案:

答案 0 :(得分:2)

使用如下的多色背景:

.plus {
  width:50px;
  height:50px;
  background:
    linear-gradient(#fff,#fff),
    linear-gradient(#fff,#fff),
    #000;
  background-position:center;
  background-size: 50% 2px,2px 50%; /*thickness = 2px, length = 50% (25px)*/
  background-repeat:no-repeat;
}

.plus-alt {
  width:50px;
  height:50px;
  background:
    linear-gradient(#000,#000),
    linear-gradient(#000,#000);
  background-position:center;
  background-size: 50% 2px,2px 50%; /*thickness = 2px, length = 50% (25px)*/
  background-repeat:no-repeat;
}
<div class="plus">
</div>

<div class="plus-alt">
</div>

这是透明的:

.plus {
  width:50px;
  height:50px;
  background:
    linear-gradient(#000,#000) top left,
    linear-gradient(#000,#000) top right,
    linear-gradient(#000,#000) bottom left,
    linear-gradient(#000,#000) bottom right;
  background-size: calc(50% - 1px) calc(50% - 1px); /*thickness = 2px (2*1px) */
  background-repeat:no-repeat;
  border:10px solid #000; /*length = 30px (50px - 2x10px) */
  box-sizing:border-box;
}

body {
 background:pink;
}
<div class="plus">
</div>

答案 1 :(得分:1)

您可以通过使用CSS的content属性来完成此操作:

.plus {
  height: 24px;
  width: 24px;
  display: inline-block;
  background-color: black;
  color: white;
  font-size: 24px;
  line-height: 24px;
  text-align: center;
}

.plus::before {
  content: "+";
}

这是显示以上代码的Fiddle

答案 2 :(得分:0)

我建议在伪元素之前和之后使用伪元素。

基本上,我仅将div用作黑色背景,将before元素用作垂直线,并将after元素用作水平线。

.plus {
  position: relative;
  width:20px;
  height:20px;
  background:#000;
}

.plus:before,
.plus:after {
  content: "";
  position:absolute;
  background:#fff;
}

/* the vertical line */
.plus:before {
  left:50%;
  top:4px; /* this defines how much black "border" there should be */
  bottom:4px;
  width:2px;
  transform:translateX(-50%);
}

/* the horizontal line */
.plus:after {
  top:50%;
  left:4px;
  right:4px;
  height:2px;
  transform:translateY(-50%);
}

这是一个完整的示例:https://codepen.io/Fitzi/pen/zbMBVw

答案 3 :(得分:0)

我也建议您使用实际符号:

.plus {
  display: block;
  height: 0.6em;
  width: 0.6em;
  font-size: 100px;
  text-align: center;
  line-height: 0.5em;
  margin: 0;
  padding: 0;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  font-family: Frutiger, "Frutiger Linotype", Univers, Calibri, "Gill Sans", "Gill Sans MT", "Myriad Pro", Myriad, "DejaVu Sans Condensed", "Liberation Sans", "Nimbus Sans L", Tahoma, Geneva, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: lighter;
  color: #ffffff;
  background-color: #000000;
}

.plus::before {
  display: block;
  content: '+';
}
<div class="plus"></div> 

提琴:https://jsfiddle.net/m5de0ycL/

然后只更改字体大小以适应大小,如果字体不够细,则可以将字体系列更改为较窄的字体。

编辑:@ Temani-Afif的解决方案更加多样化。根据您的兼容性需求,我建议他使用我的产品:Make plus symbol in CSS