Is it possible to create box-shadow effect for inline text?

前端 未结 4 614
误落风尘
误落风尘 2021-01-20 16:13

I want to create this effect:

\"enter

Is there a way to do this via CSS/JS?

4条回答
  •  无人及你
    2021-01-20 16:57

    Here's a method of achieving a multi-line, padded, highlight behavior for text using just CSS.

    This is based on the box-shadow method found elsewhere however as of Firefox 32 the traditional box-shadow solution no longer renders correctly.

    Reviewing the changes made I found the addition of a new property: box-decoration-break, that was responsible. This property defaults to 'split' but needs to be specified as 'clone' to achieve the desired multiline padding effect.

    For more info see: https://developer.mozilla.org/en-US/docs/Web/CSS/box-decoration-break

    .box {
      width: 50rem;
      margin: 1rem auto;
      font-family: arial, verdana;
    }
    
    h1 {
      color: white;
      font-size: 2.5rem;
      line-height: 4rem; /* reduce size to remove gap between text */
      margin: 0px;
    }
    
    h1 span {
      background-color: #A8332E;
      padding: 0.5rem 0;
      -webkit-box-shadow: 1rem 0px 0px #A8332E, -1rem 0px 0px #A8332E;
      box-shadow: 1rem 0px 0px #A8332E, -1rem 0px 0px #A8332E;
      -webkit-box-decoration-break: clone;
      -ms-box-decoration-break: clone;
      -o-box-decoration-break: clone;
      box-decoration-break: clone;
    }

    Multi-line, padded, highlighted text working in latest Firefox using box-decoration-break: clone

提交回复
热议问题