2013-07-19 5 views
6

Ho un problema con un determinato tag, preso da una fonte esterna. Questo codice che vedrai è preso da un altro sito web e potresti anche vedere una data (ex 15 Juli Måndag) Ci sono date in tutta la pagina, come potrei centrarle con solo CSS? Provato con posizionamento assoluto, che porta ad avere tutte le date l'una sull'altra.Come centrare una spanna all'interno di un TD?

Fiddle here.

mio html:

<div id="header"> 
    <div class="schema"> 
     <h1>Schema</h1> 
    </div> 
    <div class="back"><a id="back" href="index.html"></a> 
    </div> 
</div> 
<div id="content"> 
    <div class="content" style="margin-top:0px;"> 
     <div class="article" style="text-align:center;"> 
      <!-- Här skrivs det ut en massa saker --> 
     </div> 
    </div> 
</div> 

miei JS:

$(window).load(function() { //Fade 
    $("#status").fadeOut(); 
    $("#preloader").delay(350).fadeOut("slow"); 
}) 
grabShedule(); 

function grabShedule() { 
    var url = "http://1life.se/scraper/Schedule.php"; //URL 
    $.getJSON(url, function (response) { 
     var html = response.scraped[0].html; //Answer 
     $('.article').append(html); //Answer is appended to .article 
    }); 
} 

controllare il mio violino, non so come affrontare questo problema ...

Come lo voglio: Final

+0

non hai span nel tuo codice ... solo div – acudars

+0

I miei span sono generati dal mio JS. Prelevato da una fonte esterna ... – Jack

+0

Che campate? Cosa stai cercando di centrare? –

risposta

7

si può risolvere con i CSS, vedere qui: http://jsfiddle.net/sMysu/6/
Si tratta di soluzione difficile, ma funziona:

td[valign="top"] { 
    display: block; 
} 

td[valign="top"][style="width: 15%"] { 
    white-space: nowrap; 
    display: table-cell; 
} 
+0

Life saver, evviva! :) – Jack

+0

@Jack Benvenuto! – Cherniv

1

provare a utilizzare text-align: center nel CSS

+0

Provato prima di non funzionare. – Jack

2

AGGIORNAMENTI:

Dopo una profonda analisi, penso che ho avuto una soluzione semplice per questo.

.divider + table>tbody>tr>td:first-child{ 
    position: absolute; 
    left:50%; 
} 

dal codice, è necessario un div vuoto .divider prima di tutto tavolo. Quindi, usando la navigazione CSS funziona.

Scegli questa Fiddle

+0

Forse hai frainteso. Aggiornerò la mia domanda con un'immagine su come la desidero. – Jack

+0

@Jack vuoi dire che vuoi la data centrata orizzontalmente, giusto? –

+0

@DKM Verticale, controlla l'immagine aggiunta. – Jack

1

Basta usare vertical-align:middle a quella TD dove si sta mostrando date. Non sarà nel tuo codice ma come lo ricevi da un altro sito, quindi usalo come CSS.

td{ 
    vertical-align:middle; 
} 

Updated Fiddle

+0

Ho aggiornato la mia domanda con un'immagine. – Jack

1

Per allineare solo i testi della zona specificata nell'uso mezzo il seguente:

.article table { 
    vertical-align:middle; 
} 
+0

Vedere la mia domanda aggiornata, immagine aggiunta lì – Jack

8

Se l'arco è generato dinamicamente all'interno del td, vi suggerisco di fare come display:block; e allinearlo al centro con margin:0 auto;

Per istanza,

td span{display:block; text-align:center; margin:0 auto;} 
+0

Vedere la mia domanda aggiornata, immagine aggiunta – Jack

+0

La tua immagine e il violino hanno lo stesso aspetto. - @Jack – Nitesh

1

Devi cambiare il codice HTML che si ottiene:

var html = response.scraped[0].html, 
    article = $('.article'); //Svaret 
article .append(html); //Svaret skrivs ut i .article 
$('table table td', article).each(function() { 
    var width = this.style.width; 
    if (width == '85%') { 
     width = ''; 
    } else { 
     width = '150px'; 
    } 
    this.style.width = width; 
}); 

http://jsfiddle.net/sMysu/10/

È anche possibile farlo togliendo tutta la larghezza (quindi basta $('table table td', article).css('width', '') al posto del.ogni loop), e impostare la larghezza di table table tr td:first-child-150px nel CSS

http://jsfiddle.net/sMysu/9/

Problemi correlati