2014-11-03 30 views
7

Zastosowałem kolor tła do linków na mojej liście krajów. To działa dobrze w ogóle:Przepełnienie dla koloru tła tekstu

enter image description here

Jednakże dla krajów, które mają dłuższe nazwy, to nie działa bardzo dobrze.

enter image description here

Próbuję zrobić żółty kolor przepełnienia wszystko i pokazać pełną nazwę kraju wyraźnie.

HTML:

<div class="flagList"> 
<div class="flagColumn"> ... </div> 
<div class="flagColumn"> ... </div> 
<div class="flagColumn"> ... </div> 
... 
</div> 

CSS:

.flagColumn { 
    width: 33%; 
    float: left; 
    border:0px solid; 
    height:1.6em; 
    overflow:hidden; 
    white-space:nowrap; 
    text-overflow:ellipsis; 
    z-index: 1; position:relative; 
} 

.flagColumn:hover { 
    overflow:visible; 
    z-index: 2; position:relative; 
    display: inline; 
    background-color:yellow; 
} 
+2

będzie Proponuję używać tabel HTML. Poprawnie sformatują wiersze i kolumny. Tabele będą również dobrze sformatowane. Przeczytaj ten samouczek, aby rozpocząć: [link] (http://www.w3schools.com/html/html_tables.asp) – zaingz

Odpowiedz

4

Można to zrobić poprzez owinięcie zawartości .flagColumn na dodatkowym elementem, ustawiając ją na display: inline-block; i ustawienie tła na zamiast tego:

.flagColumn { 
 
    float: left; 
 
    height: 1.6em; 
 
    overflow: hidden; 
 
    text-overflow: ellipsis; 
 
    white-space: nowrap; 
 
    width: 33%; 
 
    z-index: 1; 
 
} 
 
.flagColumn:hover { 
 
    overflow: visible; 
 
    position: relative; 
 
    z-index: 2; 
 
} 
 
.flagColumn:hover span { 
 
    background-color: yellow; 
 
    display: inline-block; 
 
    height: 100%; 
 
}
<div class="flagList"> 
 
    <div class="flagColumn"><span>This is test text!</span></div> 
 
    <div class="flagColumn"><span>This is a lot longer test text! This is a lot longer test text!</span></div> 
 
    <div class="flagColumn"><span>This is a lot longer test text! This is a lot longer test text!</span></div> 
 
</div>

JS Fiddle:http://jsfiddle.net/hL9qfuvb/1/