Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to increase width of underline for the multiline text when on hover

Fellow brothers in code,

I am trying to achieve custom text-decoration: underline; effect for the multiline text between <p> tags. Similar to one, showed in the picture below.

enter image description here

Would you mind to share some ideas or solutions for this problem. Do you think it is possible to achieve result with only CSS using :before :after or is it a case for JS to come in hand?

Many thanks for all possible help. Will be looking forward.

like image 636
o.O Avatar asked Aug 08 '17 19:08

o.O


2 Answers

After doing a bit of research it seems it can be done if you put a <span> inside the <p> and add a box-shadow to that. This works better than a border because the border has to be displayed below the text only. This allows the underline to intersect the text. This is an added element, but it doesn't require that you break up everything in it's own <p> element.

.underline{
  max-width: 240px;
  font-family: sans-serif;
  font-size: 20px;
}

.underline:hover span{
  box-shadow: inset 0 -10px lightblue;
}
  <p class="underline">
    <span>Pick some apples.<br>
    Make some juice. with more text so long that it wraps.<br>
    ????<br>
    Profit!
    </span>
  </p>
like image 124
Don Avatar answered Oct 24 '22 19:10

Don


You can use a repeating linear gradient, and set display: inline on the paragraph to draw the lines only under the text:

p {
  display: inline;
  font-size: 20px;
  line-height: 28px;
  background: repeating-linear-gradient(to bottom, transparent, transparent 14px, rgba(128, 0, 128, 0.5) 14px, rgba(128, 0, 128, 0.5) 22px);
}
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc imperdiet elementum purus sed fermentum. Aliquam vehicula vel leo ut ullamcorper. <br /> Aenean condimentum justo massa, et eleifend quam elementum at. Mauris vulputate quam ut velit mattis, at pretium
  ex faucibus. Nulla facilisi. <br /> Quisque condimentum sapien ut diam lacinia, non commodo turpis faucibus. Ut in nisl nec magna lobortis tristique ac vitae ante. Cras egestas felis nec tortor varius rhoncus. Phasellus sagittis eget dolor ut condimentum.</p>
like image 36
Ori Drori Avatar answered Oct 24 '22 19:10

Ori Drori