Jadual Kandungan
相对定位(relative):
绝对定位(absolute):" >绝对定位(absolute):
Rumah hujung hadapan web html tutorial Web前端面试题第八道—绝对定位与相对定位

Web前端面试题第八道—绝对定位与相对定位

Apr 04, 2017 am 10:15 AM

相对定位(relative):

先说相对定位:跟它的名一样,相对嘛,要有一个参照物,但这个参照不是别的,是它自己在原来文档流中的位置。相对定位之后的对象并没有完全从文档流中脱离,这个对象原来在文档中的位置保留着(站着茅坑不拉屎),偏移后的对象会把其它的层遮罩住。

将相对定位特征总结如下:

①相对定位的元素,在没有设置宽度的情况下,宽度是整个浏览器的宽度,或者是依赖于父元素的宽度。

②相对定位的块状元素相对于原来位置移动,移动后仍然占据文档流的位置,不影响其他元素的布局

下面通过代码进行验证

在浏览器中放置5个盒子,用不同的颜色来表示,代码如下

HTML代码

Web前端面试题第八道—绝对定位与相对定位


CSS代码

Web前端面试题第八道—绝对定位与相对定位


最初效果图

Web前端面试题第八道—绝对定位与相对定位


给第三个盒子设置相对定位

Web前端面试题第八道—绝对定位与相对定位


元素相对于原来位置偏移,宽高都没变,撑大了容器,还占据着原来在文档流中的位置,对其它元素的布局没有产生影响。

Web前端面试题第八道—绝对定位与相对定位


绝对定位(absolute):

被绝对定位的对象将从文档流中脱离,绝对定位的参照位置就不再是自己了,是哪个,就看它的上级或上上级有没有定位了,使用leftrighttopbottom属性相对于其最接近的一个有相对或者绝对定位设置的父级对象进行绝对定位,如果父级没有设置定位属性,则会相对于html根元素进行定位,看了一些帖子发现有人认为如果父对象没有设置定位属性,则会相对于body进行定位,这个说法是不对的。

将绝对定位的特征总结如下:

①绝对定位的块状元素在没有设置宽度的情况下,宽度由元素里面的内容决定

②脱离后原来的位置相当于是空的,下面的元素会来占据位置

③绝对定位的对象相对于距离自己最近的设置了相对定位或者绝对定位的父对象进行定位

④如果父元素没有定位,则相对于html根元素定位

下边还是通过这五个盒子的偏移来验证

(1)块元素无偏移值

上边的5个盒子,只给box5一个绝对定位,无偏移值。此时块状元素只是漂浮在原来的位置,如果后边还有块状元素,将会占据他在文档流中的位置,我们在box5下边加上一个box6看一下效果。

说明:绝对定位的块状元素在没有定义宽度的情况下,宽度由元素里面的内容决定。

Web前端面试题第八道—绝对定位与相对定位


效果图如下

Web前端面试题第八道—绝对定位与相对定位


加一个box6的效果

Web前端面试题第八道—绝对定位与相对定位


从图中可以看出,box6已经占据了box5在文档流中的位置了。

(2)有偏移值

如果设置了偏移值而父元素没有设置相对定位或绝对定位的情况下,元素相对于根元素定位(即html元素,注意是相对于根元素,而不是相对于body)用box5的偏移来验证。

①给box5一个偏移量,父元素没有相对或者绝对定位

Web前端面试题第八道—绝对定位与相对定位


效果图如下

Web前端面试题第八道—绝对定位与相对定位


②给box5同样的偏移量,给body元素一个绝对定位(body元素设置为了absolute,绝对定位的块状元素的宽度由最长p决定,宽度变小了):

Web前端面试题第八道—绝对定位与相对定位


效果图如下

Web前端面试题第八道—绝对定位与相对定位

图片发自App

从上边的两张效果图明显发现相对于根元素的定位与相对于body的定位是不相同的,主要的区别在于有没有算进去body的margin值。

下面在五个盒子外边再嵌套三个父盒子,并给这三个父盒子一个定位,来验证是否是根据最近定位的父元素进行偏移。

代码如下

HTML代码

Web前端面试题第八道—绝对定位与相对定位


CSS代码


Web前端面试题第八道—绝对定位与相对定位


效果图

Web前端面试题第八道—绝对定位与相对定位

图片发自App

