Sono sicuro che questo problema è stato chiesto prima, ma non riesco a trovare la risposta.Come rendere la larghezza CSS per riempire il genitore?
Ho il seguente markup:
<div id="foo">
<div id="bar">
here be dragons
</div>
</div>
Il mio desiderio è quello di rendere foo di avere larghezza 600px
(width: 600px;
) e per rendere il bar sono i seguenti comportamenti:
padding-left: 2px;
padding-right: 2px;
margin-left: 2px;
margin-right: 2px;
outerWidth: 100%;
In altre parole invece di impostare la larghezza della barra su 592px
Vorrei impostare la larghezza esterna della barra su 100%
in modo che sia calcolata su 592px
. L'importanza qui è che posso cambiare la larghezza di foo a 800px
e la barra calcolerà quando viene eseguito il rendering invece di dover eseguire manualmente la matematica per tutte queste istanze.
È possibile in puro CSS?
Alcuni più divertente con esso:
- Che cosa succede se
#bar
è una tabella? - Cosa succede se
#bar
è una textarea? Cosa succede se
#bar
è un input?Cosa succede se
#foo
è una cella di tabella (td
)? (Questo cambia il problema o è il problema identico?)
Finora il table#bar
, input#bar
è stato discusso. Non ho visto una buona soluzione per textarea # bar. Penso che una textarea senza bordi/margini/padding con un wrap div
possa funzionare con lo stile div
in modo che funzioni come bordi per lo textarea
.
Ehi, grazie. Mi diverto anche con i tavoli che decidono di sanguinare comunque. Presumo che le tabelle abbiano lo stesso comportamento delle divs? –
@Dimitry: No, hanno regole speciali che li rendono più simili a 'inline-block' di' block' elements. Nota però che ho detto ** più come ** non ** uguale a ** :-) Quello che probabilmente stai vivendo è che, se non diversamente definito, generalmente si espandono per accogliere tutte le colonne che possono essere davvero fastidiose se alcune delle intestazioni/le celle hanno un testo non elaborabile lungo in esse. – prodigitalson
Grazie per l'aiuto :) Consentitemi di aggiornare la domanda un po 'per dare una panoramica molto più completa dei problemi e speriamo che tutti i workaround possano essere elencati in una sezione. –