Overflow for background color of text
Asked Answered
S

1

11

I applied background color to the links in my country list. It works well in general:

enter image description here

However, for the countries which have longer name, it doesn't work very well.

enter image description here

I'm trying to make the yellow color overflow everything and show country's full name clearly.

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;
}
Salomie answered 3/11, 2014 at 15:6 Comment(1)
I will suggest you to use HTML tables. They will properly format the rows and columns. Tables will be well formatted too. Check this tutorial to get started: linkProhibitionist
C
10

You can do this by wrapping the content of .flagColumn in an extra element, setting it to display: inline-block; and setting the background on that instead:

.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/

Chelton answered 3/11, 2014 at 15:36 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.