从上边很明显看的出来box5是相对于第三层容器也就是离它最近的容器进行的定位。有兴趣的可以试一试,把第三层容器的定位去掉,看看是不是就相对于第二层容器定位了,我已经验证过,就不放图了。

有同学会问,为什么要把最外层的盒子设置为绝对定位,其它两个设置为相对定位,这个定位的方法区别主要影响的是盒子的宽度,相对定位的块元素在没有设置宽度的情况下,它的宽度就是默认的浏览器的宽度,有父元素的情况下,则它的宽度由父元素决定,如果这个块元素的内容过多,则会把父元素也撑大。

,也就是说相对定位的块元素的宽度依赖于父元素,那么如果把这三个容器都设置为绝对定位会有什么效果呢,先来看一看效果图

Web前端面试题第八道—绝对定位与相对定位

图片发自App

从图中可以看出,第三层容器的宽度已经不再依赖于父元素,因为它从文档流中脱离出来了,他自己是独立的,而他的宽度只能由内容来决定。总结起来就是,绝对定位的块元素宽度由自己的内容决定,相对定位的块元素在没有设定宽度时,默认就是浏览器的宽度。但是不管宽度怎样,绝对定位的元素都会找到离自己最近定位(绝对或者相对定位)的父元素来进行定位。

总结:

relative:定位是相对于自身位置定位(设置偏移量的时候,会相对于自身所在的位置偏移)。设置了relative的元素仍然处在文档流中,元素的宽高不变,设置偏移量也不会影响其他元素的位置。最外层容器设置为relative定位,在没有设置宽度的情况下,宽度是整个浏览器的宽度。

absolute:定位是相对于离元素最近的设置了绝对或相对定位的父元素决定的,如果没有父元素设置绝对或相对定位,则元素相对于根元素即html元素定位。设置了absolute的元素脱离了文档流,元素在没有设置宽度的情况下,宽度由元素里面的内容决定。脱离后原来的位置相当于是空的,下面的元素会来占据位置。

说明:本文的实验结果是在父元素及子元素没有设置固定宽度的情况下得来的,如果父元素设置了固定的宽度,他的子元素无论是绝对定位还是相对定位的子元素都不能超过其父元素的宽度,父元素是老大哥,谁都不能超过他。

Atas ialah kandungan terperinci Web前端面试题第八道—绝对定位与相对定位. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Adakah kedudukan melekit terlepas daripada aliran dokumen? Adakah kedudukan melekit terlepas daripada aliran dokumen? Feb 20, 2024 pm 05:24 PM

Adakah kedudukan melekit menjauhkan diri daripada aliran dokumen Contoh kod khusus diperlukan dalam pembangunan web, reka letak adalah topik yang sangat penting. Antaranya, positioning merupakan salah satu teknik susun atur yang biasa digunakan. Dalam CSS, terdapat tiga kaedah penentududukan biasa: kedudukan statik, kedudukan relatif dan kedudukan mutlak. Selain ketiga-tiga kaedah penentududukan ini, terdapat juga kaedah penentududukan yang lebih istimewa iaitu pelekatan kedudukan. Jadi, adakah kedudukan melekit terlepas daripada aliran dokumen? Mari bincangkannya secara terperinci di bawah dan berikan beberapa contoh kod untuk membantu memahami. Pertama, kita perlu memahami apa itu aliran dokumen

Bagaimana untuk meletakkan imej di tengah dengan css Bagaimana untuk meletakkan imej di tengah dengan css Apr 25, 2024 am 11:51 AM

Terdapat tiga cara utama untuk memusatkan imej dalam CSS: menggunakan paparan: blok dan margin: 0 auto;. Gunakan susun atur kotak flex atau susun atur grid dan tetapkan item jajar atau justify-kandungan ke tengah. Gunakan kedudukan mutlak, set atas dan kiri kepada 50%, dan gunakan transformasi: terjemah(-50%, -50%);.

sintaks atribut bawah dalam CSS sintaks atribut bawah dalam CSS Feb 21, 2024 pm 03:30 PM

Contoh sintaks atribut dan kod bawah dalam CSS Dalam CSS, atribut bawah digunakan untuk menentukan jarak antara elemen dan bahagian bawah bekas. Ia mengawal kedudukan elemen berbanding bahagian bawah elemen induknya. Sintaks atribut bawah adalah seperti berikut: elemen{bottom:value;} dengan elemen mewakili elemen yang gaya akan digunakan dan nilai mewakili nilai bawah yang akan ditetapkan. nilai boleh menjadi nilai panjang tertentu, seperti piksel

