css - posisi div ke bawah div berisi


118

Bagaimana saya bisa memposisikan div ke bagian bawah div yang berisi?

<style>
.outside {
    width: 200px;
    height: 200px;
    background-color: #EEE; /*to make it visible*/
}
.inside {
    position: absolute;
    bottom: 2px;
}
</style>
<div class="outside">
    <div class="inside">inside</div>
</div>

Kode ini menempatkan teks "di dalam" ke bagian bawah halaman.


6
. kebutuhan luarposition: relative;
Imperatif

relative, yes, dan kemudian ia tidak tahu seberapa besar yang dibutuhkan untuk menampung konten div turunan, sayangnya, jadi kecuali itu adalah nilai statis, kembali ke pertanyaan awal. Bagaimana menempatkan satu div di bagian bawah div lain (tersirat: "tanpa merusak segalanya").
JosephK

Jawaban:


136
.outside {
    width: 200px;
    height: 200px;
    background-color: #EEE; /*to make it visible*/
}

Perlu

.outside {
    position: relative;
    width: 200px;
    height: 200px;
    background-color: #EEE; /*to make it visible*/
}

Pemosisian absolut mencari induk yang relatif diposisikan paling dekat dalam DOM, jika tidak ditentukan, ia akan menggunakan body.


Terima kasih. Bisakah Anda menjelaskan mengapa?
nagy.zsolt.hun

37
absolutemencari orang relativetua terdekat . Secara default, ini adalah bodydari document. Jadi jika tidak ada objek DOM induk ( .outside) yang memiliki properti menjadi, relativeAnda .insideakan pergi ke bagian bawah tag body.

6
" Penentuan posisi absolut mencari induk yang relatif diposisikan paling dekat dalam DOM, jika tidak ditentukan, ia akan menggunakan body. " Anda baru saja menjelaskan begitu banyak untuk saya! Sekarang saya benar-benar mulai memahami CSS. TERIMA KASIH!
Simon Forsberg

Absolute sebenarnya mencari leluhur terdekat yang diposisikan bukan default (= statis), yang seringkali diposisikan secara relatif. Ia juga tidak harus orang tua langsung tetapi bisa misalnya menjadi kakek-nenek.
mzwaal

1
Ini tergantung pada ketinggian yang konstan, yang SANGAT BURUK. Perubahan sederhana font, ukuran font, padding, margin, dan entah apa lagi yang menuntut eksperimen untuk menebak ketinggian baru.
Anderson

73

Tetapkan position:relativeke .outside, lalu position:absolute; bottom:0;ke .inside.

Seperti:

.outside {
    position:relative;
}
.inside {
    position: absolute;
    bottom: 0;
}

Ini bisa menjadi dasar untuk footer yang lengket bukan?
cade galt

1
Saya tidak bisa menggunakan posisi: mutlak; untuk div kedua. Itulah batasan saya, dapatkah Anda memberi saya pilihan lain?
Piyush Dholariya

20

Tambahkan position: relativeke .outside. ( https://developer.mozilla.org/en-US/docs/CSS/position )

Elemen yang diposisikan secara relatif masih dianggap berada dalam aliran normal elemen dalam dokumen. Sebaliknya, elemen yang diposisikan secara absolut dikeluarkan dari aliran dan dengan demikian tidak memakan ruang saat menempatkan elemen lain. Elemen yang diposisikan secara absolut diposisikan relatif terhadap leluhur yang diposisikan terdekat. Jika leluhur yang diposisikan tidak ada, penampung awal akan digunakan.

"Penampung awal" akan menjadi <body>, tetapi menambahkan di atas membuat .outsidediposisikan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.