Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CSS - Getting Unwanted Horizontal Space

I'm trying to style a simple countdown timer - but I've hit an issue that I don't understand.

I'm getting space between two inline-divs (the ones with green borders) that I don't want. Looking at the CSS in in Chrome's "Inspect Element" I can't see where it is coming from - nor can I get rid of it.

Unwanted space between the numbers

I notice that the green borders change on the first timer interval too - anyone know why this is and how I can stop it? How can I manage the space in between these 2 divs?

Ultimately I want something like the codecanyon timers but I don't expect anyone to provide me with the full CSS for that, just help me understand the above issues.

I am using Google Chrome Version 23.0.1271.95m.

Code from the fiddle example:

Html.

<div id="timer1-wrapper">
    <div class="timer">
        <div class="timer-values-wrapper">
            <div class="timer-value-wrapper">
                <div class="minutes-value-1">
                    1
                </div>
                <div class="minutes-value-2">
                    4
                </div>
            </div>
            <span>minutes</span>
        </div>
        <div class="timer-values-wrapper">
            <div class="timer-value-wrapper">
                <div class="seconds-value-1">
                    5
                </div>
                <div class="seconds-value-2">
                    9
                </div>
            </div>
            <span>seconds</span>
        </div>
    </div>
</div>​

Javascript.

var minutes = 14;
var seconds = 59;

var secondsTimer = setInterval(function () {
    seconds--;
    if (seconds < 0) {
        if (minutes == 0) {
            clearInterval(secondsTimer);
            alert('Time is up');
            return false;
        }
        else {
            minutes -= 1;
           var minutesString = minutes < 10 ? '0' + minutes.toString() : minutes.toString();
           $('.minutes-value-1').text(minutesString.substr(0, 1));
           $('.minutes-value-2').text(minutesString.substr(1, 1));
           seconds = 59;
       }
    }
    var secondsString = seconds < 10 ? '0' + seconds.toString() : seconds.toString();
    $('.seconds-value-1').text(secondsString.substr(0, 1));
    $('.seconds-value-2').text(secondsString.substr(1, 1));
}, 1000);​

CSS.

.timer {
    border: 1px solid Red;
    font-family: "Trebuchet MS", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Tahoma, sans-serif;
}

.timer-values-wrapper {
    border: 1px solid Blue;
    font-size: 4em;
}

.timer-values-wrapper span {
    border: 1px solid Black;
    font-size: 0.5em;
}

.timer-value-wrapper {
    border: 1px solid Purple;
}

.timer-value-wrapper div {
    border: 1px solid Green;
    display: inline;
}​
like image 330
PeteGO Avatar asked Apr 08 '26 21:04

PeteGO


1 Answers

When you have two inline elements whitespace in the markup is whitespace on the screen. If you change your markup to <div style="white-space: nowrap;" class="timer-value-wrapper"><div class="seconds-value-1">4</div><div class="seconds-value-2">3</div></div> with no whitespace in the markup then the space goes away. Your other option is to use floating divs or the likes.

like image 159
Eli Gassert Avatar answered Apr 11 '26 15:04

Eli Gassert