Bagaimana untuk memusatkan kotak dalam html5 Bagaimana untuk memusatkan kotak dalam html5 Apr 05, 2024 pm 12:27 PM

Untuk memusatkan kotak dalam HTML5, terdapat kaedah berikut: pemusatan mendatar: text-align: centermargin: autodisplay: flex; kedudukan: mutlak;

Bagaimana untuk meletakkan elemen dalam css Bagaimana untuk meletakkan elemen dalam css Apr 26, 2024 am 10:24 AM

Terdapat empat kaedah penentududukan elemen CSS: kedudukan statik, relatif, mutlak dan tetap. Kedudukan statik adalah lalai dan elemen tidak dipengaruhi oleh peraturan kedudukan. Kedudukan relatif menggerakkan elemen relatif kepada dirinya sendiri tanpa menjejaskan aliran dokumen. Kedudukan mutlak mengalih keluar elemen daripada aliran dokumen dan meletakkannya secara relatif kepada unsur nenek moyangnya. Kedudukan tetap meletakkan elemen berbanding dengan port pandangan, sentiasa mengekalkannya dalam kedudukan yang sama pada skrin.

Penjelasan terperinci tentang pengekodan kedudukan putaran RoPE yang biasa digunakan dalam model bahasa besar: mengapa ia lebih baik daripada pengekodan kedudukan mutlak atau relatif? Penjelasan terperinci tentang pengekodan kedudukan putaran RoPE yang biasa digunakan dalam model bahasa besar: mengapa ia lebih baik daripada pengekodan kedudukan mutlak atau relatif? Apr 01, 2024 pm 08:19 PM

Sejak kertas "AttentionIsAllYouNeed" diterbitkan pada 2017, seni bina Transformer telah menjadi asas kepada bidang pemprosesan bahasa semula jadi (NLP). Reka bentuknya sebahagian besarnya kekal tidak berubah selama bertahun-tahun, dengan 2022 menandakan perkembangan besar dalam bidang dengan pengenalan Pengekodan Kedudukan Putar (RoPE). Benam kedudukan diputar ialah teknik benam kedudukan NLP terkini. Model bahasa berskala besar yang paling popular (seperti Llama, Llama2, PaLM dan CodeGen) sudah menggunakannya. Dalam artikel ini, kami akan menyelami lebih mendalam tentang pengekodan kedudukan putaran dan cara pengekodan ini menggabungkan dengan kemas manfaat daripada benam kedudukan mutlak dan relatif. Keperluan untuk pengekodan kedudukan untuk memahami Ro

Apakah susun atur susun atur? Apakah susun atur susun atur? Feb 24, 2024 pm 03:03 PM

Susun atur merujuk kepada kaedah penetapan taip yang diguna pakai dalam reka bentuk web untuk menyusun dan memaparkan elemen halaman web mengikut peraturan dan struktur tertentu. Melalui reka letak yang munasabah, halaman web boleh dibuat lebih cantik dan kemas, dan mencapai pengalaman pengguna yang baik. Dalam pembangunan bahagian hadapan, terdapat banyak kaedah susun atur untuk dipilih, seperti susun atur meja tradisional, susun atur terapung, susun atur kedudukan, dll. Walau bagaimanapun, dengan promosi HTML5 dan CSS3, teknologi susun atur responsif moden, seperti susun atur Flexbox dan susun atur Grid, telah menjadi

Melihat dengan lebih dekat kelebihan dan batasan kedudukan mutlak Melihat dengan lebih dekat kelebihan dan batasan kedudukan mutlak Jan 23, 2024 am 10:20 AM

Penentududukan Mutlak (AbsolutePositioning) ialah kaedah penentududukan yang biasa digunakan dalam CSS Ia melaksanakan susun atur dengan menentukan kedudukan mengimbangi elemen berbanding dengan elemen nenek moyang kedudukan terdekatnya. Apabila menggunakan kedudukan mutlak, kita perlu memahami kelebihan dan batasannya, dan menggunakan contoh kod konkrit untuk mendalami pemahaman kita. Pertama sekali, salah satu kelebihan kedudukan mutlak ialah anda mempunyai kawalan penuh ke atas kedudukan elemen anda. Berbanding dengan kaedah susun atur lain, kedudukan mutlak boleh meletakkan elemen dengan tepat di mana-mana pada halaman tanpa dihadkan oleh dokumen.

See all articles