Can you apply CSS only on text that is wrapped, i.e. the second and subsequent lines?

后端 未结 4 1649
心在旅途
心在旅途 2021-01-07 18:07

I want to put a margin-left on only the text that is wrapped, i.e. text after the first line:

This is text with no margin left
     this text ha         


        
相关标签:
4条回答
  • 2021-01-07 18:14

    Yeah, sort of — I’d suggest combining padding-left and text-indent:

    HTML

    <div class="test">
        <label for="2question1">
            <input type="checkbox" id="2question1" name="2question" title="Merknaam 1" /> Very long text which is wrapped on the next line
        </label><br>
    
        <label for="2question2">
            <input type="checkbox" id="2question2" name="2question" title="Merknaam 2" /> Merknaam 2
        </label><br>
    
        <label for="2question3">
            <input type="checkbox" id="2question3" name="2question" title="Merknaam 3" /> Merknaam 3
        </label><br>
    
        <label for="2question4">
            <input type="checkbox" id="2question4" name="2question" title="Merknaam 4" /> Merknaam 4
        </label><br>
    </div>
    

     CSS

    .test {
        width:200px;
    }
    
    .test label {
        display: block;
        padding-left: 1em;
        text-indent: -1em;
    }
    

    text-indent applies only to the first line of text in a block-level element, so it should achieve what you want.

    See http://jsfiddle.net/pauldwaite/qUvvv/

    0 讨论(0)
  • 2021-01-07 18:17

    No, but you can apply CSS to the first line, so you could reverse your thinking to achieve the same effect.

    Something like this:

    .mytext {margin-left:-5em;}
    .mytext:first-line {margin-left:0;}
    

    Here's a JSFiddle example of it working: http://jsfiddle.net/4ckxJ/3/

    See http://www.quirksmode.org/css/firstline.html for more info on the :first-line pseudo-class.

    0 讨论(0)
  • 2021-01-07 18:19

    You could wrap the line you want to wrap in a span and apply:

    display: block;
    margin-left: 12px;
    

    Giving it display: block will make it wrap to a new line and the margin pushes it off to the right.

    0 讨论(0)
  • 2021-01-07 18:37

    as per your updated example, here's a fork JSFiddle

    float the input and then make the label display block so it floats right in beside it - spacing created with padding and margin, overflow:hidden makes the text "not wrap" - then you also might want to remove the br's from your HTML

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