Can I change the vertical position of a strike-through on a website?

前端 未结 5 1109
被撕碎了的回忆
被撕碎了的回忆 2020-12-06 10:02

I\'m applying the strikeout tag

$5,000,000

But the line is too low.. .it\'s about 1/4 from the bottom rather than throug

相关标签:
5条回答
  • 2020-12-06 10:07

    Not with the strike tag, no. It's part of the rendering engine of the browser. For me (in Chrome) the line is rendered just above the middle.

    0 讨论(0)
  • 2020-12-06 10:15

    You can't do it with the strike tag OR the text-decoration:line-through style. The line position is built-in. You could roll your own style for that, but it would be a huge PITA.

    0 讨论(0)
  • 2020-12-06 10:20

    I've cooked up this code which gives you total control over strike-through position and style:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
    <head>
    <title>Test</title>
    
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    
    <style type="text/css"> 
    
        .mark {
            border-bottom: 1px solid #000;
            top: -9px; /* Tweak this and the other top in equal, but opposite values */
            position: relative;
        }
        .offsetMark {
            position: relative;
            top: 9px; /* Tweak this and the other top in equal, but opposite values */
        }   
    
    </style>     
    </head>     
    <body>        
    <div>     
        <p class="strikethrough">This is an <span class="mark"><span class="offsetMark">example</span></span> of how I'd do it.</p>     
    </div>
    
    </body>
    </html>
    
    0 讨论(0)
  • 2020-12-06 10:23

    You could do something like this:

    <div class="heading"><span>Test heading</span></div>
    
    .heading {
      position: relative;
      text-align:center;
    }
    .heading:before {
      background-color: #000000;
      content: "";
      height: 1px;
      left: 0;
      position: absolute;
      right: 0;
      top: 50%;
    }
    .heading span {
      background-color: #fff;
      display: inline-block;
      padding: 0 2px;
      position: relative;
      text-align: center;
    }
    

    http://codepen.io/anon/pen/cLBls

    0 讨论(0)
  • 2020-12-06 10:30

    This solution allows for padding, and uses the csss line-through property It works for firefox, and chrome/ safari does it right anyway.


    div.hbPrice span.linethroughOuter {
        padding: 0 10px 0 0;
        text-decoration: line-through;
        position: relative;
    }
    div.hbPrice span.linethroughInner {
        position: relative;
    }
    /* Firefox only. 1+ */
    div.hbPrice span.linethroughOuter,  x:-moz-any-link  { bottom:  2px; }
    div.hbPrice span.linethroughInner,  x:-moz-any-link  { top:  2px; }
    

    and the mark up is something like...

    <div class="hbPrice"><span class="linethroughOuter"><span class="linethroughInner">£1,998</span></span> £999</div>
    

    The other solution is to add a background image of a line, and make it the same colour as the text.

    0 讨论(0)
提交回复
热议问题