Pengguna anonim
Lebih
Cara membuat div tidak lebih besar dari isinya?
Saya memiliki tata letak yang sama untuk:
<div>
<table>
</table>
</div>
Saya akan seperti untuk div
hanya untuk memperluas sebagai luas sebagai meja
menjadi.
1954
38
Solusinya adalah untuk mengatur
div
untukdisplay: inline-block
.Anda ingin memblokir elemen yang memiliki apa yang CSS panggilan shrink-to-fit lebar dan spec tidak memberikan diberkati cara untuk mendapatkan hal seperti itu. Dalam CSS2, shrink-to-fit adalah bukan tujuan, tapi sarana untuk berurusan dengan situasi di mana browser "untuk" mendapatkan lebar dari udara tipis. Situasi tersebut adalah:
ketika tidak ada lebar yang ditentukan. Aku mendengar mereka berpikir untuk menambahkan apa yang anda inginkan di CSS3. Untuk sekarang, membuat hubungannya dengan salah satu di atas.
Keputusan untuk tidak mengekspos fitur ini diatas mungkin tampak aneh, tapi ada alasan yang baik. Itu adalah mahal. Kecilkan-to-fit berarti format setidaknya dua kali: anda tidak dapat memulai memformat elemen sampai anda tahu lebarnya, dan anda tidak bisa menghitung lebar w/o akan melalui seluruh konten. Plus, salah satu tidak perlu shrink-to-fit elemen sebagai sering sebagai salah satu mungkin berpikir. Mengapa anda perlu ekstra div sekitar meja anda? Mungkin judul tabel adalah semua yang anda butuhkan.
Saya pikir menggunakan
akan bekerja, namun saya'm tidak yakin tentang kompatibilitas browser.
Solusi lain akan membungkus
div
laindiv
(jika anda ingin mempertahankan blok behavior):HTML:
CSS:
display: inline-block
menambahkan tambahan margin untuk elemen anda.Saya akan merekomendasikan ini:
Bonus: sekarang Anda juga dapat dengan mudah center yang baru mewah
#elemen
hanya dengan menambahkanmargin: 0 auto
.Foo Hack – Cross Browser Support untuk inline-block Styling (2007-11-19).
Apa yang bekerja untuk saya adalah:
di
div
. (Diuji pada Firefox dan Google Chrome).Anda dapat mencoba
fit-isi
(CSS3):Ada dua solusi yang lebih baik
display: inline-block;
ATAU
display: tabel;
Dari dua
display:tabel;
lebih baik, karenadisplay: inline-block;
menambahkan tambahan margin.Untuk
display:inline-block;
anda dapat menggunakan negatif margin metode untuk memperbaiki ruang ekstraJawaban untuk pertanyaan anda meletakkan di depan teman saya ...
yaitu "intrinsik" datang dengan CSS3 terbaru update
sayangnya IE belakang dengan itu, sehingga tidak't dukungan itu belum
Lebih lanjut tentang hal ini: CSS Intrinsik & Ekstrinsik Ukuran Module Level 3 dan Dapat saya Gunakan?: Intrinsik & Ekstrinsik Ukuran.
Untuk sekarang anda harus puas dengan
<span>
atau<div>
set untukTidak tahu dalam konteks apa ini akan muncul, tapi saya percaya CSS-style property
float
baikkiri
ataukanan
akan memiliki efek ini. Di sisi lain, it'll memiliki efek samping lain juga, seperti memungkinkan teks untuk mengapung di sekitar itu.Tolong koreksi saya jika saya'm salah meskipun, saya'm tidak yakin 100%, dan saat ini dapat't test itu sendiri.
bekerja dengan baik bagi saya :)
Sebuah CSS2 kompatibel solusi adalah dengan menggunakan:
Anda juga bisa mengapung anda di div yang akan memaksa sekecil mungkin, tetapi anda'll perlu menggunakan clearfix jika ada sesuatu yang di dalam div mengambang:
OK, dalam banyak kasus, anda bahkan don't perlu melakukan apa-apa sebagai default div telah
tinggi
danlebar
auto, tapi jika itu's tidak kasus anda, menerapkaninline-block
display akan bekerja untuk anda... lihat kode yang saya buat untuk anda dan itu's melakukan apa yang anda cari:Hal ini telah disebutkan dalam komentar dan sulit untuk menemukan di salah satu jawaban agar:
Jika anda menggunakan
display: flex
untuk alasan apapun, anda dapat menggunakan:Ini juga didukung secara luas di seluruh browser.
Anda dapat melakukannya hanya dengan menggunakan
display: inline;
(atauwhite-space: nowrap;
).Saya harap anda menemukan ini berguna.
Saya tahu orang-orang yang don't seperti tabel kadang-kadang, tapi aku harus memberitahu anda, aku mencoba inline css hacks, dan mereka agak bekerja di beberapa divs tetapi di lain didn't, jadi, itu benar-benar hanya lebih mudah untuk melampirkan memperluas div di meja...dan...dapat memiliki atau tidak inline properti dan masih table adalah salah satu yang's akan bertahan total lebar dari konten. =)
Anda dapat menggunakan
inline-block
sebagai @user473598, tapi waspadalah terhadap browser lama..Mozilla tidak mendukung inline-block sama sekali, tapi mereka memiliki
-moz-inline-stack
yang hampir samaBeberapa cross-browser sekitar
inline-block
menampilkan atribut: https://css-tricks.com/snippets/css/cross-browser-inline-block/Anda dapat melihat beberapa tes dengan atribut ini di: https://robertnyman.com/2010/02/24/css-display-inline-block-why-it-rocks-and-why-it-sucks/
Hanya menempatkan sebuah gaya ke file CSS
Kerja demo di sini-
Saya CSS3 flexbox solusi dalam dua rasa: Yang satu di atas yang berperilaku seperti span dan satu di bagian bawah berperilaku seperti div, mengambil semua yang lebar dengan bantuan dari bungkusnya. Mereka kelas "top", "bottom" dan "bottomwrapper" masing-masing.