โซลูชันก่อนหน้านี้ทั้งหมดจะใช้รหัส 40 พิกเซลใน html หรือ CSS ในแบบเดียวหรืออีกแบบหนึ่งโดยเฉพาะ จะเกิดอะไรขึ้นถ้า navbar มีขนาดตัวอักษรหรือรูปภาพต่างกัน? ถ้าฉันมีเหตุผลที่ดีที่จะไม่ยุ่งกับการบุร่างกายในตอนแรกล่ะ? ฉันได้ค้นหาวิธีแก้ไขปัญหานี้และนี่คือสิ่งที่ฉันมาด้วย:
$(document).ready(function(){
$('.contentwrap') .css({'margin-top': (($('.navbar-fixed-top').height()) + 1 )+'px'});
$(window).resize(function(){
$('.contentwrap') .css({'margin-top': (($('.navbar-fixed-top').height()) + 1 )+'px'});
});
คุณสามารถเลื่อนขึ้นหรือลงได้โดยปรับ '1' ดูเหมือนว่าจะใช้งานได้สำหรับฉันไม่ว่าขนาดของเนื้อหาในแถบนำทางจะเป็นอย่างไรก่อนและหลังการปรับขนาด
ฉันอยากรู้ว่าคนอื่นคิดอย่างไรเกี่ยวกับเรื่องนี้: โปรดแบ่งปันความคิดของคุณ (มันจะถูก refactored ว่าจะไม่ทำซ้ำ btw.) นอกเหนือจากการใช้ jQuery มีเหตุผลอื่นที่จะไม่เข้าหาปัญหาด้วยวิธีนี้หรือไม่? ฉันได้ทำงานกับ navbar รองเช่นนี้:
$('.contentwrap') .css({'margin-top': (($('.navbar-fixed-top').height())
+ $('.admin-nav').height() + 1 )+'px'});
PS: ด้านบนอยู่บน Bootstrap 2.3.2 - มันจะทำงานใน 3.x ตราบใดที่ชื่อคลาสทั่วไปยังคงอยู่ ... ในความเป็นจริงมันควรจะทำงานโดยอิสระจาก bootstrap ใช่ไหม?
แก้ไข: นี่คือฟังก์ชั่น jquery ที่สมบูรณ์ที่จัดการสอง navbars คงที่ตอบสนองคงขนาดแบบไดนามิก มันต้องการคลาส 3 html (หรืออาจใช้ id): user-top, admin-top และ contentwrap:
$(document).ready(function(){
$('.admin-top').css({'margin-top':($('.user-top').height()+0)+'px'});
$('.contentwrap') .css({'padding-top': (
$('.user-top').height()
+ $('.admin-top').height()
+ 0 )+'px'
});
$(window).resize(function(){
$('.admin-top').css({'margin-top':($('.user-top').height()+0)+'px'});
$('.contentwrap') .css({'padding-top': (
$('.user-top').height()
+ $('.admin-top').height()
+ 0 )+'px'
});
});