Maison > Article > interface Web > Analyse détaillée de la différence entre l'attribut CSS float et la position : tutoriel absolu_Basic
1. L'attribut float définit dans quelle direction l'élément flotte. Historiquement, cette propriété a toujours été appliquée aux images, provoquant l'enroulement du texte autour de l'image, mais en CSS, n'importe quel élément peut flotter. Un élément flottant crée une boîte au niveau du bloc, quel que soit le type d'élément dont il s'agit. div est un élément typique de niveau bloc qui occupe une ligne à lui seul.
Voyons d’abord comment sont disposés les éléments les plus élémentaires au niveau des blocs. code html, les styles suivants sont basés sur celui-ci.
marge : 0 auto;
Copier le code
Le code est le suivant :
.boxBg{marge : 0 auto;
Copier le code
Le code est le suivant :
.boxBg{marge : 0 auto;
Copier le code
Le code est le suivant :
.boxBg{marge : 0 auto;
Hasil pelaksanaan:
Dengan cara ini, reka letak yang dikehendaki dicapai, dan teks di dalam kotak hilang Ini juga membuktikan bahawa saiz teks mempengaruhi jurang. Hanya tetapkan semula dalam elemen kanak-kanak. Sudah tentu itu bukan tumpuan hari ini. Kesan yang sama terapung: kiri juga boleh dicapai dengan mudah.
Hasil pelaksanaan:
Selepas apungan ditambahkan pada elemen, unsur terapung akan dipaparkan serta-merta selepas ia menemui sempadan unsur induk atau sempadan unsur terapung yang lain. Contohnya, dalam contoh berikut, apabila jumlah lebar elemen terapung lebih besar daripada elemen induk, garisan dibalut Apabila garisan dibalut, terapung sebelumnya ditemui dan
dipaparkan selepasnya.Hasil pelaksanaan:
Apakah hasilnya jika blok sebaris digunakan?
Hasil pelaksanaan:
Pada masa ini, kotak 3 bermula pada baris baharu dan bukannya mengikut kotak 1 (jurang antara 1 dan 2 tidak akan dibincangkan di sini juga berbeza Menggunakan tetapan taip apungan boleh menghasilkan hasil yang berbeza daripada yang dijangkakan, jadi adalah baik untuk menggunakan apungan apabila lebar dan ketinggian kekal tidak berubah Jika ia tidak konsisten, anda perlu melihat reka letak khusus dan menggunakan atribut yang sesuai.
Kod disiarkan di bawah, hanya bahagian yang diubah suai disiarkan, selebihnya kekal tidak berubah, dan struktur kekal tidak berubah.
Apakah hasilnya jika pelampung: kiri kotak3 dialihkan? Mengikut pemahaman, elemen terapung tidak menempati ruang, iaitu bingkai 3 akan mengabaikan bingkai 1, dan bingkai 2 akan dipaparkan terus di sebelah sempadan elemen induk, iaitu bingkai 1 akan meliputi bingkai 3? keputusan?
Hasil pelaksanaan:
Mengapakah teks dalam kotak 3 muncul di bawah dan bukannya dilindungi oleh kotak 1? Kemudian lihat kod dan gambar
Hasil pelaksanaan:
Adakah anda nampak perbezaannya? ya. box3 tidak mentakrifkan lebar; Tanpa menentukan lebar, lebar lalai ialah lebar elemen induk, yang bermaksud bahawa pada masa ini, lebar: 500px; , lebar 200px di hadapan kotak 3 diduduki oleh elemen terapung yang Dilindungi, mengapa teks tidak dilindungi dan teks dipicit 200px di belakang elemen terapung?
Elemen terapung tidak akan menduduki ruang blok, jadi kotak tiga ialah 100% daripada lebar bekas induk 500px, tetapi elemen terapung akan menduduki ruang lain, iaitu ruang kotak garisan, dalam istilah awam, ia adalah ruang yang diduduki oleh teks.
Ini juga sebab mengapa teks akan membungkus imej secara automatik selepas ia terapung. Unsur terapung tidak menduduki ruang peringkat blok, tetapi akan menjejaskan teks dan elemen sebaris dalam elemen peringkat blok.
Dalam kes ini, jika anda mahu tiga kotak mempunyai lebar yang sama, anda hanya perlu menukar lebar tiga kotak: 300px
Hasil pelaksanaan:
Sekarang kita telah selesai bercakap tentang terapung asas, mari bercakap tentang masalahnya Walaupun terapung mudah digunakan, ia juga akan menyebabkan banyak masalah dalam amalan. Contohnya:
.boxBg{
jidar: 0 auto;
kedudukan:relatif;
lebar:500px;
sempadan:2px pepejal #ccc;
latar belakang- color:#ccd;
}
.box1{
float:left;
width:100px;
height:50px;
background-color:red;
}
.box2{
float:left;
width:100px;
height:50px;
background-color:blue;
}
.box3{
float: kiri;
lebar:100px;
tinggi:50px;
warna latar:hijau;
}
Hasil pelaksanaan:
Masalah yang sangat biasa, dalam keadaan biasa. Latar belakang kelabu sepatutnya setinggi bingkai, tetapi realitinya sentiasa tidak memuaskan :)
Kita semua tahu bahawa punca keadaan ini adalah disebabkan oleh terapung Ya, ia dikatakan di banyak tempat bahawa unsur terapung akan terlepas dari aliran biasa, jadi unsur-unsur biasa boleh dianggap sebagai unsur terapung. tidak wujud, jadi tidak ada perkara seperti itu di sini Latar belakang dibuka, tetapi pelajar yang membaca dengan teliti akan ingat bahawa ia disebut di atas bahawa elemen terapung tidak akan menjejaskan kotak blok, tetapi akan menjejaskan kotak baris, iaitu teks atau sebaris elemen, sama ada elemen peringkat blok atau elemen sebaris. Malah, saya tidak fikir ada keperluan untuk memikirkan perkara-perkara konsep ini. Menurut pemahaman saya, elemen terapung tidak berada dalam ruang mendatar yang sama dengan elemen peringkat blok, tetapi dalam ruang yang sama dengan elemen sebaris teks, jadi sempadan di sini adalah bersamaan dengan berada di atas latar belakang, jadi ia tidak akan menjejaskan elemen latar belakang. Apa yang biasanya dipanggil membersihkan terapung, Ia tidak bermaksud untuk membuang atribut apungan unsur terapung, tetapi untuk membersihkan unsur terapung di sekelilingnya supaya tiada unsur terapung di sekelilingnya, jika anda mahu kotak 3 beralih ke baris kedua, anda tidak boleh menggunakan clear:right; dalam kotak 2. Anda perlu menggunakan clear:left;
dalam kotak 3Hasil pelaksanaan:
ok! Sekarang saya faham perkara ini, mari kita bincangkan tentang cara membuat latar belakang dan bingkai mempunyai ketinggian yang sama Sudah tentu, ini bukan maksudnya. Mari kita bercakap tentang membersihkannya. Mula-mula, mari kita lihat contoh:
代码如下:
执行结果:
因为clear用了clear:left综上所述,clear左边不能有浮动元素,所以它必须以它必须倦社起中中文到图上的结果,其实还是用一个元素撑开的背景。当然还有其他方法实现,这里主要是讲清楚浮动就好了:)