2015-09-15 3 views
0

У меня есть этот тестCSS дисплей встроенный блок и г-индекс

CSS:

ul li { 
    position:relative; 
    width:50px; 
    height:50px; 
    display:inline-block; 
    border:solid 1px black; 
    z-index:1; 
    vertical-align:top; 
} 
li.hover { 
    border:solid 1px red; 
    height: 70px; 
    z-index:2; 
} 

И HTML:

<ul> 
    <li></li> 
    <li></li> 
    <li></li> 
    <li class="hover"></li> 
    <li></li> 
    <li></li> 
    <li></li> 
    <li></li> 
    <li></li> 
    <li></li> 
    <li></li> 
    <li></li> 
    <li></li> 
    <li></li> 
    <li></li> 
    <li></li> 
    <li></li> 
    <li></li> 
</ul> 

http://jsfiddle.net/b6oumwf5/

Я хочу, чтобы красный элемент должен быть над черными, чтобы сохранить границу между двумя строками. Но теперь красный просто делает вторую строку движется вниз. Можно ли реализовать мою идею?

+0

Создать макет желаемого выхода. –

+1

Вопросы, требующие помощи по отладке («почему этот код не работает?») Должны включать в себя желаемое поведение, конкретную проблему или ошибку и кратчайший код, необходимый для его воспроизведения ** в самом вопросе. ** NB - ** Please не злоупотребляйте блоками кода, чтобы обойти это требование **. –

ответ

0

Вы должны создать элемент внутри элемента LI, а затем расположить этот элемент абсолютно как следующие spinets.

ul li { 
 
    position:relative; 
 
    width:50px; 
 
    height:50px; 
 
    display:inline-block; 
 
    border:solid 1px black; 
 
    z-index:1; 
 
    vertical-align:top; 
 
} 
 
li.hover{ 
 
    border: none; 
 
} 
 
span.abs { 
 
    border:solid 1px red; 
 
    height: 70px; 
 
    z-index:2; 
 
    position: absolute; 
 
    width: 100%; 
 
}
<ul> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li class="hover"><span class="abs"></span></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
</ul>

0

следует добавить позицию абсолютного в li.hover классе

ul li { 
 
    position:relative; 
 
    width:50px; 
 
    height:50px; 
 
    display:inline-block; 
 
    border:solid 1px black; 
 
    z-index:1; 
 
    vertical-align:top; 
 
    margin:0 0 10px 0; 
 
    
 
} 
 
li.hover { 
 
    border:solid 1px red; 
 
    height: 70px; 
 
    z-index:2; 
 
    position:absolute 
 
}
<ul> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li class="hover"></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
</ul>

+0

Но когда я это делаю, красный блок выходит из строки, а следующий черный блок перемещается к нему, и я хочу сохранить порядок. http://jsfiddle.net/b6oumwf5/1/ – Ilya

+0

@ user3571899 Вот почему вам нужно использовать внутренний элемент для этого. Вы видели мой ответ? –

+0

Bhojendra Непал спасибо! Оно работает! Я приму свой ответ! – Ilya