Maison  >  Article  >  interface Web  >  Analyse détaillée de la différence entre l'attribut CSS float et la position : tutoriel absolu_Basic

Analyse détaillée de la différence entre l'attribut CSS float et la position : tutoriel absolu_Basic

WBOY
WBOYoriginal
2016-05-16 12:03:331851parcourir

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.

Copier le code Le code est le suivant :

                                                                                                  t
      t;                                                                                                                          
code css :





Copier le code

Le code est le suivant :

.boxBg{

marge : 0 auto;

width:500px; height:200px; border:2px solid #ccc } .box1{ width:100px; height:50px;
background -color:red
}
.box2{
width:100px;
height:50px;
background-color:blue
}
.box3{
largeur :100px;
hauteur :50px;
couleur de fond:vert
}



Résultat de l'exécution :




Puisque div est un élément de niveau bloc, les cases seront disposées verticalement. En fonctionnement réel, il est souvent nécessaire de disposer les cadres horizontalement. Il existe deux façons de procéder. Le premier est display:inlin-block;


Copier le code

Le code est le suivant :

.boxBg{

marge : 0 auto;

width:500px; height:200px; border:2px solid #ccc } .box1{ width:100px; height:50px;
background -color:red;
display:inline-block
}
.box2{
width:100px;
height:50px;
background-color:blue;
display :inline-block
}
.box3{
width:100px;
height:50px;
background-color:green;
display:inline-block
>



Résultat de l'exécution :




En ce qui concerne l'espace au milieu, la raison essentielle remonte à l'espace blanc entre les éléments, donc définir la taille de fone-size sur l'élément parent peut ajuster la taille de l'espace blanc.


Copier le code

Le code est le suivant :

.boxBg{

marge : 0 auto;

width:500px; height:200px; border:2px solid #ccc; font-size:34px;}
Après avoir défini font-size:34px, l'écart deviendra plus large.

Résultat de l'exécution :




De même, si vous souhaitez supprimer l'espace, vous devez modifier font-size:0;

Copier le code

Le code est le suivant :

.boxBg{

marge : 0 auto;

width:500px; height:200px; border:2px solid #ccc; font-size:0}

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.

Salin kod Kod adalah seperti berikut:


Hasil pelaksanaan:

Analyse détaillée de la différence entre l'attribut CSS float et la position : tutoriel absolu_Basic

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.

Salin kod Kod adalah seperti berikut:


Hasil pelaksanaan:

Analyse détaillée de la différence entre l'attribut CSS float et la position : tutoriel absolu_Basic

Apakah hasilnya jika blok sebaris digunakan?

Salin kod Kod adalah seperti berikut:


Hasil pelaksanaan:

Analyse détaillée de la différence entre l'attribut CSS float et la position : tutoriel absolu_Basic

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?

Salin kod Kod adalah seperti berikut:

.box3{
lebar:100px ;
tinggi:50px;
warna latar belakang:hijau;
}

Hasil pelaksanaan:

Analyse détaillée de la différence entre l'attribut CSS float et la position : tutoriel absolu_Basic

Mengapakah teks dalam kotak 3 muncul di bawah dan bukannya dilindungi oleh kotak 1? Kemudian lihat kod dan gambar

Salin kod Kod adalah seperti berikut:

.box3{
tinggi:50px ;
warna latar:hijau;
}

Hasil pelaksanaan:

Analyse détaillée de la différence entre l'attribut CSS float et la position : tutoriel absolu_Basic

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

Salin kod Kod adalah seperti berikut:

.box3{
lebar:300px ;
ketinggian:50px;
warna latar belakang:hijau;
}

Hasil pelaksanaan:

Analyse détaillée de la différence entre l'attribut CSS float et la position : tutoriel absolu_Basic

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:

Analyse détaillée de la différence entre l'attribut CSS float et la position : tutoriel absolu_Basic

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 3

Salin kod Kod adalah seperti berikut:

.box3{
float:left ;
lebar:100px;
tinggi:50px;
warna latar belakang:hijau;
jelas:kiri
}

Hasil pelaksanaan:

Analyse détaillée de la différence entre l'attribut CSS float et la position : tutoriel absolu_Basic

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:

Salin kod Kod adalah seperti berikut:





     
    .boxBg{
    margin: 0 auto;
    position:relative;
    lebar:500px;
 px pepejal ;
    background-color:#ccd;
    }
    .box1{
    float:left;
    lebar:100px;
    tinggi:50px;
 : merah latar belakang ;
    }
    .kotak2{
    apung:kiri;
    lebar:100px;
    tinggi:50px;
    warna latar:biru;
    kotak {
    float:kiri;
    lebar:100px;
    tinggi:50px;
    warna latar:hijau;
    }
    .jelas{
       px lebar >    ketinggian:50px;
    }



   
    ; div class="box1">
        框框1
       

       

                                        gt;

        框框3
        

       





执行结果:


🎜以是跟背景一样,因此背景被撑开了。其实是用清除浮动的原理跟这个是一样的,也是想办法撑开背景;以上去掉clear的宽,高,加上clear属性

Analyse détaillée de la différence entre l'attribut CSS float et la position : tutoriel absolu_Basic

复制代码

代码如下:

执行结果:




这个可能还看不清楚,给clear框里边加几个字试试看
执行结果:

Analyse détaillée de la différence entre l'attribut CSS float et la position : tutoriel absolu_Basic因为clear用了clear:left综上所述,clear左边不能有浮动元素,所以它必须以它必须倦社起中中文到图上的结果,其实还是用一个元素撑开的背景。当然还有其他方法实现,这里主要是讲清楚浮动就好了:)

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn