2016-07-12 4 views
2

Как я могу сделать background color распространяться по всей линии без width:100%Как сделать текст вложенной лилией каскадом

<ul> 
 
    <li style="background-color:#33FF33">11 
 
     <ul> 
 
      <li style="background-color:#CC3333">22 
 
       <ul> 
 
        <li style="background-color:#336633">33 </li> 
 
       </ul> 
 
      </li> 
 
     </ul> 
 
    </li> 
 
</ul>

Это то, что я пытаюсь достичь

enter image description here

+0

Можете ли вы быть немного более конкретно о том, что вы пытаетесь сделать? – Relisora

+2

Ваш html неверен, потому что 'ul' не может быть прямым ребенком' ul' – Mohammad

+0

Просьба уточнить вашу конкретную проблему или добавить дополнительные сведения, чтобы точно указать, что вам нужно. Как это написано в настоящее время, трудно точно сказать, что вы просите – Pete

ответ

1

Вы можете использовать CSS text-indent свойство, чтобы сделать отступ в элемент текста. Но если вы не хотите его использовать, вы можете использовать jquery .wrap() для обертывания div вокруг текста li и установить margin-left для div.

$("li").each(function(i){ 
 
    $(this).contents().eq(0).wrap("<div/>"); 
 
    $(this).find("div").css("margin-left", i * 40); 
 
});
ul { 
 
    padding: 0px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
 
    <li style="background-color:#33FF33">11 
 
     <ul> 
 
      <li style="background-color:#CC3333">22 
 
       <ul> 
 
        <li style="background-color:#336633">33 </li> 
 
       </ul> 
 
      </li> 
 
     </ul> 
 
    </li> 
 
</ul>

1

Этого можно достичь, используя text-indent.
Предостережение: текстовые отступы не наследуются красиво, поэтому вам придется добавлять разные текстовые отступы для каждого уровня вложенных элементов списка.

ul, li {padding-left:0; margin-left:0; list-style: none} 
 
li li {text-indent:2.5em} 
 
li li li {text-indent:5em} 
 
li li li li {text-indent:7.5em} /* and so on, how many levels you need */
<ul> 
 
    <li style="background-color:#33FF33">11 
 
     <ul> 
 
      <li style="background-color:#CC3333">22 
 
       <ul> 
 
        <li style="background-color:#336633">33 </li> 
 
       </ul> 
 
      </li> 
 
     </ul> 
 
    </li> 
 
</ul>

Смежные вопросы