Come posso specificare in HTML o CSS la larghezza minima assoluta di una cella di tabella

StackOverflow https://stackoverflow.com/questions/56658

  •  09-06-2019
  •  | 
  •  

Domanda

Riepilogo

Qual è il modo migliore per garantire che la cella di una tabella non possa essere inferiore a una determinata larghezza minima.

Esempio

Voglio assicurarmi che tutte le celle in una tabella abbiano una larghezza di almeno 100 px rispetto alla larghezza del contenitore delle tabelle.Se c'è più spazio disponibile, le celle della tabella dovrebbero riempire quello spazio.

Compatibilità del browser

È possibile che mi piacerebbe trovare una soluzione che funzioni

  • Cioè 6-8
  • FF 2-3
  • Safari

In ordine di preferenza.

È stato utile?

Soluzione

Questo CSS dovrebbe essere sufficiente:

td { min-width: 100px; }

Tuttavia, non sempre viene rispettato correttamente (l'attributo min-width) da tutti i browser (ad esempio, IE6 non lo gradisce molto).

Modificare: Per quanto riguarda una soluzione IE6 (e precedenti), per quanto ne so non ce n'è una che funzioni in modo affidabile in tutte le circostanze.Utilizzando l'attributo HTML nowrap non si ottiene realmente il risultato desiderato, poiché ciò impedisce semplicemente le interruzioni di riga nella cella, anziché specificare una larghezza minima.

Tuttavia, se nowrap viene utilizzato insieme a una normale proprietà di larghezza della cella (come l'utilizzo di width:100px), il 100px agirà Piace una larghezza minima e la cella si espanderà comunque con il testo (a causa del nowrap).Questa è una soluzione tutt'altro che ideale, che non può essere completamente applicata utilizzando i CSS e, come tale, sarebbe noiosa da implementare se si hanno molte tabelle a cui si desidera applicarla.(Ovviamente, l'intera soluzione alternativa fallisce se si desidera avere comunque interruzioni di riga dinamiche nelle celle).

Altri suggerimenti

Un altro hackerare è il vecchio trucco del pixel trasparente 1x1.Inserisci un'immagine gif trasparente 1x1 e imposta la sua larghezza nel tag immagine sulla larghezza desiderata.Ciò costringerà la cella ad essere larga almeno quanto l'immagine.

So che questa è una vecchia domanda, ma ho pensato di condividere qualcosa che non è stato menzionato (anche se piuttosto semplice nel concetto...) puoi semplicemente inserire un <div> all'interno della tabella (in uno dei <td>o qualcosa del genere) e impostare il file <div> A min-width.il tavolo si fermerà al <div>la larghezza.Ho pensato di buttarlo lì nel caso qualcuno lo trovasse su Google.Inoltre, non sono così sicuro di come viene gestita la larghezza minima in I.E6.ma questo è già stato trattato in un'altra risposta.

Ho avuto un certo successo con:

    min-width: 193px;
    width:auto !important; 
    _width: 193px;  /* IE6 hack */

Basato su una combinazione della risposta di Vatos e di un articolo sull'altezza minima qui: http://www.dustindiaz.com/min-height-fast-hack/

che ne dici di questa proprietà CSS

min-width: 100px

ma non funziona realmente in IE6 se non sbagliato

se non vuoi farlo in modo CSS, suppongo che tu possa aggiungere questo attributo

nowrap="nowrap"

nel tag dei dati della tabella

Questo è un modo cross-browser per impostare la larghezza minima e/o l'altezza minima:

{
width (or height): auto !important;
width (or height): 200px;
min-width (or min-height): 200px;
}

IE 6 non capisce !important
IE 6 vede larghezza/altezza: 200px (sovrascrittura automatica)

Altri browser comprendono il min- e il !important

Non ho familiarità al 100% con il comportamento delle larghezze negli elementi TD, ma tutto funziona bene, ad esempio, sui tag DIV

A proposito:

Basato su una combinazione della risposta di Vatos e di un articolo sull'altezza minima qui: http://www.dustindiaz.com/min-height-fast-hack/

Questo non funziona a causa dell'ordine delle prime 2 righe, devono essere nell'ordine giusto (pensa a quanto sopra) ;)

IE6 gestisce la larghezza come larghezza minima:

td {
    min-width: 100px;
    _width: 100px;/* IE6 hack */
}

Se vuoi che IE6 gestisca la larghezza come i normali browser, assegnagli un overflow:visible;(non è il caso qui)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top