Saya mencoba memberikan div (posisi: tetap) lebar 100% (terkait dengan div induknya). Tapi saya punya beberapa masalah ...
EDIT: Masalah pertama diatasi dengan menggunakan inherit, tetapi masih tidak berhasil. Saya pikir masalahnya adalah bahwa saya menggunakan beberapa div yang mengambil lebar 100% / inherit. Anda dapat menemukan masalah kedua pada pembaruan jsfiddle: http://jsfiddle.net/4bGqF/7/
Contoh rubah
#container {
width: 800px;
}
#fixed {
position: fixed;
width: 100%;
}
dan html
<div id="container">
<div id="fixed">Sitename</div>
<p>
blaat
</p>
</div>
Atau Anda dapat mencobanya: http://jsfiddle.net/4bGqF/
Masalahnya tampaknya bahwa elemen tetap selalu mengambil lebar jendela / dokumen . Adakah yang tahu bagaimana cara memperbaikinya?
Saya tidak bisa memperbaiki elemen saya, karena saya menggunakan plugin jScrollPane. Itu tergantung pada konten apakah ada scrollbar atau tidak.
Terima kasih banyak!
PS: Teks dari 2 divs berada di atas satu sama lain. Ini hanya contoh sehingga tidak terlalu penting.
sumber
inherit
dan bagaimana menggunakanmax-width:inherit
denganwidth:inherit
menjaga wadah / rasio yang sama tetap responsif dan mudah dikelolaJawaban:
Saya tidak yakin tentang apa masalah kedua (berdasarkan edit Anda), tetapi jika Anda berlaku
width:inherit
untuk semua div dalam, itu berfungsi: http://jsfiddle.net/4bGqF/9/Anda mungkin ingin melihat ke dalam solusi javascript untuk browser yang perlu Anda dukung dan yang tidak mendukung
width:inherit
sumber
width: inherit
bukan hal pertama yang saya pikirkanSeperti yang dikomentari banyak orang, desain responsif sangat sering menetapkan lebar sebesar%
width:inherit
akan mewarisi lebar CSS BUKAN lebar yang dihitung - Yang berarti wadah anak mewarisiwidth:100%
Tapi, saya pikir, desain set responsif hampir sering
max-width
juga, karena itu:Ini bekerja dengan sangat memuaskan untuk memecahkan masalah saya membuat menu lengket dibatasi ke lebar induk asli setiap kali "macet"
Baik induk dan anak akan mematuhi
width:100%
jika viewport kurang dari lebar maksimum. Demikian juga, keduanya akan mematuhimax-width:800px
saat viewport lebih luas.Ini berfungsi dengan tema saya yang sudah responsif sehingga saya dapat mengubah wadah induk tanpa harus juga mengubah elemen anak tetap - elegan dan fleksibel
ps: Saya pribadi berpikir tidak masalah sedikit pun bahwa IE6 / 7 tidak digunakan
inherit
sumber
min-width: inherit
do the trick.posisi tetap agak sulit (memang tidak mungkin), tetapi posisi: lengket melakukan trik dengan indah:
lihat sampel codepen
sumber
Anda juga dapat menyelesaikannya dengan jQuery:
Ini sangat membantu saya karena tata letak saya responsif, dan
inherit
solusinya tidak bekerja dengan saya!sumber
Gunakan CSS ini:
Elemen #fixed akan mewarisi lebar induknya, jadi itu akan menjadi 100% dari itu.
sumber
inherit
. Tidak yakin apakah itu mattesr.Fixed positioning seharusnya mendefinisikan segala sesuatu yang berhubungan dengan viewport, jadi
position:fixed
akan selalu melakukan itu. Coba gunakanposition:relative
pada div anak sebagai gantinya. (Saya sadar Anda mungkin memerlukan penentuan posisi tetap karena alasan lain, tetapi jika demikian - Anda tidak dapat benar-benar membuat lebarnya sesuai dengan orang tua tanpa JSinherit
).sumber
Berikut adalah sedikit retasan yang kami temui sambil memperbaiki beberapa masalah redraw pada aplikasi besar.
Gunakan
-webkit-transform: translateZ(0);
pada orang tua. Tentu saja ini khusus untuk Chrome.http://jsfiddle.net/senica/bCQEa/
sumber
Ada solusi mudah untuk ini.
Saya telah menggunakan posisi tetap untuk div induk dan max-width untuk isinya.
Anda tidak perlu terlalu memikirkan wadah lain karena posisi tetap hanya relatif terhadap jendela peramban.
sumber
Solusi ini memenuhi kriteria berikut
Sejauh yang saya ketahui, kriteria ini tidak dapat dipenuhi tanpa Javascript (sayangnya).
Solusi ini menggunakan jQuery, tetapi juga dapat dengan mudah dikonversi ke vanilla JS:
sumber
Anda perlu memberikan gaya yang sama dari elemen tetap dan elemen induknya. Salah satu contoh ini dibuat dengan lebar maks dan dalam contoh lainnya dengan bantalan.
sumber